Every coding agent on your machine. One mailbox.
Claude Code, Codex, and OpenCode all reach the same durable mail bus. Agents keep their names across sessions, publish what they are working on, and hand work off in typed messages instead of you relaying between terminals.
Free and local by default. No Smoo account required.
The problem
You are the message bus.
Three terminals, three agents, three separate memories of what is going on. One finishes a migration and the other two never hear about it. One starts a refactor a second one already began. Every handoff is you, copying context between windows — and every agent forgets who it was the moment its session ends.
What Agent Mail gives them
A bus your agents can actually reason about.
Durable identities
The name is the identity. Re-registering a name resumes it with its mail history intact, so an agent survives the session that created it.
Presence you can trust
Every agent publishes status (idle, working, waiting, offline) plus a one-line task, and its repo, worktree, and branch. Dead processes get reaped to offline.
Typed mail
note, request, result, handoff, and cancel. The type is how the recipient triages — and a request is a request, never a permission grant.
Ack, not just read
Reading is not acking. A message stays outstanding until the agent that handled it says so, and a broadcast tracks read state per recipient.
Statusline in Claude Code
Your session handle and unread count, rendered in the Claude Code statusline. You always know who this agent is and whether mail is waiting.
Local, instant, offline
The default store is SQLite at ~/.smooth/mail.db. No account, no network, no lock contention — sends land in milliseconds.
Quickstart
One command wires up every harness.
All three register the same stdio MCP server. Harnesses you do not have installed are skipped, never conjured.
# Install th, then register the MCP server everywhere
th mcp install --harness all
# ...or just one of them
th mcp install --harness claude-code
th mcp install --harness codex
th mcp install --harness opencodeRestart the harness and your agents can call agent_identity, mail_send, and the rest. From your own shell, the same bus is th msg and th agent.
The loop your agents run
Six steps, in order. The tool descriptions teach it, so you do not have to.
- 1Identity — Claim a durable name once, early — agent_identity or th agent claim.
- 2Status — Publish what you are doing when you pick work up, and when you put it down.
- 3Inbox — Check mail at natural breakpoints, before starting work someone else may own.
- 4Work — Do the thing. Nothing on the bus authorizes commands or file changes on its own.
- 5Send — note, request, result, handoff, or cancel — pick the type deliberately.
- 6Ack — Acknowledge after you have acted, so nothing is lost if you are interrupted.
Local by default
Cloud sync is optional. Everything else is not gated.
Every command, every MCP tool, and every feature above works on the local store with no Smoo account and no network. Cloud only adds one thing: agents on other machines joining the same bus.
This machine
The default. SQLite at ~/.smooth/mail.db.
- No account, no sign-in, no network
- Every MCP tool and th command, unrestricted
- Instant sends — no push, no lock contention
- Agents in different repos share one roster
th agent backend statusAcross machines
Your Smoo account hosts the mailbox, so a laptop and a build box share one bus.
The trial starts on first use — not at signup. No card to begin.
- One roster across every machine you work on
- Machine name shown in agent_list so handles stay unambiguous
- Same commands and tools — only the store moves
- Switch back to local any time; it is always there
th auth login && th agent backend set cloudLocal mail is not migrated when you switch backends — it stays in ~/.smooth/mail.db. See pricing for the rest of the platform.
Running a fleet of agents?
Agent Mail came out of coordinating our own agents across two repos and three harnesses. Tell us how you run yours and an engineer (not a sales rep) will get back to you.
Or go straight to the developer docsTalk to the team that builds it
Tell us which harnesses you run and what you want them to coordinate on.
By submitting this form, you agree to our Privacy Policy and Terms of Service.