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:
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
Hand off
Any agent reads content, history, and how-to-update in one call.
GET wr.fi/x7k2?h
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 neededCatch 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
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.
npx wrfi-cli — push, read, update, diff, history from any shell or CI. Zero dependencies.npx wrfi-mcp — 12 native tools for Claude Desktop, Cursor, or any MCP client. Search, neighborhoods, handoffs, append as first-class tool calls.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 →