克劳德码MCP-tmux桥
一个MCP服务器,将Claude Desktop连接到在tmux终端中运行的交互式Claude Code会话。它不是为每个提示符生成一个一次性进程,而是与一个持久的、可见的会话进行通信——这样你就可以在Desktop编排任务的同时实时观看Claude的工作。
运作原理
Claude Desktop → claude_code MCP tool → tmux session → Claude Code (interactive)
(this repo)- 克劳德桌面版 保存您的项目上下文、设计决策和任务历史。它会生成提示,并知道接下来需要做什么。
- 克劳德代码 在您可以观看的tmux终端中交互式运行。它可以访问您配置的所有MCP工具,并保留通话之间的完整对话历史。
- 此服务器 是它们之间的管道——它将Desktop的提示传递给Code的会话,并将响应带回。
需求
- macOS
- Node.js v20或更高版本
- 终端复用器 —
brew install tmux - 克劳德代码CLI--
npm install -g @anthropic-ai/claude-code
设置
1.安装此服务器
git clone https://github.com/DaRealDaHoodie/claude-tmux-bridge.git
cd claude-tmux-bridge
npm install
npm run build2.配置克劳德桌面
将此服务器添加到您的Claude Desktop MCP配置中(~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"claude-tmux-bridge": {
"command": "node",
"args": ["/path/to/claude-tmux-bridge/dist/server.js"]
}
}
}保存后重新启动Claude Desktop。
使用工具
配置后,Claude Desktop可以访问 claude_code 工具。发送提示时,告诉Desktop:
- 该怎么办 --Claude Code的任务或问题
- 哪个项目 --通行证
workFolder作为项目目录的绝对路径
桌面示例说明:
将claude_code工具与workFolder一起使用 /Users/you/my-project 并要求Claude Code实现我们刚才设计的功能。其他一切都是自动的——tmux会话和Claude Code实例是在第一次使用时创建的。
会话命名
tmux会话名称来源于项目文件夹的基名称:
| 工作文件夹 | 会话名称 |
|---|---|
/Users/you/my-project | claude-my-project |
/Users/you/other-project | claude-other-project |
| *(未提供)* | claude-code |
看着克劳德工作
会话在后台自动运行。附上任何时间观看:
tmux attach -t claude-my-project
# Detach with Ctrl+B D工具参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
prompt | string | yes | 发送给Claude Code的提示 |
workFolder | string | no | 项目的绝对路径--决定会话 |
timeout | number | no | 等待响应的最长秒数(默认值:300) |
行为
- 会话未找到 --自动创建植根于以下位置的tmux会话
workFolder - Claude代码未运行 --自动发射
claude在会话中,等待长达30秒才能准备就绪 - 会话繁忙 --以“仍忙”消息拒绝;不排队
- 超时 --通过检查Claude是否已结束通话,在下次通话时自动恢复
- 对话历史 --通话之间完全保留(同一交互会话)
环境变量
| 变量 | 默认值 | 描述 |
|---|---|---|
MCP_CLAUDE_DEBUG | false | 设置为 true 用于详细的调试日志记录 |
MCP_STARTUP_DELAY_MS | 1000 | 发送提示后等待轮询开始 |
MCP_POLL_INTERVAL_MS | 1500 | 多久轮询一次窗格以查看输出更改 |
MCP_STABLE_THRESHOLD_MS | 3000 | 回退:在宣布完成之前没有变化 |
MCP_CLAUDE_READY_TIMEOUT | 30000 | 等待Claude Code启动的最大毫秒数 |
多个项目
每个项目都有自己的命名tmux会话。您可以同时打开多个会话——只需传递正确的 workFolder 桌面将以正确的为目标。
许可证
麻省理工学院
