TypeHealth
When tsc explodes, show the pattern, not just the list.
TypeHealth is a visual TypeScript health radar for VS Code and Cursor. It aggregates project-wide type errors, ranks hot files and folders, detects import cycles, and helps you decide what to fix first.
It does not replace the Problems panel or the TypeScript language service. It complements them when you have dozens or hundreds of tsc errors and need prioritization.

Highlights
- Error patterns grouped by TypeScript code (
TS2322, TS2345, …) with counts and examples
- Hot files and folder ranking so you see where the debt concentrates
- Circular dependencies between modules, listed and clickable
- Dashboard with summary metrics, SVG charts, and navigable tables
- Status bar (
tsc ✗ N / tsc ✓) for a glanceable health signal
- Local history of recent runs (improved / worsened at a glance)
- Markdown report you can paste into a PR or issue
- English UI by default, optional Portuguese (
pt-BR) via settings
- No telemetry. Analysis stays on your machine.
Requirements
- VS Code 1.85+ or Cursor
- A workspace with a
tsconfig.json (Node.js / TypeScript projects)
Install
VS Code
- Open the Extensions view (
Ctrl+Shift+X / Cmd+Shift+X)
- Search for TypeHealth
- Click Install
You can also install from the Visual Studio Marketplace.
Cursor
- Open the Extensions view
- Search for TypeHealth
- Click Install
Cursor uses Open VSX–compatible extensions, so the same listing works there.
Quick start
- Open a TypeScript workspace that contains
tsconfig.json
- Command Palette → TypeHealth: Analyze Workspace
- Open the TypeHealth activity bar view, or run TypeHealth: Open Dashboard
- Click a pattern, file, or cycle to jump to the source
Tip: click the status bar tsc item to open the dashboard.
Commands
| Command |
Description |
| TypeHealth: Analyze Workspace |
Run a full project typecheck and aggregate results |
| TypeHealth: Open Dashboard |
Open the webview dashboard |
| TypeHealth: Show Top Error Patterns |
Quick pick of dominant TS#### codes |
| TypeHealth: Show Circular Dependencies |
Quick pick of import cycles |
| TypeHealth: Copy Report (Markdown) |
Copy a shareable Markdown summary |
| TypeHealth: Clear History |
Clear local run history for this workspace |
Settings
Open Settings and search for typehealth, or edit settings.json:
| Setting |
Default |
Description |
typehealth.locale |
"en" |
UI language: en, pt-BR, or auto |
typehealth.tsconfigPath |
"" |
Custom tsconfig path (empty = auto-detect) |
typehealth.includeWarnings |
false |
Include TypeScript warnings |
typehealth.maxExamplesPerPattern |
5 |
Examples kept per error code |
typehealth.historySize |
10 |
Max runs stored locally |
typehealth.enableWatch |
false |
Re-analyze when TS files change |
typehealth.watchDebounceMs |
1500 |
Debounce for watch mode |
typehealth.analyzeOnStartup |
false |
Analyze when the extension activates |
typehealth.excludeGlobs |
node_modules, dist, … |
Extra ignores for the import graph |
typehealth.showStatusBar |
true |
Show the status bar item |
typehealth.useCliFallback |
false |
Experimental tsc CLI fallback if the API fails |
Language
Runtime UI (messages, status bar, tree, dashboard, Markdown report) defaults to English. Set "typehealth.locale": "pt-BR" for Portuguese (Brazil), or "auto" to follow the editor language when it starts with pt.
How it works
- Resolves your
tsconfig.json
- Runs a project check with the TypeScript Compiler API
- Aggregates diagnostics by code, file, and top-level folder
- Builds an import graph and detects cycles
- Updates the status bar, sidebar tree, dashboard, and local history
Analysis is on demand by default. Watch mode stays off unless you enable it.
Privacy
TypeHealth does not send your code or diagnostics to any server. History is stored only in the editor’s local workspace state.
Limitations
- Full-program checks can use significant memory on very large monorepos
- Multi-root workspaces: analyzes the first folder
- Path alias support covers basic
compilerOptions.paths
- CLI fallback (
typehealth.useCliFallback) is experimental
- Focused on TypeScript / Node projects (not a React/DOM-first tool)
License
MIT. See LICENSE.