search_panes
- search_panes( content_end?: integer | null, content_start?: integer | null, limit?: integer | null, match_case?: boolean, max_matched_lines_per_pane?: integer, offset?: integer, pattern: string, regex?: boolean, session_id?: string | null, session_name?: string | null, socket_name?: string | null, )
-
Search visible terminal text across all tmux panes.
Use when the user asks what panes ‘contain’, ‘mention’, or ‘show’ — e.g. ‘find the pane with the pytest failure’. Searches each pane’s visible terminal scrollback content (not editor or browser text) and returns panes where the pattern is found, with matching lines.
- MCP request method
tools/callSendsearch_panesas the tool name, with the arguments below.
Arguments#
-
content_end? =null(integer | null) #End line for capture.
-
content_start? =null(integer | null) #Start line for capture. Negative values reach into scrollback.
-
limit? =500(integer | null) #Maximum matching panes returned on this call. Defaults to
SEARCH_DEFAULT_LIMIT. PassNoneto disable the cap. -
match_case? =false(boolean) #Whether to match case. Default False (case-insensitive).
-
max_matched_lines_per_pane? =50(integer) #Per-pane cap on
matched_lines. Defaults toSEARCH_DEFAULT_MAX_LINES_PER_PANE. -
Skip this many matching panes from the start. Use with
limitfor pagination. -
Text to search for in pane contents. Treated as literal text by default. Set
regex=Trueto interpret as a regular expression. -
Whether to interpret pattern as a regular expression. Default False (literal text matching).
-
session_id? =null(string | null) #Limit search to panes in this session (by ID).
-
session_name? =null(string | null) #Limit search to panes in this session.
-
socket_name? =null(string | null) #tmux socket name.
No other arguments are accepted.
Result#
This server does not advertise an output schema for this tool. Its description defines the returned content.
Annotations#
destructiveHinttrueidempotentHintfalseopenWorldHinttruereadOnlyHintfalse
Protocol data#
Use the complete advertised contract for validation and client integration.
Input schema
{"additionalProperties": false,"properties": {"content_end": {"anyOf": [{"type": "integer"},{"type": "null"}],"default": null,"description": "End line for capture."},"content_start": {"anyOf": [{"type": "integer"},{"type": "null"}],"default": null,"description": "Start line for capture. Negative values reach into scrollback."},"limit": {"anyOf": [{"type": "integer"},{"type": "null"}],"default": 500,"description": "Maximum matching panes returned on this call. Defaults to\n``SEARCH_DEFAULT_LIMIT``. Pass ``None`` to disable the cap."},"match_case": {"default": false,"description": "Whether to match case. Default False (case-insensitive).","type": "boolean"},"max_matched_lines_per_pane": {"default": 50,"description": "Per-pane cap on ``matched_lines``. Defaults to\n``SEARCH_DEFAULT_MAX_LINES_PER_PANE``.","type": "integer"},"offset": {"default": 0,"description": "Skip this many matching panes from the start. Use with\n``limit`` for pagination.","type": "integer"},"pattern": {"description": "Text to search for in pane contents. Treated as literal text by\ndefault. Set ``regex=True`` to interpret as a regular expression.","type": "string"},"regex": {"default": false,"description": "Whether to interpret pattern as a regular expression. Default False\n(literal text matching).","type": "boolean"},"session_id": {"anyOf": [{"type": "string"},{"type": "null"}],"default": null,"description": "Limit search to panes in this session (by ID)."},"session_name": {"anyOf": [{"type": "string"},{"type": "null"}],"default": null,"description": "Limit search to panes in this session."},"socket_name": {"anyOf": [{"type": "string"},{"type": "null"}],"default": null,"description": "tmux socket name."}},"required": ["pattern"],"type": "object"}