关于 Terminal UI DevTools
tui-mcp 是用于在持久伪终端会话中启动和控制终端应用的 MCP 服务,为 Agent 和开发者提供交互式 TUI 操作,并可呈现截图和可读文本。
主要功能
- 01在持久伪终端中启动应用
- 02发送按键、文本和鼠标事件
- 03捕获 PNG 截图和文本快照
- 04读取终端区域与滚动历史
- 05监控和管理多个会话
适用场景
- 01操作交互式命令行工具
- 02处理 SSH 提示和安装程序
- 03监控构建、日志和部署
- 04并行运行开发与调试会话
MCP 相关
它向 MCP 客户端提供用于启动、检查和交互操作终端会话的工具。服务会在工具调用之间保持活动的伪终端会话。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
tui-mcp
对于浏览器, Chrome DevTools MCP 是什么;对于终端,tui-mcp 就是什么。
在受管理的 pty 中启动任意终端应用,截取屏幕截图、读取文本、发送按键。应用会认为自己运行在真实终端中。适用于任何 TUI 框架,也适用于完全不使用框架的应用——vim、htop、bubbletea、textual、ink、inquirer、trend、ncurses 等等。
这与 bash 工具有何不同?
bash 工具运行的是离散命令——每次调用都是即发即弃。进程退出,输出返回。tui-mcp 会维护一个持久的交互式会话。pty 会在各次调用之间保持运行。这在以下情况中很重要:
- 工具有状态——你在
mysqlshell 中,已经执行了USE选择数据库,或正在事务中。bash 工具无法在各次调用之间保持该会话打开。 - 工具有界面——htop、vim、k9s、lazygit。由于这些应用会用 ANSI 转义码绘制全屏界面,bash 工具只能返回一堆乱码。tui-mcp 通过 xterm 仿真将其渲染为易读的屏幕截图或文本快照。
- 交互需要多个步骤——SSH 先提示输入密码,再提示输入 2FA 代码,然后你才能登录。交互式安装程序会询问问题。
git rebase -i会打开编辑器。这些都是无状态 bash 工具无法处理的对话式流程。 - 你需要监视某些内容——跟踪日志、监视构建、等待部署完成。会话会保持打开,Agent 可以随时截取快照以检查进度。
- 工具需要 TTY——有些 CLI 在没有真实终端时行为会不同(或拒绝运行)。node-pty 会为它们提供带有
xterm-256color的真实 pty,因此一切都能按预期运行。
bash 工具就是 exec()。tui-mcp 则是“坐到终端前,像人一样使用它”。一个运行命令,另一个操作软件。
以下是 screenshot 工具的一些示例输出:

设置
claude mcp add --scope user tui-mcp -- npx tui-mcp
工具
| 工具 | 描述 |
|---|---|
| launch | 在受管理的 pty 中启动 TUI 应用 |
| kill | 终止会话 |
| list_sessions | 列出会话,包括最近退出的会话 |
| status | 获取某个会话的状态和退出代码 |
| resize | 调整终端大小 |
| screenshot | 将终端截取为 PNG |
| snapshot | 将终端截取为纯文本 |
| scrollback | 读取缓冲区,包括已滚出屏幕的历史内容 |
| output | 读取原始 pty 字节流(包括转义序列) |
| read_region | 读取缓冲区的矩形区域 |
| cursor | 获取光标位置 |
| send_keys | 发送按键或组合键(Enter、Ctrl+C、Ctrl+Up、q) |
| send_text | 输入字符串 |
| send_mouse | 发送鼠标事件 |
| wait_for_text | 等待正则表达式匹配内容出现 |
| wait_for_idle | 等待终端停止变化 |
| wait_for_exit | 等待进程退出并获取其退出代码 |
有趣的用例
- 远程运维:Agent 通过 SSH 登录生产服务器,持续查看日志、搜索错误、重启服务,并观察服务恢复。它读取的终端输出与人工 SRE 看到的相同,无需自定义 API。
- 与旧系统交互:ncurses 管理面板、mysql cli、redis-cli、psql——Agent 都能操作。这些系统永远不会提供 REST API。
- 多会话编排:Agent 同时启动 3–4 个会话。一个运行开发服务器,一个运行测试,一个持续查看日志,一个在调试器中运行。这基本上就像结对编程,只不过多了一双手。
- 交互式调试器:gdb、lldb、pdb、node --inspect。Agent 可以设置断点、单步执行代码、检查变量。
- 以对话方式管理基础设施:kubectl、terraform、docker、aws cli。Agent 无需使用 Kubernetes MCP 服务或 AWS MCP 服务,只需像人一样直接使用命令行工具。
大多数 MCP 服务都封装了某个特定工具或 API。tui-mcp 封装的是终端本身——所有工具都已支持的通用界面。它就是 MCP 的 eval()。
监控
在终端中查看并控制所有活动会话:
npx tui-mcp monitor
左侧是会话列表,右侧是实时 ANSI 渲染的终端预览。监控器会发现此计算机上所有正在运行的 tui-mcp 服务,并汇总它们的会话。
按键:
- 使用
j/k或方向键浏览服务及其会话,使用g/G跳到顶部/底部,也可以用鼠标点击和滚动 - 在会话上按
enter可连接——你输入的所有内容都会传递给其 pty,按ctrl+\可断开连接 - 在服务上按
enter可打开以该服务为目标的启动面板 - 按
s可将会话的完整回滚缓冲区加载到可滚动视图中,按esc返回实时视图 - 按
l可在当前选中行对应的服务上启动新会话(按ctrl+s可循环切换目标) - 在 3 秒内按两次
x可终止选中的会话 - 按
q退出
连接、启动、终止和查看回滚缓冲区需要服务版本为 1.2 或更高;较旧服务上的会话会标记为 ro(只读),仍可查看。
工作原理
your app <--> node-pty <--> xterm-headless <--> MCP tools
(pty) (terminal emulator) (screenshot, send_keys, etc.)
此应用通过 node-pty 在真实的伪终端中运行。其输出由 xterm-headless 解析(它与驱动 VS Code 终端的终端模拟器相同,但没有 DOM)。MCP 工具会读取并操作解析后的缓冲区。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。