Troubleshooting
Fix common tmux-ide problems with one command each: tmux version errors, missing keys, wrong agent states, Claude hooks, SSH and restore.
Most problems have one command that shows what is wrong. Start with
tmux-ide doctor, then find your symptom below.
Run the doctor first
tmux-ide doctor
tmux-ide doctor --json # for a bug reportIt checks the tmux version, Node.js, your terminal's color support, the app runtime, the daemon and your agent integrations. When you report an issue, include this output and the shortest sequence that reproduces it.
"tmux 3.7 or newer is required"
tmux-ide refuses tmux servers older than 3.7. It never kills or replaces a
running server for you. Sessions you create from tmux-ide use its bundled tmux
3.7c. Start new sessions from the app (press n on Home, or Ctrl+N in
Sessions) and move your work over when you're ready.
tmux-ide: command not found
The installer puts the launcher in ~/.local/bin and prints a PATH instruction
if your shell doesn't include it. Add that directory to your PATH and open a
new shell.
The app does not start after an interrupted download
Download and verify this version's runtime again:
tmux-ide update --tui-binary
tmux-ide app⌥ keys do nothing in tmux chrome sessions
Some agents, Claude Code among them, switch the terminal to a key encoding that
tmux can't match against ⌥ bindings. Use the prefix form instead: prefix h,
prefix j, prefix k and so on. See tmux chrome keys.
If keys misbehave inside the app itself, set app.kittyKeys to false in
~/.tmux-ide/config.json.
An agent shows the wrong state
Ask tmux-ide how it classified the pane:
tmux-ide agent explain %3The output shows the agent's own @agent_state stamp and its age, which
manifest matched, and the screen lines it read.
- A
workingorblockedstamp older than 10 minutes is ignored, and the screen is read instead. Agents that report their own state should re-stamp while they work. - If the wrong manifest matched, pin the right one with
tmux set-option -p @agent_hint <id>. - To change how an agent is recognized, add a manifest. See Override detection for a tool.
Claude Code status is not exact
Check the integration:
tmux-ide integration statusHooks are read when a Claude Code session starts, so restart sessions that were running before you installed the integration. Project or managed Claude Code settings can override user settings. See the Claude Code integration.
A remote machine won't connect
- The app connects with SSH
BatchMode=yes, so it can't type a password or accept an unknown host key. Set up key authentication and connect once withsshto trust the host. - The remote machine must run its own daemon. Start it with
tmux-ide --headlessthere, or withtmux-ide machines start <alias> --writefrom your machine. - tmux-ide on the remote machine must be on the non-interactive SSH
PATH.
restore finds no snapshot
Snapshots are written by the background updater about every 30 seconds while any session is adopted or was created from the app. Without one, there is nothing to restore. Preview what a restore would do before running it:
tmux-ide restore --dry-runSee Restore and resume.
events prints nothing
The event log is written by the same background updater, so it needs an adopted session or one created from the app. See Notifications and events.
See also
- Getting started — requirements and installation
- Agent detection — how agent states are decided
- CLI reference — every command and flag
App demo
An animated tour of the tmux-ide app, showing Home, an agent-aware Terminals workspace and Commands, rendered from the production components.
Agent automation
Let agents and scripts read and type into specific tmux panes through the tmux-ide CLI, MCP server and SDK, with operation handles for safe recovery.