SuperAPI AI 工具集

tmux

智能体与模型

查看项目

更新于 10-15 23:58

技能介绍

用途:当需要交互式 TTY 时使用 tmux,长时运行且非交互的任务建议改用 exec 后台模式。该技能仅适用于 darwin/linux,要求 tmux 在 PATH 中;Windows 需在 WSL 中安装 tmux。

主要能力:在隔离 socket 上创建会话与窗格、发送按键输入、抓取窗格输出历史,并可并行运行多个编码智能体(如 Codex、Claude Code)。

快速开始: SOCKET_DIR="${NANOBOT_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/nanobot-tmux-sockets}" mkdir -p "$SOCKET_DIR" SOCKET="$SOCKET_DIR/nanobot.sock" SESSION=nanobot-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

创建会话后应打印监控命令:tmux -S "$SOCKET" attach -t "$SESSION" 与上面的 capture-pane。

用法要点:socket 默认路径为 "$NANOBOT_TMUX_SOCKET_DIR/nanobot.sock",使用 NANOBOT_TMUX_SOCKET_DIR 环境变量。目标格式为 session:window.pane(默认 :0.0),名称保持简短且不含空格。查看会话用 tmux -S "$SOCKET" list-sessions,查看窗格用 tmux -S "$SOCKET" list-panes -a。发送输入优先使用字面量:tmux -S "$SOCKET" send-keys -t target -l -- "$cmd";控制键如 tmux -S "$SOCKET" send-keys -t target C-c。抓取输出用 capture-pane -p -J -t target -S -200。可用 {baseDir}/scripts/find-sessions.sh -S "$SOCKET" 或 --all 查找会话;用 {baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' 等待提示文本,支持 -F(固定字符串)、-T(超时秒,默认 15)、-i(轮询间隔,默认 0.5)、-l(搜索历史行数,默认 1000)。附加后可用 Ctrl+b d 脱离。Python REPL 需设置 PYTHON_BASIC_REPL=1。

并行编排示例:用 tmux -S "$SOCKET" new-session -d -s "agent-$i" 创建多个会话,send-keys 在不同工作目录启动 codex --yolo,通过捕获窗格并检查提示符(❯ 或 $)判断完成状态。建议为并行修复使用独立 git worktree,新克隆先 pnpm install,Codex 非交互修复需 --yolo 或 --full-auto。

清理:用 tmux -S "$SOCKET" kill-session -t "$SESSION" 结束单个会话,可 kill-server 清理整个私有 socket。