mcpField
T
tmux-terminal

tmux-terminal

github.com/mikeyobrien开发3.2k40 次安装2 周前更新
代码仓库

关于 tmux-terminal

tmux-terminal 是用于交互式终端会话的技能,适合操作 TUI、管理长时间运行的进程和捕获终端输出。它通过 tmux 发送按键、读取屏幕并维持会话。

主要功能

  1. 01创建分离的 tmux 会话
  2. 02向会话发送命令和按键
  3. 03捕获终端屏幕输出
  4. 04维持或停止长时间运行的进程
  5. 05支持 TUI 交互与检查

适用场景

  1. 01测试 ralph-tui 等交互式 CLI
  2. 02在后台运行服务器或循环任务
  3. 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 和按键名称:

  • Enter
  • C-c(Ctrl-C)
  • C-d(Ctrl-D)
  • Tab
  • Escape
  • Up、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