Unfault surfaces call paths, entry points, and gaps in safeguards — right where you're working. The goal is fewer surprises, not more noise.
- Context sidebar — see callers, routes, and SLOs linked to the function under your cursor
- CodeLens hints — compact summaries above functions showing usage and reachability
- Findings — optional diagnostics for missing timeouts, naive datetime usage, and similar patterns
- The CLI parses your code locally
- A semantic graph (imports, calls, entry points) is built
- Analysis runs against production-readiness signals
- Context appears in the sidebar and as code lenses
Everything runs locally — no API key, account, or network access required.
Install the CLI: unfault.dev/docs/installation
Python · Go · Rust · TypeScript · JavaScript
| Setting | Description | Default |
|---|---|---|
unfault.executablePath |
Path to the CLI executable | unfault |
unfault.verbose |
Verbose LSP logging | false |
unfault.trace.server |
Trace LSP communication (off, messages, verbose) |
off |
unfault.codeLens.enabled |
Show code lens hints above functions | true |
unfault.codeLens.clickToOpen |
Click code lens to open sidebar | true |
unfault.diagnostics.enabled |
Show findings as squiggles | false |
unfault.diagnostics.minSeverity |
Minimum severity (critical, high, medium, low) |
high |
unfault.fault.executablePath |
Path to the fault CLI executable | fault |
unfault.fault.baseUrl |
Base URL used to build runnable route URLs | http://127.0.0.1:8000 |
| Command | Description |
|---|---|
Unfault: Find Call Path Between Functions |
Show the shortest call path between two functions in the workspace |
Unfault: Find Route Handlers by URL Pattern |
Find route handlers matching a URL glob pattern |
Unfault: Show Files That Depend on This File |
List all files that import the current file |
Unfault: Run fault injection for current function |
Open fault injection panel for the function under cursor |
Unfault: Restart Unfault LSP Server |
Restart the background LSP process |
CLI not found — add unfault to your PATH or set unfault.executablePath
No context showing — check Output → "Unfault LSP" for errors
Source code never leaves your machine. See unfault.dev/privacy