Nifty Problems
See TypeScript and ESLint errors for your whole project in the Problems panel, not just open files.
Maintained. No sign-in. No telemetry. Works in VS Code, Cursor, Windsurf, VSCodium and other editors that use Open VSX.
Why
VS Code only shows TypeScript errors for files you have open. Rename a function, change a type, or let an AI agent edit ten files, and you won't see what broke elsewhere until the build fails. This has been one of VS Code's most-requested features since 2016 (#13953, 1,500+ 👍).
Nifty Problems runs your project's own tsc in the background and puts every error from every file in the Problems panel.
Features



- Every error in the project, in the Problems panel, with the TypeScript error code. Click to jump to it.
- Stays up to date. Re-checks after you save (default), or keeps
tsc --watch running for instant updates.
- No duplicates. Files open in an editor are already checked by VS Code's language server (and by the ESLint extension, if you have it), so Nifty Problems leaves those to it.
- Your project's setup. Uses the TypeScript version and
tsconfig.json from your project, so results match your build and CI.
- ESLint too (optional). Turn on
nifty.problems.eslint.enabled to lint the whole project with your own ESLint config.
- Monorepos. Point it at several tsconfig files, e.g.
["packages/*/tsconfig.json"].
- Counts in the status bar.
⊗ 3 ⚠ 1; click to check again.
- Works with TypeScript 5 and 7, and runs on the editor's bundled Node, so no separate Node install is needed.
Commands
| Command |
What it does |
Nifty Problems: Check Whole Project Now |
Run the check now |
Nifty Problems: Clear Project Problems |
Remove the results |
Nifty Problems: Choose When to Check… |
On save, watch, or manual |
Settings
| Setting |
Default |
What it does |
nifty.problems.mode |
onSave |
onSave, watch or manual |
nifty.problems.checkOnStartup |
true |
Check when the workspace opens |
nifty.problems.hideForOpenFiles |
true |
Skip files open in an editor (avoids duplicates) |
nifty.problems.tsconfigs |
[] |
tsconfig globs; empty means the root tsconfig.json |
nifty.problems.tsc.extraArgs |
[] |
Extra tsc arguments, e.g. ["--skipLibCheck"] |
nifty.problems.eslint.enabled |
false |
Also run ESLint on the whole project |
nifty.problems.eslint.paths |
["."] |
Paths ESLint checks |
nifty.problems.showInStatusBar |
true |
Show counts in the status bar |
TypeScript (and ESLint, if enabled) must be installed in the project: npm install -D typescript.
Install
- VS Code: search for "Nifty Problems" in the Extensions view, or install from the Visual Studio Marketplace.
- Cursor, Windsurf, VSCodium, Kiro, Antigravity: install from Open VSX.
Privacy
This extension collects no telemetry, needs no account and makes no network requests. It only runs your project's own TypeScript and ESLint.
- Nifty Pretty Errors: Readable Error Messages: Readable error messages for every language: TypeScript types formatted as code, long C++ and Rust types folded, and a docs link for every error code, in the hover and a side panel. (Open VSX)
- Nifty XML: XPath, Formatter & XML to JSON: Evaluate XPath with namespaces, copy the XPath of any element, format, minify, check well-formedness and convert XML to JSON. (Open VSX)
- Nifty YAML: Formatter, Validator & Converter: Format YAML without losing comments (Kubernetes-style indents), sort keys, lint with yamllint, copy the key path, and convert to and from JSON. (Open VSX)
- Nifty C# Templates: New Class, Record & Namespace: New C# class, interface, record, enum, test and controller files with the right namespace, plus namespace syncing. (Open VSX)
- Nifty JSON: Formatter, Validator & JSONPath: Format, minify, sort keys, query with JSONPath, copy paths, generate TypeScript types, and browse huge JSON files in a fast tree view. (Open VSX)
- Nifty Mermaid: Mermaid Diagram Preview & Export: Mermaid diagrams with no account: live preview beside .mmd files and Markdown, diagrams in the Markdown preview, syntax highlighting, and export to SVG or PNG. (Open VSX)
See all 28 Nifty tools at https://getnifty.dev
| |