Instant Architectural Cartographer, Hierarchical Sub-Maps & Memory Graph for Vibe Coders & AI Agents
โก 1-Line Quickstart โข ๐ Full Documentation โข ๐ Visual Explorer โข ๐ Beginner ELI5 โข ๐ฎ CLI Reference โข ๐ Vibe-Map vs Graphify
"I originally created Vibe Map to solve a recurring challenge in my own AI-assisted projects. As my codebases grew rapidly with dozens of generated components, backend routes, and database models, I kept losing track of how everything connected under the hood. I needed an instant, zero-friction tool that could give me (and my AI agents) a clear architectural map, trace user flows, and calculate blast radius before making breaking edits. I built this tool for my own workflow and open-sourced it so other vibe-coders can build with total clarity."
Note
Just an experiment, which works for me so check before using ๐
When building apps with AI ("vibe coding" with Antigravity, Claude Code, Cursor, or Windsurf), codebases grow at lightning speed. Within hours, you can have 50+ React components, API endpoints, database schemas, and helper utilities.
Soon, builders face common challenges:
- โ "How does my app actually work under the hood?"
- ๐ฆ "How do I keep monorepos or multi-service projects organized without collapsing into one giant flat messy graph?"
- โก "Which specific function calls which other function across the codebase?"
- ๐ "What architectural changes happened since my last milestone, and can I audit them offline?"
- ๐ฅ "If I ask the AI to modify file X, what other components might break?"
Vibe Map solves all of this in < 100ms. It parses code ASTs natively, detects child sub-maps automatically, extracts function execution call graphs, tracks incremental snapshots, and outputs human, agent, and visual blueprints.
| Capability | Description |
|---|---|
| ๐ชถ Zero External Dependencies | Built 100% on the Python 3 standard library. Instant install, 0 pip bloat, runs everywhere. |
| ๐ฆ Child Map Detection & Modular Linking | Auto-detects existing vibe-map configurations in subfolders/packages and links them as modular sub-maps rather than flattening everything. |
| โก Function Call Graphs | Deeply inspects AST call expressions (login() โ verify_token()) and visualizes inter-function call paths. |
| ๐ Offline Architecture History | Log snapshots (vibe-map update -m "...") and inspect change timelines with file & function diff metrics. |
| ๐ค Bounded Single-Pass LLM Summaries | Single API call (--deep --usemodel) summarizes key hubs using user environment keys without file-by-file token spam. |
| ๐ Obsidian Graph View & 7 Layout Modes | Pitch-black cosmos, degree-scaled starfield nodes, outer orphan halo, Groups coloring, and physics sliders. |
| ๐ Beginner-Friendly ELI5 Mode | Translates technical code into real-world analogies ("The Cashier", "The Security Guard", "The Filing Cabinet") with function input/output cards. |
| ๐ฅ Blast-Radius Impact Analysis | Calculate direct and indirect dependents before refactoring so AI agents never make breaking edits blindly. |
Vibe Map classifies every code file into an intuitive software architecture layer:
- Frontend / UI (
#ec4899): React, Vue, Svelte, JSX/TSX, HTML/CSS, components, and pages. - Backend / API (
#3b82f6): API routes, Express/FastAPI handlers, endpoints, controllers. - Services / Logic (
#f59e0b): Business logic, utilities, authentication routines, clients. - Database / Models (
#10b981): Prisma schemas, SQL migrations, ORM entities, database tables. - Config / Infra (
#8b5cf6): Dockerfiles, package configs, CI/CD workflows, build scripts. - Documentation (
#a855f7): Markdown guides, manuals, blueprints, specifications. - Nested Sub-Map (
#14b8a6): Modular child projects with their own independent maps. - External Packages (
#64748b): Third-party libraries and dependencies.
In monorepos or multi-service projects (e.g. apps/web, packages/auth, services/api):
vibe-mapautomatically discovers subdirectories that have their ownvibe-map-out/codebase_map.json.- Instead of polluting the root diagram with hundreds of internal sub-package files, it renders the package as a ๐ฆ Nested Sub-Map Node.
- Clicking a Sub-Map node displays its summary metrics and provides an instant
โ Open Child Maplink directly to its isolated canvas.
Beyond file dependencies, vibe-map extracts actual call expressions:
- Python: Traverses AST call sites (
ast.Call), matching caller functions to callee functions and imported symbols. - JavaScript / TypeScript: Scans invocation patterns and exports to build inter-function links.
- Visualizing: Switch to the โก Function Call Graph layout to explore direct execution paths.
Keep an immutable audit trail of how your codebase architecture evolves:
# Refresh map with a note
vibe-map update -m "Refactored user auth to JWT tokens"
# View change history timeline
vibe-map historyOutput:
๐ Offline Architecture History for /your-project (3 snapshots):
๐ท [snap_20260911_003000] 2026-09-11 00:30:00
Note: Refactored user auth to JWT tokens
State: 34 files, 142 functions
Diff: +2 / ~3 / -0
While the default --deep flag uses 100% free offline heuristics, --usemodel executes a single-pass inference call using your environment's GEMINI_API_KEY or OPENAI_API_KEY:
vibe-map scan --deep --usemodel- Strict Cost Bounds: Only key entrypoints and hubs (max 15 files) are bundled in a single prompt.
- Zero Failure Risk: If offline or if no API key is set, it falls back seamlessly to the built-in heuristic enricher.
Vibe Map parses dependencies, classes, functions, and execution links across full-stack ecosystems:
- ๐ PHP & WordPress Themes/Plugins:
- Imports: Resolves
require,require_once,include,include_once, and PSR-4usestatements. - WordPress Helpers: Natively resolves
get_template_part('template-parts/content', 'hero')into target template files. - Hooks & Call Edges: Maps WordPress
add_action()andadd_filter()hook bindings into call-graph edges (hook:after_setup_themeโvibe_theme_setup). - Template Layers: Automatically categorizes
header.php,footer.php,single.php, andtemplate-parts/into Frontend / UI.
- Imports: Resolves
- ๐ Python: Full AST traversal (
ast.parse,ast.Import,ast.ImportFrom,ast.Call), relative imports, class inheritance, async functions, and caller-callee call edges. - โก JavaScript / TypeScript / React / Next.js / Vue / Svelte: Component detection, ES Module
import& CommonJSrequire, API handler detection, intra/inter-file function calls. - ๐น Go: Single and multi-line
import (...)blocks, methods, receiver functions,main.goentrypoints. - ๐ฆ Rust:
mod foo;anduse crate::foo::bar;module dependency resolution, public/private functions,main.rs/lib.rsentrypoints. - ๐๏ธ SQL & Prisma: Database schemas,
CREATE TABLEstatements, Prismamodelentities mapped to Database / Models.
All outputs are written into vibe-map-out/ (cleanly gitignorable):
your-project/
โโโ vibe-map-out/
โโโ VIBE_MAP.md # ๐ For Humans: Architectural guide & function catalog
โโโ codebase_map.json # ๐ For AI Agents: Machine-readable graph (<5ms load, 0 token waste)
โโโ vibe_map.html # ๐ Visual Canvas: Zero-dependency dark-mode interactive explorer
โโโ history.json # ๐ Memory Log: Offline architecture change snapshots
graph LR
Codebase[Raw Codebase] --> Parser[Multi-Language AST Parser]
Parser --> SubMaps{Child Maps?}
SubMaps -->|Found| Nest[๐ฆ Link Sub-Maps]
SubMaps -->|Files| CallGraph[โก Extract Call Edges]
Nest --> Layers[Semantic Layer Classifier]
CallGraph --> Layers
Layers --> MD[๐ VIBE_MAP.md]
Layers --> JSON[๐ codebase_map.json]
Layers --> HTML[๐ vibe_map.html]
Layers --> Hist[๐ history.json]
Install vibe-map globally on your machine with a single command. It automatically registers with Antigravity across all your workspaces:
curl -fsSL https://raw.githubusercontent.com/muchandresh/Vibe-Map/master/install.sh | bashirm https://raw.githubusercontent.com/muchandresh/Vibe-Map/master/install.ps1 | iexpip install git+https://github.com/muchandresh/Vibe-Map.git
vibe-map install --globalgit clone https://github.com/muchandresh/Vibe-Map.git
cd Vibe-Map
./install.sh # or: python3 install.pyOpening vibe-map-out/vibe_map.html gives you a dark-mode interactive visual explorer with both beginner-friendly clarity and an authentic Obsidian Graph View:
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ ๐บ๏ธ Vibe Map [Layout: ๐ Classic Vibe Force โผ] [+] [-] [๐ฏ Fit] [โก Physics] [๐ Obsidian] โ
โโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโค
โ ๐ Search... โ โ ๐ Controls โ
โ [UI] [API] โ (LoginForm.tsx) โโโโโบ (authClient.ts) โ โพ Groups โ
โ โ โ โ โ [path:ui] ๐ด โ
โ โญ LoginForm โ โผ โผ โ โพ Forces โ
โ ๐ auth.py โ (Button.tsx) (auth.py) โโโบ (user.py) โ Center: 0.35 โ
โ ๐๏ธ user.py โ โ Repel: 140 โ
โฐโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโฏ
- ๐ Classic Vibe Force (Default): Clean, open, beginner-friendly architecture graph. Labels are always visible, nodes are colored by stack layer, and organic repulsion keeps connections clear and readable.
- ๐ Obsidian Graph View (Forces & Groups): Authentic recreation of Obsidian's constellation graph!
- Groups Panel: Create dynamic color-coded groups by directory (
path:components), layer (layer:API), or filename with custom color pickers. - Forces Sliders: Real-time physics controls for Center force, Repel force, Link force, and Link distance.
- Starfield Constellations: Nodes scaled organically by degree & connectivity; outer circular halo ring for orphan/leaf nodes.
- Selective Focus Dimming: Hovering or selecting any node highlights its connected sub-network and dims peripheral nodes.
- Groups Panel: Create dynamic color-coded groups by directory (
- โก Function Call Graph: Dedicated function-to-function execution call graph mapping direct inter-function calls across files.
- โญ Circular (Radial Chords): Arranges nodes around an outer circle sorted by architectural tier, drawing clean dependency chords across the center.
- ๐๏ธ Stack Tier Flow (UI โ DB): Clean column lanes showing data flow across the stack (
Frontend / UIโBackend / APIโServicesโDatabase / ModelsโInfra). - ๐ช Concentric Orbit Rings: Database & models at the central nucleus, services in the mid-ring, and UI in the outer orbit.
- ๐ณ Dependency Tree: Directed hierarchical DAG flowing top-down from entrypoints to leaf utilities.
- Neighbor Focus on Hover: Hovering over any node highlights its 1-hop connected neighbors with glowing colors while gracefully dimming unrelated nodes.
- Cursor-Centered Zoom: Smooth zooming directly toward where your mouse points.
- Sub-Map Navigation: Click any Sub-Map package to open its dedicated child map view in a new tab.
- Dual-Mode Inspection Drawer:
- ๐ Beginner (ELI5) Tab: Real-world analogies, no-jargon summaries, and function input/output badges.
- ๐ ๏ธ Technical AST Tab: Function signatures, parameter types, in/out degrees, and file paths.
For non-technical founders, students, and new vibe-coders:
vibe-map --deep
# or in Antigravity chat: /vibe-map --deep- ๐ญ Real-World Analogies: Translates complex code into everyday roles:
auth.pyโ ๐ก๏ธ The Security Guard & Badge Issuer (Verifies passwords and issues access passes).stripe.tsโ ๐ณ The Cash Register & Payment Counter (Charges cards and creates receipts).schema.prismaโ ๐๏ธ The Master Filing Cabinet (Keeps database tables organized).
- ๐ก No-Jargon Summaries: Clear explanations of what each file does in simple plain English.
- ๐ฅ Input / Output Cards: Plain-English function cards showing
๐ฅ Takes in: ...and๐ค Gives back: .... - ๐ User Journey Walkthrough: Details when each file is active during app usage.
| Mode | Command | Token Cost | Speed | What It Does |
|---|---|---|---|---|
| Standard AST Scan | vibe-map |
0 Tokens (100% Free) | < 100ms | Pure Python AST scan. Zero API calls. |
| Deep Beginner (ELI5) Mode | vibe-map --deep |
0 API Keys / Free | Instant | Enriches map with heuristic analogies and IO cards. |
| LLM Semantic Mode | vibe-map --deep --usemodel |
1 Bounded Call | ~2s | Single-pass model inference for key hub module descriptions. |
| Command | In Antigravity Chat | In Terminal | Description |
|---|---|---|---|
| Scan Codebase | /vibe-map |
vibe-map |
Full structural AST scan & artifact generation |
| Refresh Map | /vibe-map update |
vibe-map update |
Rescan project and show added/changed/deleted files diff |
| Log Snapshot | /vibe-map update -m "note" |
vibe-map update -m "note" |
Record architecture memory snapshot with description |
| Offline History | /vibe-map history |
vibe-map history |
View historical architecture memory timeline & diff log |
| Beginner / ELI5 Mode | /vibe-map --deep |
vibe-map --deep |
Deep beginner enrichment with analogies & IO cards |
| LLM Semantic Mode | /vibe-map --deep --usemodel |
vibe-map --deep --usemodel |
Single-pass bounded LLM inference for key module summaries |
| Scan Subdirectory | /vibe-map src/ |
vibe-map src/ |
Scan a specific folder or package |
| Impact Analysis | /vibe-map impact <file> |
vibe-map impact <file> |
Calculate blast radius of file modifications |
| Trace Dependencies | /vibe-map trace <a> <b> |
vibe-map trace <a> <b> |
Trace dependency paths between two components |
| Explain Feature | /vibe-map explain <query> |
vibe-map explain <query> |
Plain-English summary of matching files & functions |
| Init Project Skill | โ | vibe-map init |
Bundle skill into current project root (.agents/skills/vibe-map/) |
| Install Global Skill | โ | vibe-map install --global |
Auto-install skill into Antigravity global config (~/.gemini/config/skills/) |
Before you or an AI agent edit a shared file, check what will break:
vibe-map impact "user_service.py"๐ฅ Blast Radius Analysis for `backend/services/user_service.py`:
Total Affected Files: 3
๐ด Direct Dependents (Will break immediately if APIs change):
- `backend/routes/auth.py`
๐ก Indirect Downstream Dependents:
- `src/api/authClient.ts`
- `src/components/LoginForm.tsx`
vibe-map was inspired by the vision of Graphify โ the pioneering open-source project for codebase knowledge graphs.
No. vibe-map is 100% standalone and does NOT use or require Graphify as a dependency.
- Graphify is a heavyweight, research-grade knowledge graph and GraphRAG engine using NetworkX, Louvain community clustering, Whisper audio transcription, Cypher/Neo4j, and Gemini multimodal extraction.
- Vibe-Map is engineered specifically for vibe coders and fast-moving AI builders who need an instant tool with zero external pip dependencies, millisecond AST parsing, layered software stacks (UI โ API โ DB), hierarchical child maps, and blast-radius impact analysis before AI agents edit files.
| Dimension | ๐บ๏ธ vibe-map (This Project) |
๐ธ๏ธ Graphify |
|---|---|---|
| Target Audience | Vibe Coders, Solo Founders, AI App Builders | Researchers, Data Scientists, Enterprise Architects |
| Primary Mental Model | Software Architecture (UI โ API โ DB) | Graph Theory (God nodes, Louvain clusters, bridges) |
| External Dependencies | Zero (Pure Python 3 standard library) | networkx, whisper, pip packages |
| Speed & Setup | Instant (< 100ms), 1-line install, 0 setup | Requires pip install and optional Gemini/Whisper setup |
| Visualizer | Standalone HTML with 7 Layouts (Obsidian-Style) | D3 HTML visualizer, Obsidian vault, Neo4j, FalkorDB |
| Sub-Projects | Hierarchical Child Map Detection & Linking | Flat graph or multi-database partitioning |
| Function Calls | Inter-Function Call Graph Extraction | Code AST entity nodes |
| Change History | Offline Snapshots & Memory Timeline (history.json) |
Graph traversal, shortest path BFS/DFS |
| Multi-Agent Memory | Ultra-fast codebase_map.json (< 5ms load) |
GraphRAG-ready JSON + Neo4j Cypher queries |
When using parallel AI agents or subagents (e.g., Antigravity subagents, Claude Code parallel agents, Cursor Composer):
- Agents do not need to sequentially read every file to understand the workspace.
- They can load
vibe-map-out/codebase_map.jsondirectly in< 5ms:import json from pathlib import Path map_data = json.loads(Path("vibe-map-out/codebase_map.json").read_text()) # Instant access to all entrypoints, hubs, call edges, and child maps
- Saves thousands of tokens per prompt and prevents context-window degradation!
How much context and tokens does vibe-map actually save an AI agent or LLM during pair-programming?
| Programming Task / Agent Query | ๐ซ Without Vibe Map (Raw File Reads) | ๐บ๏ธ With vibe-map (codebase_map.json / CLI) |
๐ฐ Token Savings | โก Latency & Speedup |
|---|---|---|---|---|
| "Explain how user authentication flows end-to-end" | Agent reads 18 files into context: ~58,000 tokens | Queries codebase_map.json + explains: ~2,200 tokens |
~96.2% Saved | 18x Faster |
"If I modify user_service.py, what other files break?" |
Agent greps + reads 12 candidate files: ~45,000 tokens | Runs vibe-map impact: ~450 tokens |
~99.0% Saved | Instant (0ms LLM) |
| "Trace data flow from button click to DB save" | Agent traces 8 intermediate files: ~35,000 tokens | Runs vibe-map trace: ~600 tokens |
~98.3% Saved | Instant (0ms LLM) |
| Subagent / Multi-Agent Workspace Pre-flight | Each spawned subagent reads full repo: ~120,000 tokens/subagent | Each subagent reads single JSON: ~3,500 tokens | ~97.1% Saved | 15x Faster |
| "Where is the logic for subscription billing located?" | Agent greps codebase + reads 6 files: ~22,000 tokens | Runs vibe-map explain billing: ~550 tokens |
~97.5% Saved | Instant |
Without Vibe Map (Prompt Pollution):
[User Query] โ [Agent reads file 1 (4k tokens)] โ [Agent reads file 2 (6k tokens)] โ ... โ [80,000+ Tokens Wasted]
Result: Massive token bills, slow responses, degraded reasoning context ("lost in the middle").
With Vibe Map (Surgical Precision):
[User Query] โ [Agent checks codebase_map.json (2k tokens)] โ [Agent reads ONLY the 1 exact file needed (3k tokens)]
Result: 5,000 Total Tokens (94%+ cost reduction, zero hallucination, instant answers).
| Project Size | Total Codebase Size | Raw Full-Read Token Cost | codebase_map.json Token Size |
Net Context Saved |
|---|---|---|---|---|
| Small Utility / CLI (5โ15 files) | ~2,500 lines | ~18,000 tokens | ~900 tokens | ~95% |
| Full-Stack Web App (30โ60 files) | ~15,000 lines | ~85,000 tokens | ~3,500 tokens | ~96% |
| Complex Monorepo (100+ files) | ~50,000+ lines | ~350,000+ tokens (exceeds many context windows!) | ~8,500 tokens (isolated via Sub-Maps) | ~97.5% |
Run the included test suite to verify AST parsers, relative imports, layouts, child maps, and query engines:
python3 tests/run_tests.pyMIT License. Free for open-source and commercial use. Contributions welcome!
