Find the most complicated parts of a JavaScript codebase.
A real parser measures every function's complexity, nesting and size and draws the call graph. Point at a function to get an explanation, a refactor, unit tests or a bug review.
The app itself, running inside this page. Anything you do here is saved in your browser.
Ask it to do things
Press Ctrl+K in the app (Cmd+K on a Mac) and describe what you want. The model chooses from the app's own functions, runs them in order and tells you what changed. Some examples:
| Which function is the most complex and why? | Reads the metrics and explains the hotspot. |
| Write unit tests for the parse function | Generates tests for that function. |
| Refactor the longest function into smaller ones | Proposes a refactor you can compare and copy. |
Instructions you save in the same box, such as "keep it short" or "I'm a beginner", are added to every AI request the app makes.
Features
- AST-based function discovery
- Declarations, arrows, class methods, object methods, exports.
- Per-function cyclomatic complexity
- Max nesting, params, returns, LOC, Halstead volume, maintainability index.
- Call-graph resolution
- Direct, method and this.* calls) rendered as a force-directed SVG graph.
- Local lint
- High complexity, deep nesting, long functions, too many params, never-called code.
- Token-accurate syntax highlighting
- With line focus on the selected function.
- AI
- Explain, refactor, Jest tests, bug hunt, plus a whole-module architecture summary.
- Project page
- Analyze many files at once (paste, upload or edit), with a layered import graph and cross-file call resolution through ES module imports.
- Report page
- A-F health grade with score breakdown, complexity histogram, size-weighted hotspots, issue list, Markdown export and an AI refactoring summary.
- History page
- Snapshot the project over time and chart health score and average complexity trends.
Runs in your browser
Parsing, metrics, call-graph resolution, force layout, highlighting. None of this needs a network connection or a model.
Uses a language model for
Function-level prompts enriched with static-analysis context (complexity, callers, callees). Module-level architecture summary from metrics + source.
Notes
- Cost
- Free. Each account has a daily allowance of AI requests.
- Your data
- What you make stays in this browser on this device. Your account is only used for signing in and for the built-in AI. You can export a backup or clear everything from Settings.
- AI access
- Signed-in users get the built-in AI with nothing to set up. You can also use your own Groq or OpenRouter key under Settings.
- Source
- The code and tests are on GitHub under the MIT license. The tests also run in your browser.