tmux — скилл для Claude: управление сессиями и панелями
Даёт агенту доступ к живым tmux-сессиям: читать вывод панели, отправлять клавиши и текст, ждать появления строки в промпте.
npx skills add openclaw/openclaw --skill tmux -a claude-codeЧто делает tmux
Скилл нужен, когда интерактивная программа уже крутится в tmux, а агенту надо с ней работать. Он перечисляет сессии, окна и панели, снимает содержимое панели через tmux capture-pane -p, отправляет ввод через send-keys. Для произвольного текста используется -l --, а Enter отправляется отдельной командой — так меньше сюрпризов с переносами строк.
Внутри два вспомогательных скрипта: scripts/find-sessions.sh находит сессии, scripts/wait-for-text.sh ждёт, пока в панели появится нужный текст. Второй ищет и по эху ввода, и по scrollback, поэтому для отслеживания завершения команды в примере собирается маркер с nonce: полная строка маркера в отправляемой команде разбита на части и в эхе не встречается целиком.
Нужен установленный tmux и macOS или Linux. Для одноразовых команд скилл не нужен — хватит обычного shell, а для новых фоновых задач без интерактива есть background execution. Ставить стоит тем, кто гоняет агентов в долгих интерактивных сессиях; если у вас всё запускается одной командой и завершается, обойдитесь без него.
Какие задачи решает
- прочитать вывод интерактивной программы, запущенной в tmux
- отправить текст и Enter в конкретную панель
- дождаться появления строки приглашения или запроса разрешения
- перечислить сессии, окна и панели перед работой
- подтвердить запрос в чужой сессии, когда промпт уже понятен
Примеры запросов агенту
- посмотри, что сейчас в панели shared:0.0, и скажи, ждёт ли она ввода
- отправь в worker-3 текст «Please continue» и нажми Enter
- подожди, пока в shared:0.0 появится строка с proceed, и покажи последние 20 строк
Как установить tmux
1Через Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill tmux -a claude-code2Вручную: положить файлы
~/.claude/skills/tmux/SKILL.mdПапка скилла целиком; для одного проекта — .claude/skills/tmux/
1Через Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill tmux -a codex2Вручную: положить файлы
.agents/skills/tmux/SKILL.mdДля всех проектов — ~/.agents/skills/
1Через Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill tmux -a cursor2Вручную: положить файлы
.cursor/skills/tmux/SKILL.mdCursor читает и .agents/skills/, и .claude/skills/
1GitHub CLI
gh skill install openclaw/openclaw tmux2Вручную: положить файлы
.github/skills/tmux/SKILL.md1Через Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill tmux -a gemini-cli2Командой платформы
gemini skills install https://github.com/openclaw/openclaw --path skills/tmuxВручную: положить файлы
.devin/skills/tmux/SKILL.mdСтарый путь .windsurf/skills/ тоже читается
Через Skills CLI (Vercel)
npx skills add openclaw/openclaw --skill tmux -a opencodeClaude.ai
Упакуйте папку в zip и загрузите в Settings → Capabilities → Skills
Из того же набора45
Весь набор →Похожие
Вопросы о tmux
Как установить tmux в Claude?
Командой npx skills add openclaw/openclaw --skill tmux -a claude-code. Файл скилла окажется в ~/.claude/skills/tmux/SKILL.md.
Что делает скилл tmux?
Управляет существующими tmux-сессиями и панелями: перечисляет их, снимает вывод, отправляет клавиши и текст, следит за появлением нужной строки в промпте.
Что нужно для работы скилла?
Установленный tmux и macOS или Linux. Для одноразовых команд скилл не требуется — используйте обычный shell.
Исходный текст
SKILL.md · MIT
---
name: tmux
description: "Control tmux sessions/panes for interactive CLIs: list, capture output, send keys, paste text, monitor prompts."
metadata:
{
"openclaw":
{
"emoji": "🧵",
"os": ["darwin", "linux"],
"requires": { "bins": ["tmux"] },
"install":
[
{
"id": "brew",
"kind": "brew",
"formula": "tmux",
"bins": ["tmux"],
"label": "Install tmux (brew)",
},
],
},
}
---
# 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 captured pane contents contain text.
`wait-for-text.sh` searches echoed input and scrollback as well as process output. For command completion, use a unique marker whose full text is split across arguments in the command sent to tmux:
```bash
nonce="$(od -An -N8 -tx1 /dev/urandom | tr -d ' \n')"
marker="OPENCLAW_DONE_${nonce}"
tmux send-keys -t shared:0.0 -l -- "sleep 4; printf '%s%s\n' 'OPENCLAW_DONE_' '$nonce'"
tmux send-keys -t shared:0.0 Enter
scripts/wait-for-text.sh -t shared:0.0 -p "$marker" -F -T 30
```
The echoed command never contains the complete marker, and the nonce prevents an older completion line from matching.
## Notes
- `capture-pane -p` prints to stdout for scripts.
- `-S -` captures full scrollback.
- tmux sessions persist across SSH disconnects.
© openclaw · MIT · openclaw/openclaw