cmuxLayer
您的AI代理无法看到彼此的终端。 一个在选项卡1中运行,另一个在标签2中运行——你就是它们之间的剪贴板。cmuxLayer修复了26个MCP工具,这些工具为AI代理提供了对终端工作区的编程控制。
   
快速开始
npm install -g cmuxlayer需要 cmux 跑步。
添加到MCP配置中:
Codex CLI/T3代码
T3代码从Codex CLI配置文件继承MCP服务器 ~/.codex/config.toml (或 $CODEX_HOME/config.toml).
[mcp_servers.cmux]
command = "cmuxlayer"克劳德代码,光标,VS代码,克劳德桌面
{
"mcpServers": {
"cmux": {
"command": "cmuxlayer"
}
}
}配置位置: Codex CLI/T3代码~/.codex/config.toml(或$CODEX_HOME/config.toml)|克劳德代码.mcp.json或claude mcp add cmuxlayer -s user -- cmuxlayer|光标.cursor/mcp.json|VS代码.vscode/mcp.json|克劳德桌面——请参阅 MCP文件 针对特定平台的路径
你能做什么
告诉你的AI代理一些事情,比如:
- *“将窗格拆分到右侧,并在那里运行我的测试套件”*
- *“在新窗格中生成Claude Code代理以重构auth.ts”*
- *“阅读surface:2的屏幕,并告诉我构建是否通过”*
- *等待所有代理完成,然后读取其输出*
- *“设置侧边栏状态以显示我们的部署进度”*
在幕后,cmuxLayer公开了26个MCP工具,用于终端控制、屏幕读取、布局管理和多代理编排。 read_screen 解析Claude Code、Codex、Gemini和Cursor的代理元数据(状态、模型、令牌、上下文%)。
MCP工具(26)
所有工具均随附 工具注释 用于自动执行安全策略。
终端控制 — new_split new_surface move_surface reorder_surface send_input send_key read_screen rename_tab close_surface browser_surface
代理生命周期 — spawn_agent send_to 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
Full tool reference (26 tools)
只读(6)
| 工具 | 它做什么 |
|---|---|
list_surfaces | 列出工作空间中的所有曲面 |
read_screen | 读取具有已解析代理状态的终端输出 |
get_agent_state | 被跟踪代理的完整状态 |
list_agents | 所有代理,带可选过滤器 |
my_agents | 具有实时屏幕状态的家长代理的子女 |
read_agent_output | 分隔符标记之间的结构化输出 |
突变(17)
| 工具 | 它做什么 |
|---|---|
new_split | 创建终端或浏览器拆分窗格 |
new_surface | 在现有窗格中创建选项卡 |
move_surface | 将曲面移动到另一个窗格或位置 |
reorder_surface | 在窗格中重新排序选项卡 |
send_input | 将文本发送到曲面 |
send_key | 按下发送键(返回、退出、ctrl-c等) |
rename_tab | 重命名曲面选项卡 |
notify | 显示cmux通知横幅 |
set_status | 设置侧边栏状态键值对 |
set_progress | 设置进度指示器(0.0-1.0) |
browser_surface | 与浏览器界面交互 |
spawn_agent | 在新窗格中生成CLI代理 |
send_to | 在不知道其表面的情况下向被跟踪的代理发送文本 |
send_to_agent | 向正在运行的代理发送提示 |
wait_for | 阻塞,直到代理达到目标状态(默认为 done) |
wait_for_all | 阻止,直到多个代理完成 |
interact | 发送交互式输入(确认、取消、恢复) |
破坏性(3)
| 工具 | 它做什么 |
|---|---|
close_surface | 关闭终端或浏览器窗格 |
stop_agent | 礼貌地阻止一名特工 |
kill | 强制终止代理进程 |
支持的代理
| CLI | 命令 | 自动检测 |
|---|---|---|
| 克劳德代码 | claude | 状态、模型、令牌、上下文% |
| 食品法典委员会 | codex | 状态、模型、上下文% |
| Gemini CLI | gemini | 状态、模型、令牌、上下文% |
| 光标 | cursor agent | 状态、模型、令牌、上下文% |
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 | 1423倍 |
故障排除
cmux未运行 cmuxLayer需要运行 cmux 例子首先安装它,然后在使用cmuxLayer之前启动cmux会话。
Codex CLI或T3代码中未出现工具 添加后重新启动客户端 cmuxlayer 到 ~/.codex/config.toml。如果您使用自定义Codex主页,请验证 $CODEX_HOME/config.toml 包含相同内容 mcp_servers.cmux 进入。
工具未出现在Claude代码中 添加MCP配置后重新启动Claude Code。跑 claude mcp list 验证cmuxlayer是否已连接。
套接字连接失败 cmuxLayer自动发现cmux套接字(macOS: ~/Library/Application Support/cmux/cmux.sock).覆盖 CMUX_SOCKET_PATH 如果需要的话。
测试
bun run test # 406 tests via vitest
npm run typecheck # Type checkingGit挂钩
启用项目挂钩以自动运行回归门 git push:
git config core.hooksPath .githooks这使得 .githooks/pre-push,运行 scripts/run_tests.sh 块推动回归失败。
发展
npm install
npm run dev # Run with tsx (hot reload)
npm run build # Compile TypeScript
npm start # Run compiled output贡献
看 贡献.md 用于开发设置和公关指南。
许可证
Apache 2.0——请参阅 许可证.
______________________________________________________________________
