Tmux Pro 交互管理
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_bbdabf4d/tmux-pro。
技能介绍
要解决的问题
让模型或脚本驱动 tmux 时,最容易翻车的地方不是 tmux 本身,而是环境串扰与交互不确定性:多路会话共用默认 socket 互相干扰、用 send-keys 盲发后不知道对端有没有真的结束、临时抓屏把 prompt 行截断、以及在 Windows 上直接调不到 tmux。这个技能把 tmux 的调用方式固化成一套约定,适合「需要一个交互式 TTY」的场景。
核心能力与关键步骤
Socket 隔离:所有命令都通过 -S 指定私有 socket,默认路径由 CLAWDBOT_TMUX_SOCKET_DIR 决定(未设置时回落到 ${TMPDIR:-/tmp}/clawdbot-tmux-sockets),默认名为 clawdbot.sock。
定位与命名:目标格式统一为 session:window.pane(缺省 :0.0),名称保持短且无空格。排查时先 list-sessions 再 list-panes -a;还可以用 scripts/find-sessions.sh -S "$SOCKET" 查单个 socket,加 --all 则扫描 CLAWDBOT_TMUX_SOCKET_DIR 下的全部 socket。
安全输入:优先字面量发送 send-keys -t target -l -- "$cmd",避免把按键序列当控制字符解析;需要中断时再单独发 C-c。
观测输出:用 capture-pane -p -J -t target -S -200 拉取最近历史;scripts/wait-for-text.sh 则按正则轮询 pane(-t 指定目标、-p 指定正则、加 -F 按固定字符串匹配、-T 控制超时秒数、-i 控制轮询间隔、-l 控制回溯行数),等待 prompt 出现再继续。
并行编排编程 Agent:tmux 适合同时跑 Codex、Claude Code 等多路 agent。实践中建议各自使用独立的 git worktree 避免分支冲突;在新克隆目录里先 pnpm install 再启动 codex;通过检测 shell prompt(❯ 或 $)判断是否跑完;codex 在非交互修复时需要 --yolo 或 --full-auto。跑 Python REPL 时要设 PYTHON_BASIC_REPL=1,否则增强型 REPL 会破坏 send-keys 的输入流程。
清理:结束后可以按需 kill-session、批量杀掉该 socket 上的会话,或直接 kill-server 清空整个私有 socket。
适用边界与注意点
- 该技能限定 darwin/linux,且要求
tmux在PATH中;Windows 需要走 WSL,在 WSL 内安装 tmux。 - 只在确实需要交互式 TTY 时使用 tmux。长时间运行的非交互任务应优先用 bash 的后台模式,而不是硬撑一个 session。
wait-for-text.sh的匹配依赖目标 pane 上确实输出了 prompt;并行 agent 的输出格式变化可能让轮询落空,必要时显式指定更大的-l回溯行数。
使用场景
- 让 Codex 与 Claude Code 在多个 worktree 中并行修同一仓库的问题,需要分别监控 prompt 是否出现
- 需要在非交互脚本里等待某个 pane 输出匹配正则再继续,想用 wait-for-text.sh 轮询并控制超时
- 要在隔离 socket 上运行交互式命令并安全发送输入,避免与默认 tmux 会话互相干扰
- 批量生成多个 tmux session 后需要按 socket 清理,想用 kill-session / kill-server 收尾
适合人员
- 需要在 CI 或沙箱里驱动 tmux 跑交互式命令的自动化工程师
- 用 Agent 并行修改多份代码并需要按 prompt 判断完成状态的 AI 工具开发者
- 在 macOS/Linux 终端频繁拆分窗口调试长任务的后端工程师
- 需要管理隔离 socket 与会话生命周期、避免互相污染的 DevOps 工程师