BackLens helps you explore codebases as a semantic call graph inside VS Code and on the web.
Install the extension: BackLens on VS Code Marketplace
BackLens is a static code intelligence platform for backend-oriented codebases.
It analyzes source code, builds a call graph, stores it in SQLite, and lets you explore architecture through:
- a standalone web app
- a VS Code extension webview
BackLens helps you:
- understand unfamiliar backend code faster
- trace call chains between functions, methods, and classes
- inspect architectural hotspots
- jump from graph nodes directly to source
BackLens helps you quickly answer practical architecture questions:
- What calls this function or method?
- What does this class depend on?
- Which nodes are hotspots?
- How do I jump from graph node to source?
It is designed for understanding unfamiliar repositories and reducing time spent tracing call flows manually.
- JS/TS parser with object-aware extraction (functions, classes, methods, calls)
- Graph-store query engine with transitive traversals, hotspots, and path queries
- Core REST API for graph operations
- Interactive 3-panel web UI (search, hotspots, inspector, expansion)
- VS Code extension with project registry, analysis pipeline, graph view, and source navigation
Current UI snapshots:
Hotspots and Method Expansion
|
Class Hierarchy and Inspector
|
Framework Call Graph View
|
Go-to-Source Navigation (GIF)
|
Current strongest support:
- TypeScript
- JavaScript
- TSX / JSX parsing support
Current focus:
- backend-oriented JS/TS repositories
BackLens does not currently claim first-class analysis support for Python, Go, or Rust.
See docs/limitations.md for details and caveats.
- Open your project folder in VS Code.
- Run BackLens: Analyze Folder.
- Open BackLens: Show Graph.
- Search nodes, expand callers/callees, and inspect node details.
- Use go-to-source actions to jump from graph nodes to code.
BackLens: Analyze Folder(backlens.analyzeFolder)BackLens: Re-analyze Folder(backlens.reanalyzeFolder)BackLens: Show Graph(backlens.showGraph)BackLens: Refresh(backlens.refreshExplorer)BackLens: Close Project(backlens.closeProject)BackLens: Go to Source(backlens.goToNode)
Fastest path to first result:
- Install dependencies:
- pnpm install
- Run API:
- pnpm --filter @backlens/core-api dev
- Run web UI:
- pnpm --filter @backlens/web dev
- Open browser:
Or use VS Code extension mode:
- Build extension assets:
- pnpm --filter backlens compile
- Launch Extension Host from VS Code
- Run BackLens: Analyze Folder
- Open BackLens: Show Graph
High-level flow:
- Parser builds IR from source files
- Graph-store transforms IR into nodes and edges
- Graph is saved to SQLite (native or WASM adapter)
- Data is queried by core-api or extension message bus
- UI renders and explores graph interactively
Detailed architecture:
Top-level packages:
- packages/parser
- packages/graph-store
- packages/core-api
- web
- vscode-extension
Detailed structure and entry points:
BackLens is usable today for JS/TS call graph exploration with both standalone and extension workflows.
Production hardening is still in progress in areas like tests, docs depth, and broader language coverage.
BackLens performs static analysis and has expected limits.
Current limitations include:
- JS/TS ecosystems are best supported in the current version.
- Dynamic runtime patterns may not fully resolve.
- Framework magic may appear as external or unresolved in some repositories.
See:
Near-term priorities:
- deeper automated tests across parser, graph-store, API, and UI
- reliability and performance improvements on larger repositories
- contract consistency checks between UI, API, RPC, and graph-store
See also:
Contributions are welcome.
Start here:
- CONTRIBUTING.md
- docs/getting-started.md
- docs/installation.md
- docs/usage-guide.md
- docs/project-structure.md
BackLens is open source under the GNU Affero General Public License v3.0 only (AGPL-3.0-only).
- Full license text: LICENSE
- Project notices: NOTICE
- Trademark and branding policy: TRADEMARK.md
Note: The BackLens name, logo, and branding are not freely reusable for confusing commercial clones or implied-endorsement uses.



