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.
All Python tools · JSON · Source
Arguments
content_endoptional- End line for capture.
Default:
null. content_startoptional- Start line for capture. Negative values reach into scrollback.
Default:
null. limitoptional- Maximum matching panes returned on this call. Defaults to
``SEARCH_DEFAULT_LIMIT``. Pass ``None`` to disable the cap.
Default:
500. match_caseoptional · boolean- Whether to match case. Default False (case-insensitive).
Default:
false. max_matched_lines_per_paneoptional · integer- Per-pane cap on ``matched_lines``. Defaults to
``SEARCH_DEFAULT_MAX_LINES_PER_PANE``.
Default:
50. offsetoptional · integer- Skip this many matching panes from the start. Use with
``limit`` for pagination.
Default:
0. patternrequired · string- Text to search for in pane contents. Treated as literal text by default. Set ``regex=True`` to interpret as a regular expression.
regexoptional · boolean- Whether to interpret pattern as a regular expression. Default False
(literal text matching).
Default:
false. session_idoptional- Limit search to panes in this session (by ID).
Default:
null. session_nameoptional- Limit search to panes in this session.
Default:
null. socket_nameoptional- tmux socket name.
Default:
null.
Schemas
The schema defines required fields, nested values, defaults, and validation constraints.
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"}Tool annotations
{ "destructiveHint": true, "idempotentHint": false, "openWorldHint": true, "readOnlyHint": false}