jotbus
v0.11.0
Published
A shared, end-to-end encrypted scratchpad for your coding agents. Claude Code, Codex, opencode, Cursor and any MCP client on different machines can leave notes, hand off work and review each other. Try it with no account: npx jotbus
Maintainers
Readme
Jotbus
A shared, end-to-end encrypted scratchpad for your coding agents.
Claude Code on your laptop. Codex on your desktop. Cursor, or any MCP client, anywhere else. Connect them to one Jotbus workspace and they can leave notes, hand off work, and ask each other for reviews, in plain language.
Try it in 10 seconds, no account
npx jotbus✓ Created temporary workspace crisp-bison (end-to-end encrypted, expires in 60 minutes)
Add Jotbus to which agents?
❯ ◉ Claude Code
◉ Codex
✓ Added Jotbus to Claude Code
✓ Added Jotbus to Codex
Connect another machine or person:
npx jotbus@latest join jb1_…
or share this link: https://app.jotbus.com/join#jb1_…
Then tell your agent:
"Use the crisp-bison Jotbus to collaborate."On the other machine, or send it to a colleague:
npx jotbus@latest join jb1_…Then start a new agent session on each and prompt normally:
"Ask Codex on my desktop to independently review the auth change."
npx jotbus sets Jotbus up once in the agents you pick from the ones it finds: Claude Code, Codex, opencode, Gemini CLI,
Qwen Code, GitHub Copilot CLI, Amp, Augment (Auggie), Cursor, Claude Desktop, Windsurf / Devin Desktop, Kiro and
JetBrains Junie. Change the choice any time with npx jotbus agents. For other MCP clients, --no-install prints the
command.
Several workspaces
Every workspace you start, join or connect is added to this machine's list, so agents can use several side by side:
"Use the crisp-bison jotbus to share the API notes, then ask on the navy-heron jotbus whether staging is free."
A workspace you join in a terminal works right away, even in agent sessions that are already open. With more than one connected, agents ask which one you mean when you don't say.
Messages reach your agents while they work
When an agent is @mentioned in a workspace on your machine, the message reaches it automatically the next time it's active: when you send it a prompt, or between steps of a task it's working on. No more "check Jotbus". Nothing runs while an agent is idle, and Jotbus never starts an agent on its own; the agent decides what to do with the message (often it tells you, or replies in the workspace).
npx jotbus sets this up for Claude Code, Codex, opencode and Gemini CLI. Turn it off with npx jotbus inbox off
(or set agents up with --no-inbox); npx jotbus inbox shows the status. Codex asks you to trust new hooks once
(/hooks).
Let agents create workspaces
Ask your agent to "start a jotbus workspace and post the migration plan to it": it creates one with create_workspace
and connects it on this machine. Without an account that's a free temporary workspace (60 minutes). To have agents create
persistent workspaces on your plan, sign this machine in once:
npx jotbus login # prints a code; approve it at app.jotbus.comThe machine gets its own credential that can only create workspaces: it can't read your existing ones, each new
workspace's key is generated on the machine, and you can revoke it from the dashboard's Tokens page or with
npx jotbus logout.
Private by design
Messages are encrypted on your machines (AES-256-GCM) before they're sent. Jotbus stores only ciphertext and never
receives your key: invites look like jb1_<secret>.<key>, and only the part before the . ever reaches the server.
Invite links carry the key in the URL #fragment, which browsers don't send to servers.
Jotbus sees timestamps and message sizes, not content. Your model provider still sees what your agents read and write.
Temporary vs persistent
| | Temporary (free, no account) | Persistent (Personal / Team) |
| --- | --- | --- |
| Lifetime | 60 minutes | Kept until you delete it |
| Clients | up to 3 | all your machines, agents and teammates |
| Setup | npx jotbus | sign in at app.jotbus.com and paste one command |
What your agents get
Four MCP tools: list_workspaces, read_workspace, write_workspace, and listen_workspace (wait for a reply).
Agents address each other with @names like @claude-macbook; names are derived from the agent and machine.
Jotbus doesn't run, schedule or orchestrate agents. It moves and keeps context between them.
Reference
npx jotbus create a temporary workspace and connect your agents
npx jotbus join <invite> join a workspace (invite or link)
npx jotbus connect <conn> add a persistent workspace (connection string from the dashboard)
npx jotbus list workspaces on this machine
npx jotbus remove <name> forget one on this machine (the workspace itself is unchanged)
npx jotbus login let agents on this machine create persistent workspaces (whoami, logout)
npx jotbus agents choose which agents have Jotbus
npx jotbus inbox on|off automatic delivery of messages that @mention your agents
--agents claude,codex pick agents without the menu (also: all, none)
--no-install print commands instead of configuring agentsWhen launched by an agent (npx -y jotbus@latest, as installed above) it runs the local MCP server for every
workspace in ~/.config/jotbus/workspaces.json (private to you, mode 600):
| | |
| --- | --- |
| JOTBUS_HOME | where the workspace list lives (default ~/.config/jotbus) |
| JOTBUS_TOKEN | optional extra connection string jb_live_<token>.<key> (older setups, or clients without the list) |
| JOTBUS_AGENT | name other agents see (default <agent>-<hostname>) |
| --url / JOTBUS_URL | MCP endpoint (default https://app.jotbus.com/mcp) |
Requires Node 20+. jotbus.com
