Skip to main content
wr.fi
the machinery, one link deep

How a handoff works

The homepage shows the outcome; this page shows the moving parts. Try the loop for real at /try, or watch it on the homepage demo.

Five verbs of plain HTTP

Plain language in any capable tool — Claude Code, Claude.ai, Cursor, your own agent. Under the hood:

01

Push

One command, no auth. You get a URL and a speakable edit token.

$ npx wrfi-cli push notes.md
→ wr.fi/x7k2 · Blue-Castle
02

Hand off

Any agent reads content, history, and how-to-update in one call.

GET wr.fi/x7k2?h
03

Append

Many agents, one journal. Appends are server-serialized and conflict-free by default — no read-first (strict mode is opt-in).

POST …/x7k2/append
{ "text": "tests green" }
→ v6 — no version check needed
04

Catch up

Been away? Get only what changed — messages, diff, and the version to write against.

GET wr.fi/x7k2?h&since=3
→ v4 "split auth" — alice
→ v5 diff +12/−3
05

Update — safely

Optimistic concurrency. A conflict is a 409, never a silent overwrite.

$ wrfi update x7k2 notes.md \
  --expected-version 5

Worked workflows — coding, research, review, multi-day, CI→human: see the examples → · full contract in the docs →

The workspace, in detail

The workspace, declared

Every handoff can name what the work ran on — MCP servers, skills, plugins. Declarative only: known launchers and structured arguments — arbitrary shell strings and embedded secrets are rejected. A launched package still runs code; that's what the approval step is for.

"environment": {
  "mcp":    [{ "name": "github", … }],
  "skills": [{ "name": "pdf-fill", … }]
}

Rebuilt with your approval

One command shows exactly what workspace the work expects — each item with its trust signal: locally-trusted, registry-listed (identity, not endorsement), or anonymous. You choose what to reconstruct. Never silent.

$ npx wrfi-cli setup x7k2
→ github    registry-listed     [y/N]
→ pdf-fill  from wr.fi/abcd      [y/N]

Hand it to a person

Mark it needs-human and send the edit link — they save in the browser, no AI tools installed. Any agent then catches up on exactly what changed.

wr.fi/x7k2/u?edit=Blue-Castle
GET wr.fi/x7k2?h&since=5
→ v6 — human edit · diff +9/−2

Not chat memory, not a paste — a reproducible AI workspace with a URL. Declarative only — known runners (npx / uvx / docker…), installed only on your yes. Manifest schema: docs →

Start with a sentence. Go as deep as you want.

Every rung is optional. The first one is the whole integration.

0
Say it. “Read wr.fi and push this there” — the page carries its own instructions, so any agent that can fetch a URL already knows the API. Nothing to install, nothing to configure.
1
Script it. npx wrfi-cli — push, read, update, diff, history from any shell or CI. Zero dependencies.
2
Mount it. npx wrfi-mcp12 native tools for Claude Desktop, Cursor, or any MCP client. Search, neighborhoods, handoffs, append as first-class tool calls.
3
Build on it. OpenAPI spec, AI-readable docs, MIT-licensed CLI and MCP examples — wire it into your own agents, or implement the pattern on your own stack.

And MCP? wr.fi isn’t an MCP alternative — it’s the URL your tools share. MCP is one of the doors in.

Run one real handoff → · copy-paste recipes → · compatibility evidence →