SuperAPI AI 工具集

tmux

部署与运维

查看项目

更新于 10-16 06:39

技能介绍

tmux 技能用于远程控制 tmux 会话,通过发送按键和读取输出来操作交互式 CLI,是管理 Claude Code 会话的重要工具。

用途

该技能适用于以下场景:在 tmux 中监控 Claude/Codex 会话;向交互式终端应用发送输入;抓取 tmux 中长时间运行进程的输出;以编程方式导航 tmux 窗格与窗口;检查已有会话中的后台工作。

不适用场景:运行一次性 shell 命令应直接使用 exec 工具;启动新的后台进程应使用 exec 并设置 background:true;非交互式脚本应使用 exec 工具;进程不在 tmux 中时;需要创建新的 tmux 会话时应使用 exec 配合 tmux new-session。

示例会话

资料中列出的示例会话包括:shared(主交互会话)、worker-2 至 worker-8(并行工作会话)。

主要能力与常用命令

列出会话:tmux list-sessions 或 tmux ls。

捕获输出:

  • 窗格最后 20 行:tmux capture-pane -t shared -p | tail -20
  • 整个回滚历史:tmux capture-pane -t shared -p -S -
  • 窗口中指定窗格:tmux capture-pane -t shared:0.0 -p

发送按键:

  • 发送文本(不按回车):tmux send-keys -t shared "hello"
  • 发送文本并回车:tmux send-keys -t shared "y" Enter
  • 发送特殊键:tmux send-keys -t shared Enter、Escape、C-c(Ctrl+C)、C-d(Ctrl+D,EOF)、C-z(Ctrl+Z,挂起)

窗口与窗格导航:

  • 选择窗口:tmux select-window -t shared:0
  • 选择窗格:tmux select-pane -t shared:0.1
  • 列出窗口:tmux list-windows -t shared

会话管理:

  • 创建新会话:tmux new-session -d -s newsession
  • 终止会话:tmux kill-session -t sessionname
  • 重命名会话:tmux rename-session -t old new

安全发送输入

对于交互式 TUI(如 Claude Code、Codex 等),应将文本和回车拆分为两次发送,以避免粘贴或多行边界情况:

tmux send-keys -t shared -l -- "Please apply the patch in src/foo.ts" sleep 0.1 tmux send-keys -t shared Enter

Claude Code 会话模式

检查会话是否需要输入: tmux capture-pane -t worker-3 -p | tail -10 | grep -E "❯|Yes.*No|proceed|permission"

批准 Claude Code 提示:

  • 发送 'y' 并回车:tmux send-keys -t worker-3 'y' Enter
  • 或选择编号选项:tmux send-keys -t worker-3 '2' Enter

检查所有会话状态: for s in shared worker-2 worker-3 worker-4 worker-5 worker-6 worker-7 worker-8; do echo "=== $s ===" tmux capture-pane -t $s -p 2>/dev/null | tail -5 done

向会话发送任务: tmux send-keys -t worker-4 "Fix the bug in auth.js" Enter

注意事项

使用 capture-pane -p 打印到 stdout(对脚本编写至关重要);-S - 捕获整个回滚历史;目标格式为 session:window.pane(例如 shared:0.0);会话在 SSH 断开后仍会保持。

限制

资料未提供该技能的安装方式、收费模式、平台支持范围及具体效果说明,这些信息暂未提供。