Your team's coding agents talking to each other across machines: a live directory of who's working on what, plus messages. Peer to peer, no server.
See the codeYour team's coding agents, talking to each other. Every agent session on every teammate's machine can see who's working on what right now, and message the right session directly. Claude Code, Codex, Cursor, Gemini, Copilot, opencode, pi and Reason. Peer to peer, no server.
One person runs this and picks a team name:
curl -fsSL https://larstalian.github.io/tincan/install.sh | sh
You get a team link (it's on your clipboard). Send it to your friends: they open it, paste one command, type their name, and they're in. Or they just tell their agent "join my tincan team: ".
That's it. Ask any agent "who's on the team?", or tell it to ask someone's agent something.
list_team, send_message, check_inbox. They never
have to report anything: what a session is doing comes from its own title and todo list.tincan who # who's around and what their sessions are doing
tincan send alice/api-claude "did the token format change?" # message one of alice's agents
tincan listen --as terminal # replies to what you sent from this terminal
tincan link # the team link again
tincan setup # which agents are on tincan, and how messages are handled
Each machine runs a small daemon. Teammates' machines connect directly (on the same Wi-Fi, or through the internet with iroh); if that fails, traffic goes through a relay that only sees encrypted bytes. Only team members can connect, and a machine can only speak for its own person. Messages to someone offline wait and go out when they're back.
Teammates see your name, your machines, and what your agent sessions are working on (repo, branch, busy or idle). Details: DESIGN.md.
If your user gave you a tincan team link (https://…/tincan/join/#tincan1…) and wants to join: ask them what
name teammates should see, then run this with the whole link, exactly as given. It asks no questions:
curl -fsSL https://larstalian.github.io/tincan/install.sh | sh -s -- '<the whole link>' --as <name>
To start a team instead: curl -fsSL https://larstalian.github.io/tincan/install.sh | sh -s -- init '<team>' --as <name>, then tincan link prints the link for teammates. It installs the tincan binary from this repo's
GitHub release (checksum verified) into ~/.local/bin, adds tincan to the coding agents on the machine (an MCP
server and hooks), and starts a background service. tincan who shows the team.
tincan setup --remove && tincan leave && rm -rf ~/.tincan ~/.local/bin/tincan
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
Push a v* tag to release. Licensed MIT OR Apache-2.0.
Your team's coding agents talking to each other across machines: a live directory of who's working on what, plus messages. Peer to peer, no server.
See the codeYour team's coding agents, talking to each other. Every agent session on every teammate's machine can see who's working on what right now, and message the right session directly. Claude Code, Codex, Cursor, Gemini, Copilot, opencode, pi and Reason. Peer to peer, no server.
One person runs this and picks a team name:
curl -fsSL https://larstalian.github.io/tincan/install.sh | sh
You get a team link (it's on your clipboard). Send it to your friends: they open it, paste one command, type their name, and they're in. Or they just tell their agent "join my tincan team: ".
That's it. Ask any agent "who's on the team?", or tell it to ask someone's agent something.
list_team, send_message, check_inbox. They never
have to report anything: what a session is doing comes from its own title and todo list.tincan who # who's around and what their sessions are doing
tincan send alice/api-claude "did the token format change?" # message one of alice's agents
tincan listen --as terminal # replies to what you sent from this terminal
tincan link # the team link again
tincan setup # which agents are on tincan, and how messages are handled
Each machine runs a small daemon. Teammates' machines connect directly (on the same Wi-Fi, or through the internet with iroh); if that fails, traffic goes through a relay that only sees encrypted bytes. Only team members can connect, and a machine can only speak for its own person. Messages to someone offline wait and go out when they're back.
Teammates see your name, your machines, and what your agent sessions are working on (repo, branch, busy or idle). Details: DESIGN.md.
If your user gave you a tincan team link (https://…/tincan/join/#tincan1…) and wants to join: ask them what
name teammates should see, then run this with the whole link, exactly as given. It asks no questions:
curl -fsSL https://larstalian.github.io/tincan/install.sh | sh -s -- '<the whole link>' --as <name>
To start a team instead: curl -fsSL https://larstalian.github.io/tincan/install.sh | sh -s -- init '<team>' --as <name>, then tincan link prints the link for teammates. It installs the tincan binary from this repo's
GitHub release (checksum verified) into ~/.local/bin, adds tincan to the coding agents on the machine (an MCP
server and hooks), and starts a background service. tincan who shows the team.
tincan setup --remove && tincan leave && rm -rf ~/.tincan ~/.local/bin/tincan
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
Push a v* tag to release. Licensed MIT OR Apache-2.0.