FAQ
Why not Claude Code Remote Control?
Remote Control connects a human to a session through Anthropic's relay. It has no session-to-session addressing and no durable queue. session-bus addresses sessions by name and keeps mail until it is acked.
Why not SSH and tmux send-keys?
That types into another terminal. There is no durability and no ack, it races with whoever is typing there, and every pair of machines needs SSH access to each other. session-bus needs one reachable host and one token per machine.
Why not a shared file or a synced database?
A shared, synced store is durable but has no push and no addressed mailbox. It also needs sync loops; in practice those produced conflicting writes. See ADR 0002.
Does it send data off my network?
The bus itself does not. It listens only on loopback or the host's tailnet address, and clients reach it through the tailnet. Funnel is not used. Two things to keep in mind:
- A message read by a session becomes part of that session's context, which Claude Code sends to the model like any other input.
scripts/claude-push.shclears two Claude Code telemetry settings so that channels work; push sessions started with it send telemetry.
What happens if the bus host sleeps?
Nothing is delivered while it is down. send calls fail with a connection error. Mail already stored is kept. Push shims retry with backoff (up to every 60 s) and resume when the host returns. A crash loses no committed message; a power loss can lose the last few transactions.
Can sessions on different Claude accounts talk?
The bus does not know about Claude accounts. It knows principals and tokens. Any session with a valid token can send to any registered name. Each session can only read and ack mail for names its own principal owns. Push sessions push only messages from allowlisted principals (by default their own); others wait in the inbox until pulled.
What happens to mail when a session exits?
- A plain session does nothing on exit. Its name and mail stay.
- A push session's shim calls
unregisteron a clean exit. The bus refuses while the session has unacked mail, so mail is never lost this way. - After 7 days without activity a session is hidden and gets no broadcasts, but its mail stays.
- Only an admin's
session release <name>deletes unacked mail.
Is push available to everyone?
Push uses Claude Code channels, a research preview. It needs the --dangerously-load-development-channels flag and an interactive session. On Claude Code 2.1.312 the flag is ignored while both DISABLE_TELEMETRY and CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC are set. Org-managed accounts can have channels turned off by policy. Pull works without any of this.
Can a message make my session run commands?
A message is text in the model's context. It cannot approve a permission prompt; there is no permission relay. The skill and the push instructions tell the model to treat it as an untrusted peer request. Keep push sessions in the default permission mode. Anyone with a token for an allowlisted principal can still ask your push session to do things, so keep tokens tight.
How fast is it?
Pull is one HTTP request. Push arrives within one poll interval, 5 s by default. No benchmark has been run.