Skip to content
tmux-ide

CLI reference

The supported tmux-ide commands and flags in 2.9.0-beta.8

This page follows the public surface printed by tmux-ide --help in 2.9.0-beta.8. --json is available on the scripting commands that explicitly list it below; interactive commands do not emit JSON.

Open tmux-ide

CommandWhat it does
tmux-ideOpen the visual app when no workspace config is present; launch the project layout when one is present
tmux-ide <path>Open or launch from a particular directory
tmux-ide start [path]Explicitly launch the declarative project layout
tmux-ide app [session]Open Home, or bypass Home and open a live session
tmux-ide app --detachableHost the app in _tmux-ide-app; Ctrl+Q detaches and the viewer survives
tmux-ide app --hostedAlias for --detachable
tmux-ide team [--json]Open the classic fleet cockpit, or print fleet state as JSON
tmux-ide --teamForce the classic fleet cockpit for a bare invocation

app.detachable in ~/.tmux-ide/config.json makes detachable mode the default.

Sessions and recovery

CommandWhat it does
tmux-ide init [--template <name>] [--json]Scaffold .tmux-ide/workspace.yml; auto-detect the stack unless a template is named
tmux-ide stop [session] [--json]Kill the resolved project session or the named session
tmux-ide restart [session] [--json]Stop and relaunch the session
tmux-ide attach [session] [--json]Reattach to a running session
tmux-ide ls [--json]List tmux sessions
tmux-ide status [session] [--json]Show session status
tmux-ide restore [--dry-run] [--run-commands] [--resume-agents] [--json]Rebuild the fleet from the last snapshot

Restore does not replay recorded commands unless --run-commands is present. --resume-agents uses captured conversation IDs and each supported agent's native resume command. See Restore & resume.

Inspect and edit a workspace

CommandWhat it does
tmux-ide setupOpen the interactive setup wizard
tmux-ide setup --editOpen the config tree editor
tmux-ide settingsOpen the standalone config manager
tmux-ide inspect [path] [--json]Show the effective config and live runtime state
tmux-ide doctor [--json]Check the local installation and requirements
tmux-ide validate [path] [--json]Validate the resolved workspace config
tmux-ide detect [path] [--json]Detect the project stack and show a suggested layout
tmux-ide detect [path] --writeWrite the detected layout to .tmux-ide/workspace.yml
tmux-ide migrate [path] --dry-run [--json]Preview migration from legacy ide.yml
tmux-ide migrate [path] --write [--json]Create .tmux-ide/workspace.yml from ide.yml
tmux-ide config [--json]Print the resolved launch projection
tmux-ide config set <path> <value>Set a workspace value by dot path
tmux-ide config add-pane --row <N> --title <T> [--command <C>] [--size <percent>]Add a pane
tmux-ide config remove-pane --row <N> --pane <M>Remove a pane
tmux-ide config add-row [--size <percent>]Add a row containing a shell pane

Row and pane indexes are zero-based. Config mutations preserve WorkspaceConfigV1 and refuse legacy-only fields rather than silently losing them.

Agent awareness and coordination

CommandWhat it does
tmux-ide integration install claudeInstall Claude Code lifecycle hooks and refresh the bundled Claude skill
tmux-ide integration install opencodeInstall session-ID capture for future opencode sessions
tmux-ide integration uninstall <claude|opencode>Remove only tmux-ide's integration entries
tmux-ide integration status [--json]Show discovered agents, integration state, and resume-ID capture
tmux-ide agent explain <pane|session> [--json]Explain exactly how an agent state was classified
tmux-ide send <target> <message> [--no-enter] [--json]Type into a pane selected by ID, title, semantic name, or supported legacy role
tmux-ide send --to <target> <message> [--no-enter] [--json]Equivalent explicit target form
tmux-ide events [--follow] [--json]Read recent agent-state transitions or follow them
tmux-ide events --follow --socket[=<path>]Follow pushed events from a running control server
tmux-ide wait agent-status <session> --status <state> [--timeout <ms>] [--json]Wait for a session status; exit 0 on match and 1 on timeout
tmux-ide wait output <pane|session> --match <regex> [--timeout <ms>] [--json]Wait until visible pane output matches
tmux-ide serve [socket-path]Run the foreground, owner-only local NDJSON control socket

serve defaults to ~/.tmux-ide/control.sock. The wait commands use it when requested and otherwise fall back to direct polling.

Adopt ordinary tmux sessions

CommandWhat it does
tmux-ide adopt <session>Add tmux-ide's server-side status bar and agent tracking
tmux-ide adopt --allAdopt every live non-internal session
tmux-ide unadopt <session>Remove tmux-ide chrome without killing the session
tmux-ide switcher [--client <name>]Open the compact session picker
tmux-ide cheatsheetPrint the complete key sheet
tmux-ide menu [--client <name>]Open the contextual tmux actions menu
tmux-ide popup <explorer|changes|config>Open a widget in a tmux popup
tmux-ide sidebar-toggle [--session <name>]Toggle the app navigation column

See The dock & keys for the matching tmux bindings.

Worktrees

CommandWhat it does
tmux-ide worktree create <branch> [--from <ref>] [--dir <path>] [--no-session]Add a worktree and, by default, open an adopted session in it
tmux-ide worktree open <branch>Open or switch to the worktree's session
tmux-ide worktree list [--json]Join git worktrees with their live session status
tmux-ide worktree remove <branch> [--force]Remove the worktree, then kill only its derived session

Removal refuses a dirty worktree unless --force is explicit.

Rich pane content

CommandWhat it does
tmux-ide show <file>Select Markdown or raster-image rendering from the file type
tmux-ide widget markdown [file]Render Markdown from a file or stdin
tmux-ide widget image <file>Render PNG, JPEG, GIF, WebP, or AVIF content
tmux-ide widget card [file]Render the structured card JSON contract from a file or stdin

File-backed widgets refresh when their source changes. Ctrl+C restores the ordinary terminal surface.

Updates

CommandWhat it does
tmux-ide update [--dry-run]Update according to the detected install method, or print the plan
tmux-ide update --tui-binary [--json]Download and verify the matching compiled OpenTUI runtime
tmux-ide update --manifests [--json]Refresh the agent-detection manifest pack; local overrides still win
tmux-ide skill-sync [--json]Refresh the managed Claude Code skill in ~/.claude/skills/tmux-ide

Daemon and server entry points

These are integration surfaces for process hosts, not the normal way to open the app.

CommandWhat it does
tmux-ide --headless [--port <N>] [--json]Own the canonical daemon in the foreground without opening tmux or a TUI
tmux-ide command-center [--port <N>]Start the command-center HTTP API (default port 4000)
tmux-ide server [--port <N>]Deprecated loopback-only PTY server; use --headless

The headless owner publishes ~/.tmux-ide/daemon.json with owner-only permissions. A host should wait until both /identity matches that record and /health reports a compatible protocol before considering the child ready. Stop it with SIGINT or SIGTERM; do not wrap it in a second daemonizer.

Global flags

FlagMeaning
-h, --helpPrint built-in help
-v, --versionPrint the installed version
--verboseLog tmux commands; TMUX_IDE_DEBUG=1 is equivalent
--jsonRequest structured output where the command lists JSON support
--headlessRun only the canonical daemon in this process

Command-specific flags are documented with their command above.