get_outline
Get a file's symbol outline with signatures only, avoiding full code bodies to save tokens. Expand nested declarations for deeper structure, then drill into specific symbols as needed.
Instructions
Get all symbols for a file (signatures only, no bodies) — cheaper than Read for understanding a file before editing. Follow up with get_symbol to read one symbol's source. nested: true expands large top-level symbols (default ≥100 LOC) into inner declarations, each carrying parentId + depth (max 3). Read-only. Returns JSON: { path, language, symbols: [{ symbolId, name, kind, signature, lineStart, lineEnd, parentId?, depth? }] }. Supports output_format: "toon".
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | Yes | Relative file path | |
| nested | No | Walk the body of each top-level symbol past min_loc_for_nesting and emit inner declarations as extra rows carrying `parentId` + `depth`. Default false. | |
| detail_level | No | Output verbosity. "minimal" returns ~40-60% fewer tokens (drops scores, fqn, signatures, summaries — keeps name/file/line). Use when you only need to pick a candidate before drilling in with get_symbol. Default: "default". | |
| output_format | No | "json" (default) or "toon" (lossless, 30-60% fewer tokens). "markdown" is unsupported here and behaves as json. | |
| min_loc_for_nesting | No | Minimum (line_end - line_start) for a top-level symbol to be expanded when nested=true. Default 100. |