mcpField
T
tmux

tmux

github.com/openclaw开发393.3k8.4k 次安装今天更新
代码仓库

关于 tmux

tmux 是用于操作现有交互式 tmux 会话的技能,涵盖检查窗格、发送输入、管理会话和查看提示,并说明如何避免含糊的命令完成检查。

主要功能

  1. 01列出会话、窗口和窗格
  2. 02捕获窗格输出及回滚内容
  3. 03发送文本和特殊按键
  4. 04创建、重命名和结束会话
  5. 05使用辅助脚本等待文本

适用场景

  1. 01检查交互式进程
  2. 02向运行中的会话发送输入
  3. 03回复前检查 Agent 提示
  4. 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