一键导入
tmux
Use when you need an interactive TTY for REPLs, long-running processes, or orchestrating multiple coding agents in parallel
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when you need an interactive TTY for REPLs, long-running processes, or orchestrating multiple coding agents in parallel
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when reviewing a spec or task graph for completeness before implementation
Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, logging in, or automating browser actions
Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, logging in, or automating browser actions
Use when decomposing a spec, design, or feature description into a task dependency graph with self-evaluating acceptance criteria
Use when doing creative product, feature, component, functionality, or behavior design work
Use when infrastructure or features are built but before declaring done -- verifies work is wired into the system and actively used
| name | tmux |
| description | Use when you need an interactive TTY for REPLs, long-running processes, or orchestrating multiple coding agents in parallel |
Remote-control tmux sessions for interactive CLIs by sending keystrokes and scraping pane output. Use tmux only when you need an interactive TTY — prefer background execution for non-interactive tasks.
SOCKET_DIR="${TMPDIR:-/tmp}/oro-tmux-sockets"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/oro.sock"
SESSION=oro-python
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- 'PYTHON_BASIC_REPL=1 python3 -q' Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
After starting a session, always print monitor commands:
To monitor:
tmux -S "$SOCKET" attach -t "$SESSION"
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
${TMPDIR:-/tmp}/oro-tmux-sockets/oro.socksession:window.pane (defaults to :0.0)tmux -S "$SOCKET" send-keys -t target -l -- "$cmd"tmux -S "$SOCKET" send-keys -t target C-ctmux -S "$SOCKET" send-keys -t target -l -- "$cmd" && sleep 0.1 && tmux -S "$SOCKET" send-keys -t target Enter
tmux -S "$SOCKET" capture-pane -p -J -t target -S -200.Codex/skills/tmux/scripts/wait-for-text.sh -t session:0.0 -p 'pattern'Ctrl+b dPYTHON_BASIC_REPL=1 (non-basic REPL breaks send-keys flows)go run . or test commands directlytmux excels at running multiple coding agents in parallel:
SOCKET="${TMPDIR:-/tmp}/agent-army.sock"
# Create multiple sessions
for i in 1 2 3 4 5; do
tmux -S "$SOCKET" new-session -d -s "agent-$i"
done
# Launch agents in different worktrees
tmux -S "$SOCKET" send-keys -t agent-1 "cd .worktrees/feature-a && Codex" Enter
tmux -S "$SOCKET" send-keys -t agent-2 "cd .worktrees/feature-b && Codex" Enter
# Poll for completion
for sess in agent-1 agent-2; do
if tmux -S "$SOCKET" capture-pane -p -t "$sess" -S -3 | grep -q '❯'; then
echo "$sess: DONE"
else
echo "$sess: Running..."
fi
done
Tips:
❯ or $) to detect completiontmux -S "$SOCKET" kill-session -t "$SESSION"tmux -S "$SOCKET" kill-serverPolls a pane for a regex with timeout:
.Codex/skills/tmux/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]
| Flag | Purpose | Default |
|---|---|---|
-t | Pane target (required) | — |
-p | Regex pattern (required) | — |
-F | Fixed string match | regex |
-T | Timeout seconds | 15 |
-i | Poll interval | 0.5 |
-l | History lines | 1000 |
send-keys call to TUI apps