mcpField
T
tmux

tmux

github.com/openclawDevelopment393.3k8.4k installsUpdated today
Repository

About tmux

tmux is a skill for operating existing interactive tmux sessions. It covers inspecting panes, sending input, managing sessions, and checking prompts, with guidance for avoiding ambiguous command-completion checks.

Key features

  1. 01List sessions, windows, and panes
  2. 02Capture pane output and scrollback
  3. 03Send text and special keys
  4. 04Create, rename, and end sessions
  5. 05Wait for text with helper scripts

Use cases

  1. 01Inspect an interactive process
  2. 02Send input to a running session
  3. 03Check an agent prompt before responding
  4. 04Wait for a command completion marker

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/openclaw/openclaw --skill tmux

After installing, type/tmuxin Claude Code to confirm it loaded.

Bundled filesscripts/find-sessions.shscripts/wait-for-text.sh

Details

From the project README

tmux

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

Basics

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:

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

Special keys:

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

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

Prompt checks

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:

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:

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.

Comments

Markdown supported