agent runs · human decides
Today, specifically: two Claude Code sessions — not a general agent protocol yet
Structured work packets between two Claude Code sessions. Yours sends the complete brief, the task runs on the other end, on its own, and comes back structured, in the exact fields you asked for. What to apply from the result is always your call.
$9/mo · hand-approved, not an open waitlist · already live — you'll hear back by email with your handle + key, typically within a day
ContextCheckout duplicates state between cart and session since v2…
What I needUnify it into a single store without breaking the coupon flow.
00In 40 seconds
A 40-second walkthrough: send a packet from one Claude Code session, watch the other pull it and work alone, then see the same real commands in the terminal below.
01The problem
You already have git for the code. What's still missing is a way to hand off the task itself, the way you'd hand a scoped ticket to a teammate, and get back exactly the fields you asked for, without opening a chat window and re-explaining everything by hand.
A shared branch tells the other Claude what changed. It doesn't tell it what to do next, and it doesn't hand back a report you can drop straight into your own context. That part is still zip-and-paste.
02How it works
Structured enough for a machine to process on its own. Loose enough to carry real context.
The metadata of the send: who it's from, who it's to, the task type, and the exact contract of what needs to come back. It's what lets the other side start working without asking anything first.
Free-form markdown, the way real context actually is. Everything the other Claude needs to understand to do the work right, with no form fighting it.
The exact fields you asked for come back filled in, not buried in a paragraph. Exact fields, not prose — the shape already comes back structured; checking it against what you asked for automatically hasn't been built yet, so that comparison is still a manual read today.
No copy-paste. Claude itself runs the command and reads the packet in-session.
your terminal
$node bin/conduit.mjs send --to ana --title "refactor.checkout" \
--brief ./brief.md --return-contract ./contract.json
queued for ana, waiting for her to pull it
ana's terminal
$node bin/conduit.mjs check
pulls it and gets straight to work, no copy-paste, no re-explaining
$node bin/conduit.mjs return pkt_20260906_a1b2c3d4 --payload ./return.json
sends the filled contract back, nothing else
your terminal
$node bin/conduit.mjs apply pkt_20260906_a1b2c3d4
you review it and confirm — a human gate, always
your terminal
$node bin/conduit.mjs send \
--to ana \
--title "refactor.checkout" \
--brief ./brief.md \
--return-contract \
./contract.json
queued for ana, waiting for her to pull it
ana's terminal
$node bin/conduit.mjs check
pulls it and gets straight to work, no copy-paste, no re-explaining
$node bin/conduit.mjs return \
pkt_20260906_a1b2c3d4 \
--payload ./return.json
sends the filled contract back, nothing else
your terminal
$node bin/conduit.mjs apply \
pkt_20260906_a1b2c3d4
you review it and confirm — a human gate, always
Node CLI, zero external dependencies · talks to a real relay (Next.js + Postgres). No public repo today — the CLI ships by hand as a single file with your account, so you can read the zero-dependency claim yourself once you're in. What you can check right now, no account needed: conduit-relay.vercel.app/api/health returns live JSON, not a mockup, proof the relay behind it is real. A packaged install (npm, or a standalone curl/iwr script) hasn't shipped yet.
03The decision stays human
"It runs on its own. A human gate, always."
Conduit is the real go-between for the two Claudes: a server that holds the packet in a queue, ready for the other Claude to pull whenever it wants, so neither side needs a session open at the same time. The Claude that receives it runs one command, pulls the whole packet, and does the work on its own. The filled-in return waits in the outbox for you to review on your own time. Applying the result stays human, always: that decision happens on top of the report that comes back, not as a checkpoint blocking the middle of the trip. The agent executes. The human decides.
Who can actually queue you something: nobody, by default. There's no public sign-up: every account is created by hand, tied to a paid subscription ($9/month, no free tier), and a packet can only reach the exact handle it's addressed to. If you haven't handed someone a handle, they can't address you at all. From there, the trust boundary is the same one you already accept today: if you'd let a person paste something into your terminal, you're already trusting what their Claude wrote. Conduit doesn't invent a new kind of trust, it just removes the copy-paste step between people who already have it. Every envelope can carry a set of gates (conditions to check before anything runs), and today those travel along for the ride without the server enforcing them; building that enforcement is still ahead. The real check today isn't one of those: it's apply, which happens after the work is already done, and that one's still entirely yours.
a packet's journey · Conduit in the middle, the decision always at the end
the package leaves your Claude
Conduit receives it, checks it, and files it in her queue
she pulls it whenever she wants, and it runs alone
the report comes back, and you decide what to apply
04Before you ask
What happens if the relay goes down?
Packets already sent are safe: they live in a real Postgres database, not memory, so an outage doesn't lose anything already queued. What doesn't exist yet is automatic retry on the client side. If a send, check, return, or apply call can't reach the relay, that one command just fails, and you run it again once it's back.
Can I use it solo, between two of my own Claude Code sessions?
Yes. Create a second account with its own handle, then point one session at it with the CONDUIT_HANDLE / CONDUIT_API_KEY environment variables instead of the default config file — that's exactly what they're for. The real cost: each account needs its own $9/month subscription, so running solo today means two subscriptions, not one.
Does it work with agents other than Claude Code?
Nothing in the CLI or the relay is Claude-specific: it's a plain Node script talking JSON over HTTP. It's only been built and tested against Claude Code sessions running it through the Bash tool. Any agent that can run a shell command would likely do the same, but that combination hasn't been tried yet.
Is there a rate limit?
Not today.
Request access and start exchanging packets with someone else's Claude.
$9/mo · hand-approved, not an open waitlist · already live — you'll hear back by email with your handle + key, typically within a day