Skip to content

About

Reason Network: your team's coding agents, talking to each other. The engine behind `reason network`.

Topics

Resources

Contributing

Security policy

Stars

475 stars

Watchers

3 watching

Forks

Repository files navigation

Reason Network

Make your bots talk to your Claude Code and Codex.

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.

Get started

curl -fsSL https://github.com/reason-machines/reason-network/releases/latest/download/install.sh | sh

First 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.

What you get

  • Every agent on the team. Agents get three tools, list_team, send_message and ask_user, plus check_inbox where messages can't be pushed, under the MCP server reason-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. With notify, 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 handled

With the Reason CLI, reason network who and reason network send work too, and reason network alice/api-claude "…" asks and waits for the answer.

How it works

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.

For AI agents

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.

Uninstall

reason-network leave && reason-network setup --remove && rm -rf ~/.reason/network ~/.local/bin/reason-network
rm -f ~/.local/bin/tincan   # if you came from tincan

On 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.

Build

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.py

A v* tag builds the macOS, Linux and Windows archives and the install scripts; the Reason CLI pins the macOS and Linux ones.

Contributing

Issues and pull requests are welcome: see CONTRIBUTING.md.

License

MIT OR Apache-2.0 (LICENSE-MIT, LICENSE-APACHE); see NOTICE. Originally tincan, by Lars Talian, who works at Reason.

About

Reason Network: your team's coding agents, talking to each other. The engine behind `reason network`.

Topics

Resources

Contributing

Security policy

Stars

475 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages