split_window
-
Split a window and start the configured process with no command payload. Start a pane’s configured process; accepts no command payload.
- MCP request method
tools/callSendsplit_windowas the tool name, with the arguments below.
Arguments#
-
direction? (SplitDirectionSchema | null) #Where the new pane goes relative to
pane. Defaults tobelow. -
The
%-prefixed pane to split. -
The new pane’s share of the split, 1 to 100. Defaults to half.
- minimum
0
-
start_directory? (string | null) #The new pane’s working directory. Omit for the directory this MCP server started in, not
pane’s current directory.
No other arguments are accepted.
Result#
Returns object
-
Whether this is the window’s active pane.
-
Whether this is the pane the MCP server itself runs in.
selfonly on a confirmed match of both socket and pane id;otherfor every pane that is not, including one this crate cannot prove either way;unknownwhen the server is not running inside tmux, so the question has no answer. -
The command currently running.
-
The
%-prefixed tmux identity. -
The pane’s working directory.
-
The window that contains the pane.
Types#
Argument types
-
SplitDirectionSchema: "above" | "below" | "left" | "right"type ¶
Result types
-
Relation: "unknown" | "self" | "other"type ¶ How a pane relates to the process answering the request.
Three values rather than a boolean, because “not the caller’s pane” and “there is no caller” are different answers and an agent acts differently on each.
Matches exactly one variant.
Annotations#
destructiveHintfalseidempotentHintfalseopenWorldHinttruereadOnlyHintfalsetitle"Split Window"
Protocol data#
Use the complete advertised contract for validation and client integration.
Input schema
{"$defs": {"SplitDirectionSchema": {"enum": ["above","below","left","right"],"type": "string"}},"$schema": "https://json-schema.org/draft/2020-12/schema","additionalProperties": false,"properties": {"direction": {"anyOf": [{"$ref": "#/$defs/SplitDirectionSchema"},{"type": "null"}],"description": "Where the new pane goes relative to `pane`. Defaults to `below`."},"pane": {"description": "The `%`-prefixed pane to split.","type": "string"},"percent": {"description": "The new pane's share of the split, 1 to 100. Defaults to half.","minimum": 0,"type": ["integer","null"]},"start_directory": {"description": "The new pane's working directory. Omit for the directory this MCP\nserver started in, not `pane`'s current directory.","type": ["string","null"]}},"required": ["pane"],"type": "object"}Output schema
{"$defs": {"Relation": {"description": "How a pane relates to the process answering the request.\n\nThree values rather than a boolean, because \"not the caller's pane\" and\n\"there is no caller\" are different answers and an agent acts differently on\neach.","oneOf": [{"const": "unknown","description": "This process is not running inside tmux, so no pane is its own.","type": "string"},{"const": "self","description": "Confirmed: the same tmux server, and the same pane.","type": "string"},{"const": "other","description": "Some other pane, or a pane this crate cannot prove is the caller's.","type": "string"}]}},"$schema": "https://json-schema.org/draft/2020-12/schema","properties": {"active": {"description": "Whether this is the window's active pane.","type": "boolean"},"caller": {"$ref": "#/$defs/Relation","description": "Whether this is the pane the MCP server itself runs in.\n\n`self` only on a confirmed match of both socket and pane id; `other`\nfor every pane that is not, including one this crate cannot prove\neither way; `unknown` when the server is not running inside tmux, so\nthe question has no answer."},"command": {"description": "The command currently running.","type": ["string","null"]},"id": {"description": "The `%`-prefixed tmux identity.","type": "string"},"path": {"description": "The pane's working directory.","type": ["string","null"]},"window_id": {"description": "The window that contains the pane.","type": "string"}},"required": ["id","window_id","command","path","active","caller"],"type": "object"}