cmuxlayer
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| CMUXLAYER_ENABLE_CLAUDE_CHANNELS | No | Set to '1' to enable Claude channels preview. This advertises experimental['claude/channel'] and emits notifications for agent lifecycles. |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_surfacesA | List workspace, pane, and surface topology. Condensed by default; verbose=true adds raw cmux fields. |
| control_healthA | Report terse control-path health by default; pass detail=full for diagnostics. |
| read_screenA | Read a terminal screen and parsed harness status. Use raw=true for full text or parsed_only=true for monitoring. |
| update_surfaceC | Move or rename one terminal surface. |
| close_surfaceA | Close one surface, managed agent, or workspace with live-agent guards. scope="agent" stops the agent AND closes its pane, and reports the two halves separately (agent_stopped, surface_closed) so a pane that survives is never reported as closed. The pane close obeys the same live-agent guard as scope="surface": without force:true a still-live agent keeps its pane, and the receipt says so. |
| report_to_parentA | Raise a short blocker to this managed agent's registry parent. cmuxlayer chooses the parent; callers cannot address arbitrary agents. The blocker is durably appended to the parent's inbox and its pointer is actively delivered. If that wake fails, cmuxlayer alerts the nearest reachable ancestor and returns fallback provenance. A root agent has no parent and receives an error. Workers with collab_path must append there to reach their own parent lead; this tool refuses that upward route. |
| spawn_agentA | Spawn a managed agent or terminal, or resume a captured agent on a fresh surface while preserving its ID. Placement is deterministic; boot_prompt_timeout_ms also bounds pane placement. Boot prompts return evidence-backed receipts. Successful receipts are lean by default; verbose=true restores full transport and diagnostic detail. Failures always keep full detail. |
| wait_forA | Block until one agent_id or every agent in ids reaches a target registry state and return health. Defaults to waiting for completion ( |
| list_agentsA | List live-derived agents, including registry-persisted prompt blockage and pause state; filter to blocked agents or children with mine/parent_agent_id. Default summary returns flat addressable scalars and hides close tombstones and failed spawns whose surfaces are absent; request a terminal state or detail=full to include them. Full detail also includes provenance, health diagnostics, the registry record, and up to 20 unresolved or attention delivery receipts. |
| send_toA | Send text or a key through the shared delivery engine. Never send a Return yourself for a message; send_to submits messages. Key-Return is for pickers, menus, and permission prompts. Every receipt includes caller_agent_id (null when unknown). Workers with collab_path cannot address their own parent or ancestor leads in any mode; append to that collab file instead. Unknown callers remain allowed. Lead-originated and engine-internal pushes remain allowed. Targets may be one agent, structured agent targeting, or a raw surface in surface/command/key mode. A clean verified success returns up to six mode-specific core fields by default: text/command mode returns ok, retry_count, target identity, delivery_state, submitted, and delivery_id when available; key mode returns ok, retry_count, surface, key, submit_verified, and submit_verification_reason. A degraded transport, queued-behind-turn landing, or deduplicated send adds its warning or status field. Pass verbose=true for the full legacy receipt; non-success keeps full diagnostics automatically. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 10 tools
Each tool targets a distinct resource and action: health check, spawn, wait, list agents, send, list surfaces, read screen, update surface, close surface, report to parent. No two tools appear to do the same thing; overlaps are minimal and descriptions clarify boundaries.
Most names follow verb_noun snake_case (spawn_agent, list_agents, etc.), but wait_for and send_to use verb_preposition without an explicit noun, and report_to_parent adds a prepositional phrase. This is a minor deviation and still readable.
10 tools is well-scoped for a multiplexer/agent-management server; each tool has a clear role and there are no redundant or thin entries.
Core lifecycle is covered: spawn, list, send, wait, read, update, close, health, report. Minor gaps exist, e.g., no dedicated pause/resume agent tool (though spawn_agent can resume and list_agents surfaces pause state), so agents can mostly work around them.