用途:把 tmux 当作可编程终端复用器,用于交互式工作。通过发送按键并抓取窗格输出,远程操控 python、gdb、git add -p 等交互式 CLI,适合调试等需要操作交互式终端的场景。适用于 Linux 和 macOS 的 stock tmux,并建议使用私有套接字避免自定义配置干扰。
主要能力:提供会话注册表,可用会话名、自动检测单会话或显式 socket/target 三种方式引用会话,减少重复的 -S socket -t target 样板。附带多个辅助脚本:create-session.sh 创建并注册会话(支持 --python、--gdb、--shell),safe-send.sh 发送按键并支持重试、就绪检查与等待提示符,wait-for-text.sh 轮询窗格等待正则或固定文本,list-sessions.sh 列出注册会话及健康状态,cleanup-sessions.sh 清理死会话或旧会话,kill-session.sh 原子地终止 tmux 会话并注销注册表条目。
使用方式:创建会话前先运行 ./tools/list-sessions.sh 检查名称是否可用,再用 ./tools/create-session.sh -n <name> --python(或 --gdb、--shell)创建。发送命令用 ./tools/safe-send.sh -s <name> -c "print(2+2)" -w ">>>",单会话时可省略 -s。多行代码用 -m 配合 paste-buffer 发送。等待提示符用 ./tools/wait-for-text.sh -s <name> -p '^>>>' -T 15。查看输出可用 tmux -S "$SOCKET" capture-pane -p -J -t target -S -200,或临时 attach 后用 Ctrl+b d 分离。清理时推荐用 ./tools/kill-session.sh -s <name>,也可用 ./tools/cleanup-sessions.sh 清理注册表。
限制与注意:启动 Python 交互式 shell 时必须先设置 PYTHON_BASIC_REPL=1(--python 标志会自动设置),否则增强 REPL 会干扰 send-keys 导致命令静默失败。调试默认使用 lldb。持续监控窗格输出应使用辅助脚本轮询,而非 tmux wait-for。注意 cleanup-sessions.sh 只移除注册表条目、不终止 tmux 会话,kill-session.sh 才会同时终止。资料未提供收费、价格或平台要求等更多信息。