Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Run and manage background terminal sessions using tmux. Use when the user needs to start long-running processes, run multiple commands in parallel, keep tasks alive after disconnecting, or check on background job status. Do NOT use for simple one-off commands or when user explicitly requests alternative tools (screen, nohup).
.claude/skills/marco-souza-terminal-multiplexer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 88% | 0% |
| case-02 | ✗→✓ | ▲ Improved | 8% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-16 | ✗→✓ | ▲ Improved | 125% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 51% | 0% |
Use tmux to manage background terminal sessions.
Verify tmux is installed before use:
bash# Check if tmux is available command -v tmux >/dev/null 2>&1 || { echo "Error: tmux is not installed" echo "Install with: brew install tmux (macOS) or apt install tmux (Linux)" exit 1 }
bash# Create and attach to a new session tmux new-session -s <name> # Create a detached session (background) tmux new-session -d -s <name> # List all sessions tmux ls # Attach to an existing session tmux attach -t <name> # Rename a session tmux rename-session -t <old-name> <new-name> # Kill a session tmux kill-session -t <name>
bash# Run a command in a detached session tmux send-keys -t <name> "<command>" C-m # Example: start a server in the background tmux new-session -d -s api-server tmux send-keys -t api-server "bun run dev" C-m
bash# Capture the latest pane output tmux capture-pane -p -t <name> # Capture to a file tmux capture-pane -t <name> && tmux save-buffer /tmp/output.txt # Capture last N lines tmux capture-pane -p -t <name> | tail -n 20
bashtmux new-session -d -s server -n app tmux send-keys -t server "npm start" C-m
bashtmux new-session -d -s jobs -n worker1 tmux send-keys -t jobs:worker1 "npm run build:client" C-m tmux new-window -t jobs -n worker2 tmux send-keys -t jobs:worker2 "npm run build:server" C-m
bashtmux capture-pane -p -t <name> | tail -n 20
bash# Start a build in background tmux new-session -d -s build -n compile tmux send-keys -t build:compile "npm run build 2>&1 | tee build.log" C-m # Check progress tmux capture-pane -p -t build:compile | tail -n 10 # When done, check exit code tmux send-keys -t build:compile "echo $?" C-m tmux capture-pane -p -t build:compile | tail -n 1
bash# User is in a session, needs to disconnect # Press: Ctrl-b d (detach) # Later, reattach tmux attach -t <name> # Or attach to most recent session tmux attach
bash# Check existing session tmux ls | grep <name> # Attach to existing session tmux attach -t <name> # Or kill and recreate tmux kill-session -t <name> tmux new-session -d -s <name>
bash# List all sessions tmux ls # Common cause: session name typo # Use tab completion or exact name from `tmux ls`
bash# Verify session exists and is responsive tmux list-panes -t <name> # Send command with explicit enter tmux send-keys -t <name> "<command>" C-m # Wait and check output sleep 2 tmux capture-pane -p -t <name>
dev-server, test-runner)tmux ls to check existing sessions before creating new ones-d) for background taskstmux send-keys over tmux new-session for existing sessions| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 4,737 | 4,005 | -15% | 1 | 1 | 0% | 1,025 | 1,927 | +88% | 0 | 0 | — |
case-02 | fail→pass | 8,387 | 4,098 | -51% | 1 | 1 | 0% | 1,856 | 2,001 | +8% | 0 | 0 | — |
case-03 | fail→fail | 7,418 | 2,702 | -64% | 1 | 1 | 0% | 1,452 | 1,546 | +6% | 0 | 0 | — |
case-04 | pass→pass | 3,047 | 2,458 | -19% | 1 | 1 | 0% | 362 | 1,376 | +280% | 0 | 0 | — |
case-05 | pass→pass | 5,023 | 3,683 | -27% | 1 | 1 | 0% | 1,056 | 1,658 | +57% | 0 | 0 | — |
case-06 | pass→pass | 2,091 | 2,076 | -1% | 1 | 1 | 0% | 423 | 1,393 | +229% | 0 | 0 | — |
case-07 | fail→pass | 4,313 | 1,921 | -55% | 1 | 1 | 0% | 909 | 1,327 | +46% | 0 | 0 | — |
case-08 | pass→pass | 6,159 | 2,277 | -63% | 1 | 1 | 0% | 1,307 | 1,390 | +6% | 0 | 0 | — |
case-09 | pass→pass | 3,274 | 2,693 | -18% | 1 | 1 | 0% | 515 | 1,347 | +162% | 0 | 0 | — |
case-10 | pass→pass | 4,675 | 1,552 | -67% | 1 | 1 | 0% | 978 | 1,276 | +30% | 0 | 0 | — |
case-11 | pass→pass | 3,274 | 1,567 | -52% | 1 | 1 | 0% | 566 | 1,309 | +131% | 0 | 0 | — |
case-16 | fail→pass | 3,506 | 3,016 | -14% | 1 | 1 | 0% | 722 | 1,622 | +125% | 0 | 0 | — |
case-12 | fail→pass | 4,656 | 2,205 | -53% | 1 | 1 | 0% | 995 | 1,502 | +51% | 0 | 0 | — |
case-13 | pass→pass | 3,784 | 1,933 | -49% | 1 | 1 | 0% | 734 | 1,371 | +87% | 0 | 0 | — |
case-14 | fail→pass | 6,387 | 3,388 | -47% | 1 | 1 | 0% | 1,328 | 1,770 | +33% | 0 | 0 | — |
case-15 | pass→pass | 6,426 | 2,274 | -65% | 1 | 1 | 0% | 1,308 | 1,482 | +13% | 0 | 0 | — |
case-17 | fail→pass | 3,882 | 3,137 | -19% | 1 | 1 | 0% | 840 | 1,707 | +103% | 0 | 0 | — |
case-18 | pass→pass | 2,300 | 1,787 | -22% | 1 | 1 | 0% | 433 | 1,342 | +210% | 0 | 0 | — |
case-19 | fail→pass | 4,764 | 2,014 | -58% | 1 | 1 | 0% | 1,106 | 1,451 | +31% | 0 | 0 | — |
case-20 | pass→pass | 9,586 | 3,599 | -62% | 1 | 1 | 0% | 1,929 | 1,756 | -9% | 0 | 0 | — |
case-21 | fail→fail | 2,580 | 2,451 | -5% | 1 | 1 | 0% | 521 | 1,518 | +191% | 0 | 0 | — |
case-22 | pass→pass | 8,978 | 3,283 | -63% | 1 | 1 | 0% | 1,860 | 1,745 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +36 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.