用途:以编程方式远程控制 tmux 会话,用于在后台创建终端会话、运行命令并读取输出,适合自动化脚本或代理管理长时间运行的任务。
主要能力:会话管理(list-sessions、new-session -d -s <name>、attach-session、kill-session、has-session);发送命令与按键(send-keys,可指定 session:window.pane,支持 C-c 等原始按键,也可不带 Enter 发送部分输入);抓取窗格输出(capture-pane -p,可加 -S - 抓取完整回滚缓冲、-S -100 抓取最后 100 行);窗口与窗格管理(new-window、split-window -h/-v、list-windows、list-panes)。
使用方式:tmux 通常已预装,未安装时用包管理器安装,如 macOS 的 brew install tmux、Ubuntu/Debian 的 sudo apt install tmux,并用 tmux -V 检查版本。典型流程:先 which tmux 确认已安装,否则显示安装命令并停止;用 tmux has-session -t <name> 确认会话存在;用 tmux new-session -d -s devserver 创建分离会话,再 tmux send-keys -t devserver "cd ~/project && pnpm dev" Enter 运行命令;用 tmux capture-pane -t devserver -p -S -50 抓取输出。
限制与规则:发送按键前需验证会话存在;长输出应保存到 workspace/tmux-<session>-<timestamp>.txt;send-keys 与 capture-pane 之间需加适当 sleep 等待命令完成;未经用户明确确认不得发送破坏性命令(如 rm -rf、DROP TABLE);程序化创建会话应使用 -d 分离模式,不要交互式附加;操作完成后用单行确认,如“Sent '' to session ”。