Nestor
Your NestJS mentor inside VS Code: the official documentation on hover, and the design pattern
behind each of your classes, explained where you write it.
Nestor ships the markdown source of docs.nestjs.com (136 pages) and an
index of about 800 NestJS symbols, so everything works offline and nothing is fetched at runtime.
Hovering a class name adds a second layer: a static analysis of which Gang of Four pattern the
class follows, an original guide for that pattern, and, if you add your own Groq API key, an AI
verdict.
Documentation on hover
Hover ThrottlerModule, @SkipThrottle, ValidationPipe or any other @nestjs/* symbol to get the
relevant paragraph from the docs, a link that opens the full page in a side panel, and links to the
other sections that cover it. A symbol the index does not know still gets the section that installs
its package: registerAs from @nestjs/config opens the Configuration installation section.
Hovers only fire when the symbol really resolves to an @nestjs/* package. That check goes through
VS Code's own TypeScript server, so a local class named CacheModule never produces a false hover.
Turn it off with nestor.hover.requireNestImport if you prefer name-only matching.
Links between doc pages navigate inside the panel instead of opening a browser, and every page has a
link to its docs.nestjs.com original.
Search the docs
Ctrl+Alt+N (Cmd+Alt+N on macOS) opens a quick pick over every documentation page and every
section heading. Pick a page and it renders in the side panel; pick a section and the panel scrolls
straight to it. Nestor: Open Docs for Symbol Under Cursor does the same for the word at the cursor.
Design pattern hover
Hover the name of a TypeScript class, where it is declared or wherever it is used, to see which
Gang of Four design pattern it follows:
- the pattern, its confidence, and whether Groq or the built-in static rules found it
- the role the class plays (for example
ConcreteDecorator) and the code facts behind the match
- the pattern's intent and its top best practices
- review notes where the implementation misses part of the pattern's checklist
- the NestJS angle: interceptors as decorators, Passport strategies, CQRS commands and events,
DI singletons
- a pattern it is often confused with, when that one also matched
- links to the full guide in the side panel, its implementation checklist, and refactoring.guru
Nestor: Browse Design Patterns opens any of the 22 guides or the design principles page.
Static rules and Groq
Without any setup, patterns come from static rules that read the class's syntax: constructor
visibility, fields, heritage, and which methods call what. Nothing leaves your machine.
Run Nestor: Set Groq API Key to let Groq classify classes too. The key is kept in VS Code's
secret storage. When you hover a class, Nestor sends one request and waits up to two seconds for the
verdict; if Groq is slower, the static result shows first and the verdict appears on the next
hover. Verdicts are cached per workspace until the class changes. Nestor: Clear Groq API Key
removes the stored key, and Nestor: Analyse Class Under Cursor with Groq forces a fresh verdict.
The "Nestor: Patterns" output channel logs each Groq outcome by class name, never the source.
Commands
| Command |
|
Nestor: Search Documentation |
Ctrl+Alt+N / Cmd+Alt+N |
Nestor: Open Docs for Symbol Under Cursor |
|
Nestor: Browse Design Patterns |
|
Nestor: Set Groq API Key |
|
Nestor: Clear Groq API Key |
|
Nestor: Analyse Class Under Cursor with Groq |
|
Settings
| Setting |
Default |
|
nestor.hover.enabled |
true |
Show documentation hovers |
nestor.hover.requireNestImport |
true |
Only hover symbols that resolve to @nestjs/* |
nestor.hover.excerptLength |
320 |
Characters of documentation shown in a hover |
nestor.patterns.hover.enabled |
true |
Show pattern hovers |
nestor.patterns.hover.minConfidence |
medium |
Lowest confidence shown |
nestor.patterns.ai.enabled |
true |
Use Groq when a key is set |
nestor.patterns.ai.model |
openai/gpt-oss-120b |
Groq model id; must support structured outputs |
nestor.patterns.ai.maxClassChars |
12000 |
Larger classes stay static-only |
nestor.patterns.ai.hoverWaitMs |
2000 |
How long a hover waits for a Groq verdict |
Privacy
- The documentation, the symbol index and the pattern guides are bundled; Nestor makes no network
requests on its own.
- Groq is used only after you store an API key. Each request contains the hovered class's source,
the names of the other classes and interfaces declared in the same file, and the static hints. It
goes only to
api.groq.com. Classes longer than
nestor.patterns.ai.maxClassChars are never sent, and neither are files under node_modules or
.d.ts declaration files.
- Set
nestor.patterns.ai.enabled to false to keep the key but stop sending.
Requirements
- VS Code 1.85 or later.
- TypeScript files on disk (
file: scheme). Hovers use VS Code's built-in TypeScript support.
- A Groq API key from the Groq console for the optional AI
verdicts.
Known limitations
- Pattern detection is syntactic: it knows types by their written names, not by resolving them, so a
strategy interface declared in another file is recognised by naming convention only.
- The panel renders code blocks without syntax highlighting.
- The vendored documentation is a snapshot; it is refreshed with each release.
Contributing
docs/DEVELOPMENT.md in the source tree covers the build, the tests, how the symbol index is
generated, and how to refresh the documentation from upstream.
Licensing
The extension code and the pattern guides are MIT (see the LICENSE file). docs/content is the
NestJS documentation, also MIT, with the upstream license preserved at docs/NESTJS-DOCS-LICENSE.
The pattern guides link to refactoring.guru for further
reading; they are not derived from it.