SuperAPI AI 工具集

using-tmux-for-interactive-commands

编程与开发

查看项目

更新于 10-16 03:14

技能介绍

用途:当需要以程序化方式运行交互式 CLI 工具(vim、nano、Python/Node REPL、git rebase -i、git add -p、htop 等需要真实终端或 readline 的命令)时,标准 bash 无法控制,可用 tmux 创建分离会话,再通过 send-keys 发送输入、capture-pane 捕获屏幕内容。不适用于简单非交互命令、可通过 stdin 重定向输入的命令或一次性命令。

主要能力与用法:启动会话 tmux new-session -d -s <name> <command>;发送输入 tmux send-keys -t <name> 'text' Enter;捕获输出 tmux capture-pane -t <name> -p;结束会话 tmux kill-session -t <name>;列出会话 tmux list-sessions。可用 -c 指定工作目录,例如 tmux new-session -d -s git_session -c /path/to/repo git rebase -i HEAD~3。

基本流程:创建分离会话,等待 100-500ms 初始化,用 send-keys 发送输入(支持 Enter、Escape、C-c、C-x、方向键、Space、BSpace 等 tmux 键名),用 capture-pane -p 查看当前屏幕,重复发送与捕获,最后终止会话。资料还提到一个辅助脚本 tmux-wrapper.sh,提供 start、send、capture、stop 子命令。

常见错误:会话启动后未等待就捕获会得到空白屏,需先 sleep;忘记单独发送 Enter 会导致命令未执行;不要用 '\n' 代替 Enter 键名;用完需 kill-session 清理,避免残留会话。

限制:资料未提供该技能的安装方式、依赖版本、收费或平台信息。