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.

Version 2.0.0 · MIT license · github.com/dguywhoknows/js-code-analyzer

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 functionGenerates tests for that function.
Refactor the longest function into smaller onesProposes 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.