Codebase observability for the AI era

AI can write your code in seconds. Understand it just as quickly.

Give yourself — and your AI coding agents — a map of the codebase. Trace dependencies, understand impact, follow execution, measure code health, generate documentation, and connect application logic to the data it touches.

Python · JavaScript / TypeScript · Java 100% local · No account · No telemetry
Old way. New way.

The same problem. Two completely different afternoons.

Whether a teammate wrote it or an AI agent did, code still has to be understood before you can trust it. See what changes when you stop grepping and start asking.

Traditional

Fast to write. Easy to miss what it broke.

grep the codebase
jump between files
trace dependencies by hand
build a mental model
hope you didn't miss something
~15–40 minutes, every single time
Still guessing
VS
With Semantic Vision

Catch what the agent missed — before you hit merge.

Ask Semantic Vision
Impact
Health
Lineage
Understanding
Seconds — the map's already loaded
Confident, every time

From code change to confidence.

One map. Six ways to understand your code.

Everything you need to understand a codebase.

See the whole codebase as one map

Every directory, file, class, and function as a zoomable, color-coded graph with call/import/defines edges — structure that would otherwise take an hour of grepping to piece together by hand. Real-time search across the whole repo, and your dragged layout persists automatically.

Interactive call graph with a selected node and its callers highlighted
Code Health

Don't just review what changed. Review what it did to the codebase.

Complexity and blast radius tell you where a change matters. Coverage tells you whether that area is actually tested. Git history tells you which code keeps changing. Semantic Vision brings those signals together.

Complexity

Every function ranked by cyclomatic complexity, computed from a real AST walk — decisions, boolean chains, comprehensions, and nested loops, not a line-count guess.

The Code Health lens's Complexity tab: a filterable, sortable ranked list of every function next to summary stats
Filter and sort any ranked list — by name, file, tier, or call depth.
Selecting a function shows its direct callers and callees as a relationship graph, colored by complexity
Click a row for its live callers/callees, or diff against any commit to see whether an edit helped or hurt.
Know whether an AI-generated change made your code healthier — not just whether the tests passed.
Code → data

Your code doesn't exist in isolation.

Three sources feed the same graph, reconciled by table name, so the same table only ever shows up once.

Detected automatically, or connected explicitly

Three sources feed the same graph, reconciled by table name — the same table only ever shows up once.

SQLAlchemy models

Detected automatically on every parse — no setup

dbt

Point it at a manifest.json you already have

A live database

Read-only connection, to see schema drift

Connecting a dbt manifest to a repo, adding table and model nodes to the graph

Impact analysis that crosses code and data in one traversal

Flip Data only to dim everything that isn't a table, a dbt model, or code that reads/writes one — the same graph, filtered to a lineage-only reading.

Right-click a table or a single column exactly like a function to see every function, model, and table upstream of it — the way to answer "what actually breaks if I rename this column, drop this table, or change what this dbt model materializes" before doing it, not after.

Impact analysis run on the customers table: direct callers include the dbt model that materializes it, the SQLAlchemy class mapped to it, and every function that reads it
Rename a column. Drop a table. Change a dbt model. See what actually depends on it before you make the change.
Built for AI coding agents

Your AI agent can see the map too.

Coding agents already know how to edit code. The problem is understanding the structure around it. Semantic Vision exposes its analysis as MCP tools — tap one to see what it answers.

Semantic VisionMCP
Call Graph
get_graph(path, max_nodes)

The full parsed structure — every node and edge in the repo, truncated past max_nodes so a single call can't flood an agent's context.

parse_repo runs once per repo, first. Works with Claude Code, Cursor, Claude Desktop, or any other MCP-compatible agent.

View the MCP tools →
In your editor

Don't leave VS Code to understand your code.

Install the Semantic Vision extension and get the full experience directly beside your code.

No separate browser tab. No Python or uv installation required.

The backend ships bundled with the extension — open any Python, JS/TS, or Java repo and get the full graph, impact analysis, Code Health, flowcharts, AI docs, and lineage in a panel next to your code.

Your code stays yours

Fast, local, and private.

Semantic Vision performs its code analysis locally. Your code is never executed as part of static analysis.

No account
No cloud
No telemetry
Static analysis
Runs locally
Python / JS / TS / Java
AI features are opt-in
MIT licensed

Dependency vulnerability scanning (osv.dev) and AI providers (Ollama, OpenAI, Anthropic) are the only features that reach the network — both explicitly opt-in.

Language support

Works across your stack.

FeaturePythonJavaScript / TypeScriptJava
Call graph — imports, classes, functions, calls✓✓✓
Impact analysis (upstream callers, cycle detection)✓✓✓
Code Health (complexity, hotspots, dead code, coverage, duplicates, dependencies, AI recommendations)✓✓✓
Execution flowcharts✓✓✓
AI-generated documentation✓✓✓
Code-to-data lineage (SQLAlchemy, dbt, live DB)✓——
Docker packaging / one-command setup✓✓✓
Real numbers

Real repositories. Real performance.

Not this project's own fixtures — one large, popular repo per supported language.

LanguageRepoFilesParse — coldParse — warmRender in browser
Pythonfastapi/fastapi1,13823.25s4.08s7.20–7.84s
JavaScriptthree.js75229.33s1.98s4.88–5.01s
TypeScriptnestjs/nest1,90739.68s2.48s6.85–6.88s
Javagoogle/guava6159.83s2.52s4.73–7.63s
"Cold" is the first read of a fresh clone; "warm" is a second parse of the identical files right after — the only variable that changes is OS file-cache state. View benchmark methodology →
Get started

Three ways to try it — pick one

Fastest for real use

VS Code extension

Install from the Marketplace and open any Python, JS/TS, or Java repo. The backend ships bundled — no Python or Node toolchain required.

View on Marketplace →
Full control

Run it locally, or via Docker

Clone the repo and run the backend + frontend yourself, or a single docker compose up --build — both fully documented.

Read the setup guide →

Pick up exactly where you left off

Dragged layout, saved docs, and analysis state persist locally and restore instantly. Save location defaults to the repo's .git root, auto-detected even from a scoped-down subfolder.

What's under the hood

A FastAPI backend statically parses your code — Python's own ast, tree-sitter for JS/TS and Java. Code is never executed.

Understand your codebase before you change it.

Explore Semantic Vision on a real repository. No installation required.

Open source · MIT licensed · Local & private