# Tmux

Control tmux sessions/panes for interactive CLIs: list, capture output, send keys...

- Repository: https://github.com/OpenBMB/PilotDeck (4947 stars)
- Category: Engineering
- License: AGPL-3.0
- Last updated: 2026-10-29
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add OpenBMB/PilotDeck --skill tmux -g -a claude-code -y`
Codex: `npx skills add OpenBMB/PilotDeck --skill tmux -g -a codex -y`
Cursor: `npx skills add OpenBMB/PilotDeck --skill tmux -g -a cursor -y`
Gemini CLI: `npx skills add OpenBMB/PilotDeck --skill tmux -g -a gemini-cli -y`

## Description

Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# tmux

Use for existing interactive tmux sessions. For one-shot commands, use normal shell. For new non-interactive background jobs, use background execution.

## Basics

```bash
tmux ls
tmux list-windows -t shared
tmux list-panes -t shared:0
tmux capture-pane -t shared:0.0 -p
tmux capture-pane -t shared:0.0 -p -S -
```

Target format: `session:window.pane`, e.g. `shared:0.0`.

## Send input

Literal text, then Enter:

```bash
tmux send-keys -t shared:0.0 -l -- "Please continue"
tmux send-keys -t shared:0.0 Enter
```

Special keys:

```bash
tmux send-keys -t shared:0.0 C-c
tmux send-keys -t shared:0.0 C-d
tmux send-keys -t shared:0.0 Escape
```

Use `-l --` for arbitrary text. Split text and Enter to avoid paste/newline surprises.

## Sessions

```bash
tmux new-session -d -s worker
tmux rename-session -t old new
tmux kill-session -t worker
```

## Prompt checks

```bash
tmux capture-pane -t worker-3 -p | tail -20
tmux capture-pane -t worker-3 -p | rg "proceed|permission|Yes|No|❯"
```

Approve/select only when the prompt is understood:

```bash
tmux send-keys -t worker-3 -l -- "y"
tmux send-keys -t worker-3 Enter
```

## Helpers

- `scripts/find-sessions.sh`: discover sessions.
- `scripts/wait-for-text.sh`: wait until pane output contains text.

## Notes

- `capture-pane -p` prints to stdout for scripts.
- `-S -` captures full scrollback.
- tmux sessions persist across SSH disconnects.

## PilotDeck Migration Note

- Source: /var/folders/27/xyyzc_n172l3jjmnxgqmhhzh0000gn/T/tmp.AyWDWGKoS4/openclaw/skills/tmux
- Review status: candidate for PilotDeck native skills pack.
- Platform-specific OpenClaw/Hermes metadata was removed or should be ignored during review.

