tmuxx
Original:🇺🇸 English
Translated
Deterministic tmuxx CLI + interactive TUI with pane-level activity insights. Use for tmux orchestration, worktree task execution, and real-time visibility into which agents are running, idle, or blocked on user input. CLI with JSON output for agents; TUI with visual status indicators for humans.
1installs
Sourceladderchaos/tmuxx
Added on
NPX Install
npx skill4agent add ladderchaos/tmuxx tmuxxTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →tmuxx
Use this skill to control tmux and worktree-based agent tasks through .
tmuxx agentHard Rules
- Prefer for session/window/worktree management. If pane command passthrough fails on a target environment, fall back to raw
tmuxx agentfor shell builtins.tmux send-keys - Always pass so outputs are machine-parseable.
--json - Prefer deterministic workflow commands over low-level primitives:
start-tasktask-reportcomplete-taskabort-task
- Only use low-level commands (,
split-pane, etc.) when workflow commands cannot solve the request.send-command
Standard Workflow
1) Start task
bash
tmuxx agent start-task <session_name> "<task prompt>" --jsonOptional:
--branch <name>--base-branch <branch>- (or other compatible command)
--agent-command "claude -p"
Setup Workspace (common first operation)
bash
tmuxx agent create-session dev --json
tmuxx agent create-window dev --name editor --json
tmuxx agent create-window dev --name logs --json
tmuxx agent list-sessions --json2) Monitor task — with pane-level insights
bash
tmuxx agent task-report <branch> --json
tmuxx agent list-worktrees --json
tmuxx agent list-sessions --jsontask-report- : "idle", "running", "waiting_for_input", "error"
pane_details[].status - : True if pane is waiting for user input/approval (permission request, confirmation, etc.)
pane_details[].needs_prompt - : Which window the pane is in
pane_details[].window_name - : What command is running
pane_details[].command
list-sessions- Which panes are actively running
- Which are idle
- Which are waiting for user input (permission wall, approval prompt, etc.)
3) Complete task
bash
tmuxx agent complete-task <branch> --test-command "<cmd>" --json4) Abort task
bash
tmuxx agent abort-task <branch> --jsonDiagnostics / Inspection
bash
tmuxx agent list-sessions --json
tmuxx agent capture-pane %0 --lines 200 --json
tmuxx agent capture-window @0 --json
tmuxx agent read-agent-log <branch> --jsonrun-and-captureLow-level Operations (Fallback)
bash
tmuxx agent create-session <name> --json
tmuxx agent create-window <session> --name <name> --json
tmuxx agent split-pane %0 --horizontal --json
tmuxx agent send-command %0 --json -- <command text>
tmuxx agent send-text %0 --json -- <text>
tmuxx agent send-keys %0 C-c --json
tmuxx agent send-keys %0 --literal --json -- <text>
tmuxx agent run-and-capture %0 --wait-seconds 2 --lines 200 --json -- <command text>
tmuxx agent resize-pane %0 right --amount 10 --json
tmuxx agent kill-pane %0 --json
tmuxx agent kill-window @0 --json
tmuxx agent kill-session <name> --jsonDeep Activity Insights (v0.3.7+)
tmuxx now tracks activities at the pane level to provide visibility into concurrent agent workflows (inspired by Superterm's "agentic attention" concept):
Pane Status Types
- : Pane is waiting at a shell prompt (bash, zsh, etc.)
idle - : Pane has an active process (agent, compiler, test runner)
running - : Pane is expecting user input (permission request, confirmation, etc.)
waiting_for_input - : Pane process exited with error
error
Detecting "Needs Prompt"
The flag detects when a pane is blocked waiting for user action. Patterns detected:
needs_prompt- Permission requests: "permission needed", "Allow/Deny", etc.
- Input prompts: "[y/n]", "yes/no", "press any key"
- Approval walls: "waiting for approval", "confirm action"
- Tool prompts: "Tool: execute_bash" (Superterm-style)
Example Output
json
{
"pane_details": [
{
"pane_id": "%0",
"window_name": "editor",
"command": "claude",
"status": "running",
"needs_prompt": false
},
{
"pane_id": "%1",
"window_name": "logs",
"command": "tail",
"status": "idle",
"needs_prompt": false
}
]
}Use Cases
- Batch agent coordination: Launch 8 agents, check to see which ones are blocked on permissions
task-report - Deep session monitoring: now shows pane statuses across all sessions — no more tab-cycling
list-sessions - Prompt detection: Automatically identify when agents hit permission walls or need user approval
TUI Enhancements (v0.3.9+)
The interactive TUI () includes real-time pane activity visualization with ANSI color-rendered preview:
tmuxxHeader Legend
Single-line header with all status indicators:
[tmuxx] ● active ● selected ● attached ▶ running ⏸ waiting ⎇ worktreePane Status Badges
Each pane shows inline status in the tree:
- = running (blue) — agent actively executing
▶ - = waiting (red) — agent blocked on permission/approval
⏸
Worktree Tree Nodes (4th level)
Worktree info appears as a child node under panes (green ):
⎇ branch-namedemo
├── editor :0 ●
│ └── zsh %0
├── build :1
│ ├── sleep %1 ▶
│ └── claude %2 ⏸
│ └── ⎇ feature-auth
└── logs :2
└── tail %3 ▶Key Improvements
- ANSI color preview — terminal output renders with full colors
- Context-aware footer — bindings hide when not applicable (e.g., Kill hidden with no sessions)
- Prompt detection — automatically flags agents waiting for user input
- Persistent theme (v0.3.11+) — theme selection saved to and restored on launch
~/.config/tmuxx/config.json - Auto worktree detection (v0.3.12+) — any pane in a git worktree shows automatically, regardless of how it was created
⎇ branch - Tmux status bar integration (v0.3.13+) — clickable button in tmux status bar (top-right) to detach back to tmuxx TUI
[tmuxx]
Error Recovery
When a command fails:
- Re-run with identical arguments once.
- Run (if branch-based).
tmuxx agent task-report <branch> --json - Run and
tmuxx agent list-sessions --json.tmuxx agent list-worktrees --json - If still blocked, return the exact command, error text, and suggested next command.
Known Limitations
- For historical binaries (), pane command passthrough may fail or require awkward quoting for shell builtins (
<=0.3.4,cd,pwd).export - If stuck on an older binary, use raw as a temporary fallback.
tmux send-keys -t <pane> "<text>" Enter
Notes
- may require optional dependencies (
screenshot-window).pip install "tmuxx[mcp]" - If using npm, installs only a wrapper. The Python
npm install -g tmuxxbinary must still be available intmuxx(PATHrecommended).pipx install tmuxx - Use direct only if
tmuxis not installed or is broken, and explicitly state the reason.tmuxx