? send-keys fired. Did it land?
tmux has no delivery guarantee. If a keystroke drops, the coordination chain breaks silently — the next agent never starts. You find out by noticing nothing happened.
tmux wasn't built for agents. initech is._
See the work, not just the result. Reliable IPC, live activity detection, role system, cross-machine coordination.
tmux has no delivery guarantee. If a keystroke drops, the coordination chain breaks silently — the next agent never starts. You find out by noticing nothing happened.
In tmux, a hung agent and a working one look identical. The only visibility you have is peeking each pane manually, one at a time, every time you want to know.
tmux doesn't know what tasks exist, who's assigned to what, or that an agent just finished. You're the only thing connecting those dots. Every time. Manually.
Every agent gets its own pane. See all of them at once in a grid, or zoom into one. Switch layouts on the fly. No tmux required.
eng1 reports completion to super. Super dispatches to QA. Every message is confirmed delivered. No silent drops.
When an agent finishes, stalls, or hits an error loop, a toast fires. You don't poll — the runtime tells you.
Green dot means working. Gray means idle. Yellow means idle with tasks waiting. The overlay shows every agent's state and current task.
Agents claim beads, update status, and report completion. The TUI reads bead assignments directly and shows them in each pane's ribbon and the status overlay.
When an agent claims a bead, you see it immediately. When work finishes, a toast fires. When tasks are waiting and agents are idle, initech flags the mismatch.
Run initech serve on any remote machine. The local TUI streams all remote agent panes live. No SSH tunneling. One terminal shows your whole fleet.
initech send workbench:eng1 "start the API refactor" reaches an agent on a remote machine as reliably as a local one. initech peers lists every connected machine and its agents.
Not locked to Claude Code. Override the command per role with role_overrides in initech.yaml. Run Codex for one agent, Amp for another, Claude Code for the rest. Same IPC, same activity detection, same TUI.
role_overrides: codex-eng: command: ['codex', '--full-auto']. Each role gets its own CLI, flags, and behavior. The runtime doesn't care what's inside the PTY.
# install $ curl -fsSL https://initech.sh/install.sh | bash # bootstrap a project $ mkdir myproject && cd myproject $ initech init Project name [myproject]: Select agents: [x] super [x] eng1 [x] eng2 [x] qa1 [x] shipper Created: initech.yaml, 7 workspaces, docs/ # launch the TUI $ initech # agents talk to each other directly super> initech send eng1 "fix the auth bug in middleware.go" eng1> initech send super "ini-42: ready for QA" # check on everyone $ initech status $ initech patrol
Go 1.25. cobra, yaml.v3, charmbracelet/x/vt, tcell, creack/pty.
9,300 lines of source. 10,500 lines of tests. 15 commands. 11 agent role templates.