An AI-enhanced Go to Symbol for VS Code. It lists the symbols in the current file in a native, fuzzy-searchable modal — like the built-in "Go to Symbol in Editor" — but each symbol also shows a one-line AI summary of what it does.

Features
- Native modal picker — press
Cmd+Shift+O(Ctrl+Shift+Oon Windows/Linux) to open a centered QuickPick over the editor. - Flattened symbol list — classes, functions, methods, fields, etc. from the
current file, with a breadcrumb path (e.g.
MyClass › doThing) and line number. - Fuzzy search — type to filter; matching characters are highlighted. Search also matches the breadcrumb and the AI summary text.
- One-line AI summaries — a short description of each symbol on the second line, generated lazily as you move through the list and cached per workspace.
- Jump on select — press Enter to reveal the symbol and move the cursor there.
Symbols come from VS Code's own document symbol provider, so any language with a working language server (TypeScript, Python, Terraform, Go, …) is supported.
Requirements
The symbol picker, fuzzy search, grouping, and navigation work everywhere with no setup. The AI summaries need access to an Anthropic model, via one of two transports, chosen by this precedence:
1. Public Anthropic API — for most users. Bring your own key:
- Set
smartOutline.anthropicApiKey. This explicit setting always wins — it is used even if a Bedrock gateway is also present in your environment. - Summaries call
{base}/v1/messages, wherebaseissmartOutline.baseUrl→ theANTHROPIC_BASE_URLenv var → the defaulthttps://api.anthropic.com. - Default model:
claude-haiku-4-5(override withsmartOutline.summaryModel). - Without the setting, an
ANTHROPIC_API_KEY/ANTHROPIC_AUTH_TOKENenv var is used as a fallback when no Bedrock gateway resolves.
2. Internal Bedrock gateway — used when no explicit anthropicApiKey setting
is present and an ANTHROPIC_BEDROCK_BASE_URL is configured (env or
~/.claude/settings.json), with a token from ANTHROPIC_AUTH_TOKEN /
ANTHROPIC_API_KEY or the settings apiKeyHelper (minted, cached ~5 min,
re-minted on 401/403). Model id must be one the gateway accepts (e.g.
claude-haiku-4-5-20251001). Note: apiKeyHelper minting does not work on
Windows — use the explicit key setting there.
If neither transport is configured, the picker still works — summaries are simply omitted (fail-soft). Run Smart Outline: Show Diagnostics to see exactly which path resolved (and why not).
Your API key is only used to call the summary endpoint you configure; it is not sent anywhere else.
Extension Settings
| Setting | Default | Description |
|---|---|---|
smartOutline.anthropicApiKey |
"" |
Anthropic API key for the public API path (takes priority). Falls back to ANTHROPIC_API_KEY. |
smartOutline.baseUrl |
"" |
Advanced. Override the endpoint base URL for whichever transport is chosen (public overrides https://api.anthropic.com; Bedrock overrides ANTHROPIC_BEDROCK_BASE_URL). |
smartOutline.summaryModel |
"" |
Model id override. Empty → a per-transport default (claude-haiku-4-5 public, claude-haiku-4-5-20251001 gateway). |
Known Issues / Limitations
- Summary line styling is fixed by VS Code. The QuickPick API gives no way to change the font size, italicize, or indent the detail line beyond leading spaces. This is a platform limitation, not a bug.
- Current file only. Smart Outline lists symbols from the active editor, not the whole workspace.
- If Node's TLS trust store rejects the gateway's certificate, set
NODE_EXTRA_CA_CERTSto your corporate root CA when launching VS Code.
Development
pnpm install
pnpm run compile # type-check + lint + esbuild bundle
pnpm run watch # rebuild on change
pnpm test # run the test suite (downloads a VS Code build)
Press F5 (config: Run Extension (no build task)) to launch an Extension
Development Host, open a file, and press Cmd+Shift+O.
Packaging & installing the VSIX
Build a shareable .vsix (no Marketplace account needed):
pnpm run vsix
# → smart-outline-<version>.vsix
Install it into VS Code or Cursor:
# from the command line
code --install-extension smart-outline-<version>.vsix
cursor --install-extension smart-outline-<version>.vsix
# Cursor: install into a specific profile
cursor --profile "<ProfileName>" --install-extension smart-outline-<version>.vsix
Or via the UI: Extensions view → ⋯ menu → Install from VSIX…. Reload
the window afterward (Developer: Reload Window).
Release Notes
0.0.1
Initial version: native QuickPick symbol picker with lazy AI summaries.