Run all your coding agents.
In one terminal. At once.

hrdx is an experimental, minimal terminal multiplexer built for the agent era: your projects as workspaces in a sidebar, tabs per workspace, and real terminal panes running Codex CLI, Claude Code, zot, pi, any agent CLI you register as a custom harness, or plain shells side by side. Kick off an agent in one project, switch to the next, and let the sidebar spinners tell you who is still working.

macOS or Linux, plus at least one agent CLI on your PATH. Update any time with hrdx update.

hrdx
hrdxapi~/Developer/hrdx
WORKSPACES
hrdx
main
zot 1
claude 1
api
main
codex 1
shell 1
web
feat/ui
pi 1
+ new workspace
AGENTS
claude 1
hrdx
pi 1
web
codex 1
api
⊙ settings
1+zot (shell 1)
zot (shell 1)
zot. yet another coding agent harness.
  ask anything, or type /help
▎run the tests and fix what breaks
ok  internal/state  (cached)
ok  internal/ui     0.612s
[exit 0]  Took 1.7s
claude 1
✳ Refactoring the sidebar…
● Edit internal/ui/model.go
  - label: " "
  + label: " "
● Bash gofmt -w … && go test ./…
working (12s, esc to interrupt)
TERMctrl+b commands4 agents | 2 busy

FEATURES

real terminals, not wrappers

Every pane is a genuine PTY with a full terminal emulator behind it. Agent TUIs run exactly as they do standalone: streaming, slash commands, mouse support, kitty keyboard protocol, all of it.

everything in view

The sidebar shows every workspace with its git branch and ahead/behind counts, every pane with a live status dot, and an agents list that jumps you straight to any running agent.

picks up where you left off

Quit and relaunch: shells and agents keep running in a lightweight session holder and reattach exactly where they were, running commands and all. Layout, tabs, and splits come back too.

bring your own agent

Register any agent CLI as a custom harness via a small JSON file, including its own busy detection for the sidebar spinner. It shows up everywhere like the built-ins.

scriptable from outside

A JSON socket API lets scripts inspect workspaces, spawn panes, type into agents, wait for them to finish, read their screens, and subscribe to live events.

yours to tune

Toggle agents, pick notification sounds (or bring your own audio files), and switch color themes. User themes are simple JSON files. Everything persists.

QUICK START

# start
$ hrdx
# open several projects at once
$ hrdx --cwd ~/Developer/api --cwd ~/Developer/web
# pick your default agent
$ hrdx --agent claude
# resume each project's latest session
$ hrdx --continue
# drive it from a script
$echo '{"id":"1","method":"status"}' | nc -U "$HOME/Library/Application Support/hrdx/hrdx.sock"
# prefix keys, tmux style
ctrl+b c split w workspace t tab , settings