hyperpanes-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| HYPERPANES_BIN | No | Path to the hyperpanes executable (for launch_workspace). | |
| HYPERPANES_PANE_ID | No | The pane this bridge runs inside. | |
| HYPERPANES_USER_DATA | No | Override just the userData dir; <dir>/control.json is used. | |
| HYPERPANES_ALLOW_INPUT | No | Set to '1' or 'true' to permit send_input on this bridge (off by default). | |
| HYPERPANES_LAUNCH_ARGS | No | Whitespace-separated leading args for the launcher (e.g. a dev runner). | |
| HYPERPANES_CONTROL_FILE | No | Override the path to the app's control.json. | |
| HYPERPANES_CONTROL_PORT | No | Port for a child pane control. | |
| HYPERPANES_CONTROL_TOKEN | No | A scoped control token for a child pane. | |
| HYPERPANES_INPUT_ALLOWLIST | No | Comma-separated pane ids or labels allowed to receive input. |
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
} |
| resources | {
"subscribe": true,
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_layoutsA | List the tab layouts hyperpanes supports (auto, single, columns, rows, grid, main-stack) with descriptions. Use these ids for a group/tab |
| validate_workspaceA | Validate a workspace spec against the hyperpanes schema without launching anything. Returns { valid, errors?, summary } where summary counts windows/tabs/panes. Accepts the nested windows[]->groups[]->panes[] shape or the legacy single-window panes[]/groups[] shape. |
| build_workspaceA | Validate a workspace spec and return canonical workspace JSON. Optionally write it to |
| launch_workspaceA | Launch hyperpanes with a workspace. Provide either |
| control_statusA | Check whether the hyperpanes control API is reachable and whether input is allowed. Reports the app pid/version, the bridge-side send_input gate, and the control.json path. Call this first if other control tools fail. |
| list_panesA | List all panes across all windows/tabs of the running hyperpanes instance, with status, activity (busy/idle/exited liveness heuristic), any org metadata (role/parent/agentType/task), tab/window context, and the resource URI for streaming each pane's output. |
| read_paneA | Read a pane's terminal output. |
| open_paneA | Open a new pane in the active tab of a window (defaults to the first window). Returns the new paneId. |
| spawn_workersA | Spawn a pool of queue workers in one call (#6). Opens pane(s) running the native |
| open_tabA | Attach one or more new tabs to an existing window (defaults to the first window), each with fresh shells — the programmatic equivalent of |
| list_projectsA | List the projects (remembered directories) the running hyperpanes instance tracks — its sidebar rail — newest-opened first. Each has an id, absolute path, name, frame color, and lastOpenedAt. Use an id (or name) with rename_project/recolor_project/remove_project, or as open_pane's |
| add_projectA | Remember a directory as a project (the programmatic equivalent of the sidebar PROJECTS + button). The path must exist and be a directory; a git repo is NOT required. Adding an already-known directory is a no-op — returns added:false with the existing entry. Returns the project (id/path/name/color). |
| rename_projectA | Rename a remembered project by id (find ids with list_projects). The new name shows in the sidebar rail. |
| recolor_projectA | Set a remembered project's frame/dot color by id (find ids with list_projects). Pass a hex color like "#a855f7"; the app retints open panes inside that project too. |
| remove_projectA | Forget a remembered project by id (find ids with list_projects). Removes it from the sidebar rail; does NOT delete the directory on disk. |
| set_metaA | Attach or update free-form metadata on a pane (merged: a string value sets/overwrites a key, an explicit null DELETES that key, untouched keys are kept). Reserved keys role/parent/agentType/task describe an agent org; the rest is open. Returns the TRUE merged metadata read back from the app (not your raw input). This is how an orchestrator records the org chart as data. |
| set_layoutA | Set the tiling layout of a tab. |
| focus_paneC | Focus a pane (and its tab/window). |
| close_paneB | Close a pane, terminating its shell. |
| restart_paneA | Kill and respawn a pane's shell. With resume:true, the pane's live Claude conversation (per its session marker) is resumed in its own cwd after the respawn — an agent may target its OWN pane to restart itself. |
| queue_promptA | Durably queue a message for a Claude conversation (by session id). It is typed into the owning pane the next time that session is ready — including after a pane restart, an app relaunch, or a reboot. Deliver-once; survives every process involved. |
| restart_appA | Restart the hyperpanes app itself (root token only). scope:"gui" relaunches the GUI — panes and their processes survive via the session daemon and re-attach. scope:"full" is the phoenix: a final workspace snapshot is flushed, GUI AND daemon exit (every pane dies), and the relaunched app restores the workspace, auto-resuming every pane's Claude conversation in its own cwd. Optional sessionId+prompt pre-queues a speak-first message for one resurrected conversation (e.g. the caller's own — self-restart across the apocalypse). |
| rename_paneA | Change a pane's label (title) and, optionally, its subtitle — applied live to the pane header. Pass subtitle:"" to clear it; omit subtitle to leave it unchanged. |
| recolor_paneA | Change a pane's frame color, applied live. Accepts any CSS color string (e.g. "#e5484d"). |
| send_inputA | Type text into a live shell. With |
| send_keysA | Send a sequence of named keys to a live pane as the right terminal bytes: enter, escape, tab, shift+tab, up/down/left/right, home/end, pageup/pagedown, backspace, delete, space, and ctrl+ (e.g. ctrl+c). For menus, y/n and trust prompts, and cancelling — things a text string can't express. Same triple gate as send_input (it IS input): app toggle + HYPERPANES_ALLOW_INPUT=1 + confirm=true. |
| prompt_paneA | Drive one full turn of a TUI agent (e.g. a live |
| set_talkA | Turn per-pane talk on/off: while enabled, the pane speaks NEW Claude assistant replies aloud via local TTS. Off by default. Returns the resolved talk state and TTS backend (plus a warning if the backend has a problem, e.g. missing binary). |
| set_speechA | Set global speech (TTS) settings: |
| stop_speechA | Immediately kill any in-flight speech utterance and clear the speech backlog (global one-shot). |
| whoamiA | Identify the pane this MCP bridge is running inside (from HYPERPANES_PANE_ID) and report its org metadata (role/parent/agentType/task) + window/tab context. The recursion enabler: a manager-agent-in-a-pane calls this to learn who it is before driving its sub-workers. Optionally pass paneId to describe a specific pane instead. |
| read_messagesA | Read a pane's durable message inbox (agent-orchestration E). |
| send_messageA | Enqueue a structured message to a pane's durable inbox (agent-orchestration E). Delivered at-least-once; the target reads it via read_messages or its messages resource. |
| send_to_parentA | Message this pane's org parent — resolved from its meta.parent (agent-orchestration E). Requires HYPERPANES_PANE_ID (this bridge runs inside a pane), or pass |
| broadcast_subtreeA | Send a message to every pane in an org subtree — all panes whose meta.parent chain leads back to |
| mint_tokenA | Mint a subtree-scoped control token (agent-orchestration F). The new token can only reach the named windows/tabs/panes, and only within the minting token's own authority (no escalation). Hand it to a child via open_pane env: { HYPERPANES_CONTROL_TOKEN: token, HYPERPANES_CONTROL_PORT: port } — the child then controls only its subtree and never sees the master token. Optional ttlMs expires it. |
| lock_paneA | Take an advisory write lock on a pane (agent-orchestration H) so only this owner can send_input until it expires or is released. Advisory: an unlocked pane is writable by anyone. Renew by acquiring again as the same owner. Pass the same |
| unlock_paneB | Release an advisory write lock you hold on a pane (agent-orchestration H). |
| list_queuesA | List every work queue and its depth (pending/claimed/etc. counts). Scope-filtered to the token. The work queue is the durable job queue behind the control server; use it to fan work out to competing workers. |
| enqueue_taskA | Append a task to a work queue (created on first use). |
| claim_taskA | Claim the next task(s) off a queue for |
| ack_taskA | Mark a claimed task done. Must carry the |
| nack_taskA | Report a claimed task as failed. By default it is re-queued until maxAttempts is exhausted (then it lands in |
| extend_taskA | Heartbeat a long-running task: extend its lease by |
| get_taskA | Fetch one task by id (state, payload, attempts, lease, timestamps). Returns task:null if it does not exist. |
| list_tasksA | List/inspect tasks in a queue. Optional |
| purge_queueA | Drop TERMINAL tasks (done/failed/dead) from a queue for retention/cleanup. In-flight (queued/claimed) tasks are kept. Returns how many were removed. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/Eyalm321/hyperpanes-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server