
cmuxlayer
by EtanHey
cmuxLayer
Your AI agents can't see each other's terminals. One runs in tab 1, another in tab 2 — and you're the clipboard between them. cmuxLayer fixes that: 35 MCP tools that give AI agents programmatic control over terminal workspaces.
<p align="center"> <img src="./assets/cmuxlayer-logo-split-pane-grid.svg" alt="cmuxLayer" width="96" height="96" /> </p>Quick Start
brew install etanhey/layers/cmuxlayer # stable, pinned release
brew install --HEAD etanhey/layers/cmuxlayer # or: dogfood the latest main
This installs the cmuxlayer command (plus cmuxlayer-app-server /
cmuxlayer-proxy). Requires cmux to be
running. For how the golem fleet wires, versions, and dogfoods it — and the
CMUX_SOCKET_PATH instance pin — see
docs/releases-and-brew.md.
Optional fleet sidebar
The lane-grouped fleet view is opt-in. Install its fallback file with:
bun run install:fleet-sidebar
cmuxLayer then refreshes ~/.config/cmux/sidebars/fleet.swift from its
reconciled live-agent snapshot. It does not change cmux settings or replace the
stock sidebar. To activate it, right-click the sidebar toggle and choose
fleet; choose the stock entry there whenever you want the fallback UI.
Development and screenshot QA use a separate picker entry and never publish to
the live fleet.swift path:
bun run install:fleet-sidebar:dev
bun run dev
Those commands publish only
~/.config/cmux/sidebars/fleet-dev.swift; choose fleet-dev in cmux while
testing. Runtime tests must inject a temporary publisher outputPath.
Add to your MCP config:
Codex CLI / T3 Code
T3 Code inherits MCP servers from the Codex CLI config file at ~/.codex/config.toml (or $CODEX_HOME/config.toml).
[mcp_servers.cmuxlayer]
command = "cmuxlayer"
Claude Code, Cursor, VS Code, Claude Desktop
{
"mcpServers": {
"cmuxlayer": {
"command": "cmuxlayer"
}
}
}
To keep only a per-session resident subset of tools, set
CMUXLAYER_DEFAULT_PALETTE to comma-separated bare tool names, for example
list_surfaces,spawn_agent,send_to. The server also exposes expand_palette,
which makes every deferred tool available for the rest of that MCP session.
When unset or blank, the signed 12-tool thin-core default applies. When set, the
environment value overrides that default for the session. Unknown names are
warned and ignored while valid names still load.
Config locations: Codex CLI / T3 Code
~/.codex/config.toml(or$CODEX_HOME/config.toml) | Claude Code.mcp.jsonorclaude mcp add cmuxlayer -s user -- cmuxlayer| Cursor.cursor/mcp.json| VS Code.vscode/mcp.json| Claude Desktop — see MCP docs for platform-specific paths
What You Can Do
Tell your AI agent things like:
- "Split a pane to the right and run my test suite there"
- "Spawn a Claude Code agent in a new pane to refactor auth.ts"
- "Read the screen of surface:2 and tell me if the build passed"
- "Wait for all agents to finish, then read their output"
- "Set the sidebar status to show our deploy progress"
Under the hood, cmuxLayer keeps 42 MCP tools callable for terminal control, screen reading, layout management, and multi-agent orchestration. The default palette is intentionally limited to 12; the remaining tools are loaded through ToolSearch. reorder_surface is the single approved deletion. read_screen parses agent metadata (status, model, tokens, context %
Related servers

n8n
Updated todayby n8n-io
Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

mcp-server-fetch
OfficialUpdated todayA Model Context Protocol server providing tools to fetch and convert web content for usage by LLMs

@modelcontextprotocol/server-filesystem
OfficialUpdated todayMCP server for filesystem access