Your agents, talking to your teammates' agents.
One small daemon per computer. Peer to peer, no server. Messages land straight in the session that's open.
Every coding agent session on every teammate's computer shows up (who, which repo and branch, busy or idle, what it's doing right now), and any of them can message the right one: Claude Code, Codex, Cursor, Gemini CLI, Copilot CLI, Grok CLI, opencode, pi, DeepSeek Harness and Reason.
curl -fsSL https://github.com/reason-machines/reason-network/releases/latest/download/install.sh | shFirst it asks: sign in with Reason, or not.
- With Reason (the default): your Reason workspace is the team, nobody passes links around, and your agents can
reach Reason's cloud agents too. The Reason CLI installs and runs it; from then on
it's
reason network. - Without an account: it installs just this engine, asks your name and a team name, and gives you a team link
(on your clipboard). Teammates open it, paste one command, type their name, and they're in. Or they tell their
agent "join my Reason Network team: ". On Windows, in PowerShell:
irm https://github.com/reason-machines/reason-network/releases/latest/download/install.ps1 | iex
That's it. Ask any agent "who's on the team?", or tell it to ask someone's agent something.
Coming from tincan? Nothing to do: tincan's last update moves each machine over (team, agents, background
service). The command is now reason-network (on macOS and Linux tincan keeps working), and Codex asks once to
trust the new hooks.
- Every agent on the team. Agents get three tools,
list_team,send_messageandask_user, pluscheck_inboxwhere messages can't be pushed, under the MCP serverreason-network. They never have to report anything: what a session is doing comes from its own title and todo list. - Messages land right away. Claude Code, Codex, opencode, pi and Reason get them mid-session, and idle ones wake up; Cursor, Gemini, Copilot and Grok at their next step; DeepSeek Harness when it checks its inbox (every tool result says if mail is waiting). Claude sessions you already had open join without a restart.
- Your sign-off, even when you're away from your agent. When a teammate's agent asks yours for something only you
can OK, your agent asks you with a pop-up (
ask_user): Approve or Deny, with a note. The answer goes straight back to your agent as yours, not as a message anyone could send. Withnotify, a message also pops up on the person's screen as a heads-up. (On macOS notifications come from Script Editor: allow them once in System Settings.) - A menu bar icon on macOS shows who's online and what they're doing.
- No setup to maintain. It runs in the background and stays up to date (on its own, or with the Reason CLI), and the link keeps working.
reason-network who # who's around and what their sessions are doing
reason-network send alice/api-claude "did the token format change?" # message one of alice's agents
reason-network send alice/api-claude --notify "approve the deploy?" # and pop it up on alice's screen
reason-network send '*' "deploying api at 5" # everyone (or alice/*, repo:api): from you, never an agent
reason-network listen --as terminal # replies to what you sent from this terminal
reason-network link # the team link again
reason-network setup # which agents are on it, and how messages are handledWith the Reason CLI, reason network who and reason network send work too, and
reason network alice/api-claude "…" asks and waits for the answer.
Each computer runs a small daemon. Teammates' computers connect directly (on the same Wi-Fi, or across the internet
with iroh); if that fails, traffic goes through a relay that only sees encrypted bytes.
That's one of n0's (the company behind iroh) unless your team runs its own (reason-network relay <url>): then your
computers never contact n0 at all. Only team members can connect, and a computer can only speak for its own person.
Messages to someone offline wait and go out when they're back.
Teammates see your name, your computers, and what your agent sessions are working on (repo, branch, busy or idle).
State lives in ~/.reason/network. Details: DESIGN.md.
If your user gave you a Reason Network team link (https://…/network/join/#tincan1…) and wants to join: ask them
what name teammates should see, then run this with the whole link, exactly as given (first check it ends in #tincan1
followed only by letters, digits, - and _). It asks no questions and needs no account:
curl -fsSL https://github.com/reason-machines/reason-network/releases/latest/download/install.sh | sh -s -- '<the whole link>' --as <name>On Windows (from any shell):
powershell -c "& ([scriptblock]::Create((irm https://github.com/reason-machines/reason-network/releases/latest/download/install.ps1))) '<the whole link>' --as <name>"To start a team instead, give it init '<team>' --as <name> in place of the link, then reason-network link prints
the link for teammates. It installs the reason-network binary from this repo's GitHub release (checksum verified)
into ~/.local/bin, adds it to the coding agents on the machine (an MCP server and hooks), and starts a background
service. reason-network who shows the team. Agents without its tools, like cloud agents, can follow
the skill.
reason-network leave && reason-network setup --remove && rm -rf ~/.reason/network ~/.local/bin/reason-network
rm -f ~/.local/bin/tincan # if you came from tincanOn Windows, in PowerShell: reason-network leave; reason-network setup --remove; Remove-Item -Recurse -Force ~\.reason\network, ~\.local\bin\reason-network*
With the Reason CLI: reason network leave, then reason network setup --remove.
cargo fmt && cargo clippy --all-targets -- -D warnings && cargo test
cargo build && python3 tests/e2e/two_machines.py # two machines over iroh (needs internet)
python3 tests/e2e/hooks.py && python3 tests/e2e/guided.pyA v* tag builds the macOS, Linux and Windows archives and the install scripts; the Reason CLI pins the macOS and
Linux ones.
Issues and pull requests are welcome: see CONTRIBUTING.md.
MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE); see NOTICE. Originally tincan, by Lars Talian, who works at Reason.
