关于 tmux
tmux 是用于操作现有交互式 tmux 会话的技能,涵盖检查窗格、发送输入、管理会话和查看提示,并说明如何避免含糊的命令完成检查。
主要功能
- 01列出会话、窗口和窗格
- 02捕获窗格输出及回滚内容
- 03发送文本和特殊按键
- 04创建、重命名和结束会话
- 05使用辅助脚本等待文本
适用场景
- 01检查交互式进程
- 02向运行中的会话发送输入
- 03回复前检查 Agent 提示
- 04等待命令完成标记出现
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ openclaw/ openclaw --skill tmux安装后在 Claude Code 中输入/tmux确认已加载。
附带文件scripts/find-sessions.shscripts/wait-for-text.sh
详细介绍
tmux
用于现有的交互式 tmux 会话。对于一次性命令,请使用常规 shell。对于新的非交互式后台作业,请使用后台执行。
基础
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 -
目标格式:session:window.pane,例如 shared:0.0。
发送输入
原样文本,然后按 Enter:
tmux send-keys -t shared:0.0 -l -- "Please continue"
tmux send-keys -t shared:0.0 Enter
特殊按键:
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
对于任意文本,使用 -l --。将文本与 Enter 分开输入,以避免粘贴或换行问题。
会话
tmux new-session -d -s worker
tmux rename-session -t old new
tmux kill-session -t worker
提示检查
tmux capture-pane -t worker-3 -p | tail -20
tmux capture-pane -t worker-3 -p | rg "proceed|permission|Yes|No|❯"
仅在理解提示内容后再批准或选择:
tmux send-keys -t worker-3 -l -- "y"
tmux send-keys -t worker-3 Enter
辅助脚本
scripts/find-sessions.sh:查找会话。scripts/wait-for-text.sh:等待捕获的面板内容包含指定文本。
wait-for-text.sh 还会搜索回显的输入、滚动历史和进程输出。若要检测命令完成,请使用唯一标记,并在发送到 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
回显的命令中永远不会包含完整标记,而 nonce 可防止与较早的完成行匹配。
注意
capture-pane -p会将内容输出到 stdout,供脚本读取。-S -会捕获完整的滚动历史。- tmux 会话在 SSH 断开后仍会保留。
评论
支持 Markdown