关于 tmux-terminal
tmux-terminal 是用于交互式终端会话的技能,适合操作 TUI、管理长时间运行的进程和捕获终端输出。它通过 tmux 发送按键、读取屏幕并维持会话。
主要功能
- 01创建分离的 tmux 会话
- 02向会话发送命令和按键
- 03捕获终端屏幕输出
- 04维持或停止长时间运行的进程
- 05支持 TUI 交互与检查
适用场景
- 01测试 ralph-tui 等交互式 CLI
- 02在后台运行服务器或循环任务
- 03为 QA 报告收集实时终端输出
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mikeyobrien/ ralph-orchestrator --skill tmux-terminal安装后在 Claude Code 中输入/tmux-terminal确认已加载。
详细介绍
tmux-terminal
概述
使用 tmux 驱动交互式终端会话,包括 ralph-tui 等 TUI 工作流。tmux 可让你发送按键、捕获屏幕输出,并在不同步骤之间保持进程运行。
适用场景
- 测试
ralph-tui或任何交互式 CLI 提示 - 管理长时间运行的进程(Web 服务器、循环、监视模式)
- 捕获实时终端输出,用于 QA 报告
- 与会重绘屏幕的应用交互
前提条件
- 已安装
tmux(macOS 上已预装)
验证:
tmux -V
核心命令
创建一个分离会话:
tmux new-session -d -s <name>
发送命令(追加 Enter 以执行):
tmux send-keys -t <name> "<command>" Enter
捕获屏幕输出:
tmux capture-pane -t <name> -p
完成后终止会话:
tmux kill-session -t <name>
特殊按键
使用 send-keys 和按键名称:
EnterC-c(Ctrl-C)C-d(Ctrl-D)TabEscapeUp、Down、Left、Right
示例:
tmux send-keys -t <name> Up
tmux send-keys -t <name> C-c
TUI 交互模式
启动 ralph-tui
tmux new-session -d -s ralph-tui
tmux send-keys -t ralph-tui "cargo run -p ralph-tui" Enter
在 TUI 中导航
tmux send-keys -t ralph-tui Down
tmux send-keys -t ralph-tui Enter
捕获并解析屏幕
tmux capture-pane -t ralph-tui -p -S -200
当屏幕内容繁杂时,使用 -S -200 捕获最后 200 行。
长时间运行进程管理
- 在 tmux 会话中启动服务器或循环,使其持续运行。
- 使用
capture-pane确认运行正常(查找“listening”或“ready”文本)。 - 使用
C-c停止进程,然后执行kill-session。
示例:
tmux new-session -d -s ralph-web
tmux send-keys -t ralph-web "cargo run -p ralph-cli -- web" Enter
tmux capture-pane -t ralph-web -p | rg -n "listening|ready"
tmux send-keys -t ralph-web C-c
tmux kill-session -t ralph-web
注意事项
- 会话名称应简短且唯一。
- 始终清理会话,避免遗留后台进程。
- 如果输出为空,请稍等片刻后再次捕获。
评论
支持 Markdown