reason-network README

The project's README from github.com/reason-machines/reason-network. As one markdown file: README.md.

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, opencode, pi 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.

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

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.

reason-network (reason-machines/reason-network)

Searching Database…