用途:在需要交互式 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 后台模式。以上为公开资料内容,其他限制暂未提供。