cmuxlayer
cmuxLayer
你的 AI 代理无法看到彼此的终端。 一个在标签页 1 运行,另一个在标签页 2 运行——而你成了它们之间的剪贴板。cmuxLayer 解决了这个问题:它提供了 22 个 MCP 工具,让 AI 代理能够以编程方式控制终端工作区。
快速开始
npm install -g cmuxlayer需要运行 cmux。
添加到你的 MCP 配置中(Claude Code、Cursor、VS Code、Claude Desktop):
{
"mcpServers": {
"cmux": {
"command": "cmuxlayer"
}
}
}配置位置: Claude Code
.mcp.json或claude mcp add cmuxlayer -s user -- cmuxlayer| Cursor.cursor/mcp.json| VS Code.vscode/mcp.json| Claude Desktop — 请参阅 MCP 文档 获取特定平台的路径
你可以做什么
告诉你的 AI 代理执行如下操作:
“向右拆分一个窗格并在那里运行我的测试套件”
“在新的窗格中启动一个 Claude Code 代理来重构 auth.ts”
“读取 surface:2 的屏幕并告诉我构建是否通过”
“等待所有代理完成,然后读取它们的输出”
“设置侧边栏状态以显示我们的部署进度”
在底层,cmuxLayer 暴露了 22 个用于终端控制、屏幕读取和多代理编排的 MCP 工具。read_screen 可以解析 Claude Code、Codex、Gemini、Cursor 和 Kiro 的代理元数据(状态、模型、令牌、上下文百分比)。
MCP 工具 (22)
所有工具都附带 ToolAnnotations,用于自动执行安全策略。
终端控制 — new_split send_input send_key read_screen rename_tab close_surface browser_surface
代理生命周期 — spawn_agent send_to_agent wait_for wait_for_all interact stop_agent kill
工作区 — list_surfaces list_agents my_agents get_agent_state read_agent_output notify set_status set_progress
只读 (6)
工具 | 功能 |
| 列出所有工作区中的所有界面 |
| 读取带有已解析代理状态的终端输出 |
| 获取被跟踪代理的完整状态 |
| 所有代理,支持可选过滤器 |
| 父代理的子代理,带有实时屏幕状态 |
| 分隔符标记之间的结构化输出 |
可变 (13)
工具 | 功能 |
| 创建终端或浏览器拆分窗格 |
| 向界面发送文本 |
| 发送按键(回车、转义、ctrl-c 等) |
| 重命名界面标签页 |
| 显示 cmux 通知横幅 |
| 设置侧边栏状态键值对 |
| 设置进度指示器 (0.0-1.0) |
| 与浏览器界面交互 |
| 在新窗格中启动 CLI 代理 |
| 向正在运行的代理发送提示 |
| 阻塞直到代理达到目标状态 |
| 阻塞直到多个代理完成 |
| 发送交互式输入(确认、取消、恢复) |
破坏性 (3)
工具 | 功能 |
| 关闭终端或浏览器窗格 |
| 优雅地停止代理 |
| 强制终止代理进程 |
支持的代理
CLI | 命令 | 自动检测 |
Claude Code |
| 状态、模型、令牌、上下文 % |
Codex |
| 状态、模型 |
Gemini CLI |
| 状态、模型 |
Cursor |
| 状态 |
Kiro |
| 状态 |
read_screen 会自动检测代理类型并从终端输出中解析元数据。
架构
AI Agent ─── MCP ───> cmuxLayer ─── Unix socket ───> cmux
├── Agent engine (spawn → monitor → teardown)
├── Screen parser (5 agent formats)
├── Mode policy (autonomous vs manual)
└── State manager + event log套接字客户端通过 Unix 套接字连接到 cmux。断开连接时会自动重连,如果套接字不可用,则回退到 CLI 子进程。
连接 | 延迟 | 加速比 |
CLI 子进程 | ~142ms | 基准 |
Unix 套接字 | ~0.1ms | 1,423x |
故障排除
cmux 未运行 cmuxLayer 需要一个正在运行的 cmux 实例。请先安装它,并在使用 cmuxLayer 之前启动一个 cmux 会话。
工具未在 Claude Code 中显示
添加 MCP 配置后重启 Claude Code。运行 claude mcp list 以验证 cmuxlayer 是否已连接。
套接字连接失败
cmuxLayer 会自动发现 cmux 套接字(macOS: ~/Library/Application Support/cmux/cmux.sock)。如果需要,可以使用 CMUX_SOCKET_PATH 进行覆盖。
测试
npm test # 335 tests via vitest
npm run typecheck # Type checking开发
npm install
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm start # Run compiled output贡献
请参阅 CONTRIBUTING.md 获取开发设置和 PR 指南。
许可证
Apache 2.0 — 请参阅 LICENSE。
Golems AI 代理生态系统的一部分。cmuxlayer.etanheyman.com | 由 @EtanHey 构建。
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/EtanHey/cmuxlayer'
If you have feedback or need assistance with the MCP directory API, please join our Discord server