SuperAPI AI 工具集

tmux

部署与运维

查看项目

更新于 10-15 17:26

技能介绍

用途:在需要交互式 TTY 时,通过 tmux 远程控制交互式 CLI;发送按键并抓取窗格输出。长期运行、非交互的任务应优先使用 bash 后台模式。

主要能力:可创建隔离 socket 的 tmux 会话,向指定窗格发送字面文本或控制键(如 C-c),抓取最近输出,等待提示符出现,列出会话、清理会话或关闭服务。

快速开始(隔离 socket): SOCKET_DIR="${TMPDIR:-/tmp}/codebuddy-tmux-sockets" mkdir -p "$SOCKET_DIR" SOCKET="$SOCKET_DIR/codebuddy.sock" SESSION=codebuddy-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

socket 约定:默认目录为 ${TMPDIR:-/tmp}/codebuddy-tmux-sockets;默认路径为 "$SOCKET_DIR/codebuddy.sock"。

定位窗格:目标格式为 session:window.pane,默认 :0.0;名称应简短且不含空格。

查找会话:列出会话使用 {baseDir}/scripts/find-sessions.sh -S "$SOCKET";扫描所有 socket 使用 {baseDir}/scripts/find-sessions.sh --all。

安全发送输入:字面发送用 tmux -S "$SOCKET" send-keys -t target -l -- "$cmd";控制键用 tmux -S "$SOCKET" send-keys -t target C-c。

观察输出:抓取最近输出用 tmux -S "$SOCKET" capture-pane -p -J -t target -S -200;等待提示符用 {baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern'。

清理:关闭会话用 tmux -S "$SOCKET" kill-session -t "$SESSION";关闭全部用 tmux -S "$SOCKET" kill-server。

辅助脚本:{baseDir}/scripts/wait-for-text.sh -t session:0.0 -p 'pattern' [-F] [-T 20] [-i 0.5] [-l 2000]。

限制:仅适用于需要交互式 TTY 的场景;非交互长期任务建议使用 bash 后台模式。以上为公开资料内容,其他限制暂未提供。