osstmux-ide is open source, built at Prototyper.Learn more
tmux-ide

What's New in 2.6

tmux-ide 2.6 — the terminal that understands your agents

tmux-ide 2.6

2.6 is a reinvention. tmux-ide is no longer a web dashboard with a terminal attached — it's a terminal-native cockpit built around tmux. Other tools rebuild the terminal to understand agents; tmux-ide teaches the terminal you already use to understand them.

The dock — adopt in place

tmux-ide adopt <session> adds a native tmux chrome row to any existing session: fleet tabs with live agent-status glyphs (blocked / working / done / idle), clickable, plus [ ⌂ home ] [ ⧉ switch ] [ ? keys ] triggers. It's just tmux options — unadopt reverts it, and if tmux-ide dies your sessions are untouched plain tmux. Because the chrome lives server-side, it renders from any client, including over SSH. → The dock & keys

Trustworthy agent detection, two layers

  1. Authoritativetmux-ide integration install claude hooks Claude Code's lifecycle so working / blocked / done is ground truth. Any agent can self-report with one pane option: tmux set-option -p @agent_state working:$(date +%s).
  2. Fallback — process-tree resolution plus evidence-tuned screen manifests, user-overridable and debuggable with tmux-ide agent explain <pane>.

Agent detection

The who-needs-me loop

Toasts on any client when an agent goes blocked or done anywhere (optional macOS notifications), per-pane border chips (claude · working), a tmux-ide events --follow JSONL stream, and wait agent-status / wait output --match coordination primitives. → Notifications & events

Crash-proof fleet

Continuous snapshots; tmux-ide restore rebuilds sessions, windows, layouts, cwds, and titles after a tmux server death, and --resume-agents revives Claude conversations via their recorded session ids. → Restore & resume

One app

  • Home cockpit (prefix h / ⌥h) — bare tmux-ide is the fleet home screen; a popup over any session.
  • Sidebar (prefix b / ⌥b) — a fleet nav column in any session.
  • Floating panels — explorer (prefix e), git changes (prefix g), config (prefix v), each with an fast-path twin.
  • Actions menu (prefix u / ⌥m) — native menu at the pointer (on button release), or right-click anywhere.
  • Cheat sheet (prefix k / ⌥k) — every key on one page.
  • One grammar (j/k · enter · / · esc · ?) and one theme (~/.tmux-ide/config.json) across chrome and widgets.

Home, sidebar & panels

The keyboard-protocol saga

Early 2.6 builds bound the whole app to root-table Alt keys — one keystroke, no prefix. It worked beautifully until an agent pane had focus, and then the keys went dead. Root cause: Claude Code (and other modern TUIs) negotiate the kitty keyboard protocol, which re-encodes Alt-<key> into a CSI-u escape (ESC[104;3:1u for ⌥h) that tmux's root-table bind -n M-h never matches. The bind wasn't broken — the keystroke tmux received simply wasn't the one it was listening for.

The fix ships two layers. First, prefix twins: every surface also binds to prefix + a letter (prefix h, prefix k, …). The tmux prefix survives every keyboard protocol by construction, so these always work — they're now the primary, documented path, and the dock advertises them ([ ⌂ home ^b h ]). Second, kitty user-key fallbacks: for each Alt bind, tmux-ide teaches tmux the exact kitty escape as a user-keys entry and binds it to the same action, so the one-keystroke fast path keeps working under kitty-mode where the terminal supports it. Coverage of that fast path varies by terminal; the prefix twin is the guarantee.

Worktree flow

tmux-ide worktree create <branch> = a git worktree plus an adopted session inside it — parallel agents on parallel branches. → Worktrees

What moved to the background

The heavyweight orchestrator, missions, validation contracts, and the web dashboard are no longer the story. The task system still exists as an optional, secondary surface for coordinated multi-agent work — see Task system — but the product's center of gravity is now the terminal you already use.

On this page