tmuxer
](https://www.npmjs.com/package/tmuxer) ](https://www.npmjs.com/package/tmuxer)
MCP服务器,用于通过tmux会话管理后台作业,您可以在其中 实时查看法学硕士的工作。
为什么选择tmuxer?
当LLM客户端运行命令时,您通常需要一些交互才能看到完整的命令,并且输出通常会延迟或截断。tmuxer为您提供:
- 观看工作直播 -附加以在LLM工作时实时查看命令输出
- 浏览所有职位 -窗口选择器允许您在运行的进程之间切换
- 全面的终端支持 -工具如
npm,docker,以及htop正确渲染 - 交互式输入 -向正在运行的作业发送按键(例如,按Ctrl+C停止或响应提示)
- 自动清理 -默认情况下,当进程退出或设置为
keepAlive持续到mcp寿命结束
安装
npm install tmuxer用法
添加到MCP配置中:
{
"mcpServers": {
"tmuxer": {
"command": "npx",
"args": ["tmuxer@latest"]
}
}
}跑 npx tmuxer --help 查看可用的CLI标志。
MCP工具
| 工具 | 说明 |
|---|---|
createJob | 在后台tmux窗口中启动命令。集 keepAlive: true 在进程退出后继续 |
listJobs | 列出所有状态为(正在运行、pid、exitCode)的作业 |
getJobOutput | 获取终端输出(支持 lastLines 仅适用于最近的输出) |
sendInput | 向作业发送按键或文本(使用 {C-c} 对于Ctrl+C, {Up} 对于向上箭头, {Enter} 进入等) |
cleanupJobs | 删除死作业窗口(跳过正在运行的作业) |
工作流程示例
1. createJob({ command: "npm run dev", prefix: "dev", keepAlive: true }) // returns jobId: "dev1"
2. listJobs({}) // check status, pid, running state
3. getJobOutput({ jobId: "dev1", lastLines: 20 }) // see recent logs
4. sendInput({ jobId: "dev1", input: "{C-c}" }) // stop the server程序化使用
您可以在MCP会话中以编程方式运行进程:
import { createJob } from 'tmuxer';
const { jobId } = await createJob({ command: 'npm run dev' });旁观
在终端中运行此命令,将正在运行的作业列表附加到tmuxer会话:
tmux attach ';' choose-tree您可以使用向上/向下箭头键浏览正在运行的作业,并在预览窗格中查看其实时输出。按 Enter 选择一个作业并全屏查看。
Ctrl+b然后d与tmux断开连接Ctrl+b然后w返回选择器视图。
如果您看到“无会话”,则表示MCP服务器尚未连接。
如果您不熟悉tmux,那么复习一下基本的tmux命令可能会有所帮助。
演示
Observing memory changes in a node process
Claude controlling Claude interactively
Onboarding and demoing a new app
嵌套tmux支持
生成自己的tmux会话的命令可以无缝工作——tmuxer会取消设置 TMUX 环境变量,以便嵌套会话正常工作。
用例
- 开发服务器 -开始
npm run dev并在不阻塞的情况下检查日志 - 建筑 -快跑
npm run build并投票完成 - 测试 -运行测试套件并在完成后检索结果
- 交互式工具 -处理需要输入的工具(设置向导,如
npm init,create-vite,git rebase -i等等) - 监控 -检查具有复杂终端UI(docker、htop等)的进程
发展
npm test # run tests
npm run build # compile typescript许可证
麻省理工学院
