The terminal companion for the long conversation between developer and model. Separate terminal sessions — on one machine or across many — can find each other, send messages, and drive each other’s work.
TermLink — cross-terminal session communication: sessions discover, message, and control each other from the CLI.
termlink is cross-terminal session communication — a message bus with terminal endpoints. It lets multiple terminal sessions, on a single machine or across the network, discover, message, and control each other over sockets. With it you can watch a running session from somewhere else, coordinate a set of parallel AI-agent workers, orchestrate processes, and bridge sessions across SSH or a LAN. It is the plumbing for keeping many terminals — and many agents — talking to one another.
The design splits into two planes. A control plane carries commands, queries, and events as JSON-RPC 2.0 over Unix sockets; a separate data plane carries raw terminal input and output as binary frames. Underneath sit four layered Rust crates:
On top of the crates sits the termlink command-line tool, with thirty commands.
The verb list is broad: register, spawn, list, and ping sessions; exec, run, and dispatch commands; stream, inject, attach, and mirror terminal output; emit, poll, watch, and collect events; discover peers by tag or role; a key-value store; chunked file transfer; hub coordination; cross-machine TCP; and capability tokens secured with HMAC-SHA256. It ships a built-in Model Context Protocol server exposing thirty-seven tools for orchestrating AI agents. It is written in Rust and installs via a one-line script, a Homebrew tap, or cargo install.