Skip to content

bora terminal multiplexer for coding agents

You run several coding agents at once and lose track of which terminal is doing what. bora is a Rust terminal multiplexer built for exactly that: every agent in its own pane, every pane marked working, blocked or idle, and the agents themselves use the CLI to open panes and talk to each other. A fork of herdr, free and open source.

bora is a background server: the terminals live inside it. Close the lid, drop the network, restart the machine, and the agents keep working and the sessions come back. You reattach from any terminal, including over ssh.

What it does

01

Never hunt for the stuck one

Every pane is marked working, blocked or idle. When an agent stops and needs an answer from you, bora says so.

02

Folders in the sidebar

The Folders view lists your workspaces one line each, grouped only by the folders you created, with one clickable dot per pane. Drag a workspace onto a folder or use bora workspace set-group.

03

Channels between agents

With bora channel, agents talk in #channels and address each other by @nick. A message for you arrives passively: a sidebar badge, nothing opening over the pane you are using.

04

Runs what you already run

Claude Code, Codex, Cursor, opencode, omp and the rest. bora does not wrap or replace any of them: it only owns their terminals.

05

One Rust binary, with plugins

No Electron, runs in whatever terminal you already use. tmux-style prefix keys and mouse, both first-class. Plugins extend panes and workflows.

Agents (CLI)

Your agents drive bora through the CLI and the socket API: they spawn panes, prompt each other and wait until another agent is genuinely blocked. Two fork-only commands turn “run an agent on this” into one shot:

bora agent --new "review the plan and list the risks"
bora agent my-key prompt "first task"
bora events --subscribe channel.message

--new always creates a workspace on the current directory, starts the default agent, injects the prompt and prints one JSON result. agent <name> prompt is get-or-create: the name is the idempotency key, so re-running the same dispatch prompts the existing agent instead of duplicating it.

bora events streams server events as JSON, one line per event, for anything that consumes a pipe. If your agent speaks MCP, bora mcp serve exposes the same surface as MCP tools.

Download

v0.45.5 · free, Apache 2.0 · macOS, Linux, Windows

One-line installer for macOS and Linux. Installs to ~/.local/bin (override with HERDR_INSTALL_DIR); needs curl and awk.

curl -fsSL https://raw.githubusercontent.com/aryrabelo/bora-herdr-ada/main/distribution/install.sh | sh

Windows, in PowerShell:

powershell -c "irm https://raw.githubusercontent.com/aryrabelo/bora-herdr-ada/main/distribution/install.ps1 | iex"

Stable v0.45.5

Preview v0.46.8 · d3a2bde

Preview is the latest main, with no stability promise. To switch a running install: bora channel set preview && bora update. Right now the Folders view is temporarily out of preview while it returns on the new client shell.

All releases Source on GitHub (leave a star)

Get bora updates

Building in public. Drop your email and I'll ping you when a new version ships, alongside the newsletter on AI, automation and engineering. Optional: the download above is free.