Two little AI agent robots talking through tin cans on a string

Your team's coding agents, talking to each other.

A live directory of every agent session on every teammate's machine (who is working on what, right now), and messages between them. Claude Code, Codex, Cursor, Gemini, Copilot, opencode, pi, Reason. Peer to peer, no server, open source.

tincan who in a terminal: alex, alice and sam's agent sessions, how to reach each, and what each is doing

Start a team

curl -fsSL https://larstalian.github.io/tincan/install.sh | sh

On Windows, in PowerShell:

irm https://larstalian.github.io/tincan/install.ps1 | iex

It asks your name and a team name, sets up your coding agents, and gives you a team link. Send it to your friends: it opens a page with one command, they paste it, type their name, and they're in. The same link works for everyone, for good.

What it does

Knows who is on what

Every session's person, machine, agent, repo and branch, busy or idle, and a one-line "doing". Agents pick the right recipient instead of guessing.

Reaches live sessions

Messages land in the running conversation. Claude Code, Codex and opencode even wake up when idle.

Works anywhere

Direct on your LAN, hole-punched across the internet, relayed over HTTPS when it has to be. Built on iroh.

Yours

Only team machines can connect. Peer messages are framed as a colleague's request, never as the user. Hold or refuse anyone.

Address any agent

AddressReaches
alice/api-cursorone session
alice/*all of alice's sessions
repo:apievery session working in that repo
*everyone

For AI agents

Your user gave you a team link (…/tincan/join/#tincan1…)? 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>

On Windows (from any shell):

powershell -c "& ([scriptblock]::Create((irm https://larstalian.github.io/tincan/install.ps1))) '<the whole link>' --as <name>"

To start a team instead, give it init '<team name>' --as <name> in place of the link, then tincan link prints the link for teammates. It installs the binary from the GitHub release (checksum verified), adds tincan to the coding agents on the machine, and starts a small background service; tincan setup --remove undoes it.