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
hrdxhrdxzot (shell 2)~/Developer/hrdx
WORKSPACES
zot
fix/pn-143-empty-system…
●  shell 1
⠴  zot 1
hrdx
main
⠖  claude 1
●  zot (shell 2)
web-app
main
1
⠚  pi 1
●  shell 3
2
●  shell 3
+ new workspace
⚙  settings
1+zot (shell 2)
zot (shell 2)
▎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, live pane status, and an agents list. Socket clients can organise workspaces under optional nested group headings, even for non-Git projects, without restarting panes.

● 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 group 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