downbeat: stop copy-pasting between your AI terminals A developer built downbeat, a local, filesystem-backed message broker for parallel AI coding sessions on the same machine. The tool eliminates manual copy-pasting between terminals by allowing sessions to pass tasks and replies directly, with human-in-the-loop control and no cloud or network dependency. It is available on PyPI via `uv tool install downbeat`. I run more than one AI coding session at a time Claude Code, in my case . One is usually the planner: it holds the architecture, decides what to do, splits the work. The others are executors, and each takes a chunk and grinds through it. The problem is that these sessions cannot talk to each other. Every terminal is its own island, so I became the message bus. I copied a plan out of the planning session and pasted it into an executor. I copied the result back. I re-explained context that one session had and another needed. Every handoff went through me, by hand, one clipboard trip at a time. TL;DR: downbeat is a small, local, human-in-the-loop message bus that lets parallel AI coding sessions on one machine hand tasks to each other and read the replies back. No cloud, no account, no network. It is on PyPI now: uv tool install downbeat . Two sessions and a clipboard works fine. Four sessions is chaos. I lost track of which executor had which version of the plan, I pasted stale context, and I spent more attention shuttling text between terminals than on the actual work. I wanted the sessions to pass messages directly, on my machine, with me still in the loop but no longer doing the typing. No cloud service, nothing leaving the terminal. downbeat is a local, filesystem-backed message broker for AI coding sessions running on the same machine. A CLI, a terminal UI, and a bundled agent skill. No server, no account, no network. The model is simple: The part I care about most: nothing auto-executes. Every watcher notifies you, nothing runs on the parent side on its own, and a child only acts because you told it to at registration time. Human-in-the-loop is the default you would have to work to turn off. Underneath, a message is a JSON file in the recipient's inbox directory. That is the whole transport. It turns out you can build a surprisingly capable little queue out of a directory and a hook. The whole runtime installs in two commands: uv tool install downbeat or: pipx install downbeat downbeat init one command installs the WHOLE runtime downbeat init is the single source of truth for the setup. It bootstraps the data dirs, installs the agent skill , drops the bundled hooks and slash commands , and registers the hooks in your settings idempotently backed up, atomic, and it never clobbers hooks you already have . It is safe to re-run. Then the loop itself: downbeat register parent --role parent downbeat register child --role child downbeat send child "task" "do the thing" downbeat inbox --peer child downbeat reply