Skip to content

a project brain for your AI. Give LLMs instant architectural context without burning tokens

License

Notifications You must be signed in to change notification settings

JordanCoin/codemap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

90 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

codemap ๐Ÿ—บ๏ธ

Run in Smithery

codemap โ€” a project brain for your AI. Give LLMs instant architectural context without burning tokens.

License Go

codemap screenshot

Install

# macOS/Linux
brew tap JordanCoin/tap && brew install codemap

# Windows
scoop bucket add codemap https://github.com/JordanCoin/scoop-codemap
scoop install codemap

Other options: Releases | go install | Build from source

Quick Start

codemap .                    # Project tree
codemap --only swift .       # Just Swift files
codemap --exclude .xcassets,Fonts,.png .  # Hide assets
codemap --depth 2 .          # Limit depth
codemap --diff               # What changed vs main
codemap --deps .             # Dependency flow
codemap handoff .            # Save cross-agent handoff summary
codemap github.com/user/repo # Remote GitHub repo

Options

Flag Description
--depth, -d <n> Limit tree depth (0 = unlimited)
--only <exts> Only show files with these extensions
--exclude <patterns> Exclude files matching patterns
--diff Show files changed vs main branch
--ref <branch> Branch to compare against (with --diff)
--deps Dependency flow mode
--importers <file> Check who imports a file
--skyline City skyline visualization
--animate Animate the skyline (use with --skyline)
--json Output JSON

Note: Flags must come before the path/URL: codemap --json github.com/user/repo

Smart pattern matching โ€” no quotes needed:

  • .png โ†’ any .png file
  • Fonts โ†’ any /Fonts/ directory
  • *Test* โ†’ glob pattern

Modes

Diff Mode

See what you're working on:

codemap --diff
codemap --diff --ref develop
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ myproject โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚ Changed: 4 files | +156 -23 lines vs main                      โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ
โ”œโ”€โ”€ api/
โ”‚   โ””โ”€โ”€ (new) auth.go         โœŽ handlers.go (+45 -12)
โ””โ”€โ”€ โœŽ main.go (+29 -3)

โš  handlers.go is used by 3 other files

Dependency Flow

See how your code connects:

codemap --deps .
โ•ญโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ
โ”‚                    MyApp - Dependency Flow                   โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚ Go: chi, zap, testify                                        โ”‚
โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ

Backend โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•โ•
  server โ”€โ”€โ”€โ–ถ validate โ”€โ”€โ”€โ–ถ rules, config
  api โ”€โ”€โ”€โ–ถ handlers, middleware

HUBS: config (12โ†), api (8โ†), utils (5โ†)

Skyline Mode

codemap --skyline --animate

codemap skyline

Remote Repos

Analyze any public GitHub or GitLab repo without cloning it yourself:

codemap github.com/anthropics/anthropic-cookbook
codemap https://github.com/user/repo
codemap gitlab.com/user/repo

Uses a shallow clone to a temp directory (fast, no history, auto-cleanup). If you already have the repo cloned locally, codemap will use your local copy instead.

Supported Languages

18 languages for dependency analysis: Go, Python, JavaScript, TypeScript, Rust, Ruby, C, C++, Java, Swift, Kotlin, C#, PHP, Bash, Lua, Scala, Elixir, Solidity

Powered by ast-grep. Install via brew install ast-grep for --deps mode.

Claude Integration

Hooks (Recommended) โ€” Automatic context at session start, before/after edits, and more. โ†’ See docs/HOOKS.md

MCP Server โ€” Deep integration with project analysis + handoff tools. โ†’ See docs/MCP.md

Multi-Agent Handoff

codemap now supports a shared handoff artifact so you can switch between agents (Claude, Codex, MCP clients) without re-briefing.

codemap handoff .                 # Build + save layered handoff artifacts
codemap handoff --latest .        # Read latest saved artifact
codemap handoff --json .          # Machine-readable handoff payload
codemap handoff --since 2h .      # Limit timeline lookback window
codemap handoff --prefix .        # Stable prefix layer only
codemap handoff --delta .         # Recent delta layer only
codemap handoff --detail a.go .   # Lazy-load full detail for one changed file
codemap handoff --no-save .       # Build/read without writing artifacts

What it captures (layered for cache reuse):

  • prefix (stable): hub summaries + repo file-count context
  • delta (dynamic): changed file stubs (path, hash, status, size), risk files, recent events, next steps
  • deterministic hashes: prefix_hash, delta_hash, combined_hash
  • cache metrics: reuse ratio + unchanged bytes vs previous handoff

Artifacts written:

  • .codemap/handoff.latest.json (full artifact)
  • .codemap/handoff.prefix.json (stable prefix snapshot)
  • .codemap/handoff.delta.json (dynamic delta snapshot)
  • .codemap/handoff.metrics.log (append-only metrics stream, one JSON line per save)

Save defaults:

  • CLI saves by default; use --no-save to make generation read-only.
  • MCP does not save by default; set save=true to persist artifacts.

Compatibility note:

  • legacy top-level fields (changed_files, risk_files, etc.) are still included for compatibility and will be removed in a future schema version after migration.

Why this matters:

  • default transport is compact stubs (low context cost)
  • full per-file context is lazy-loaded only when needed (--detail / file=...)
  • output is deterministic and budgeted to reduce context churn across agent turns

Hook integration:

  • session-stop writes .codemap/handoff.latest.json
  • session-start shows a compact recent handoff summary (24h freshness window)

CLAUDE.md โ€” Add to your project root to teach Claude when to run codemap:

cp /path/to/codemap/CLAUDE.md your-project/

Roadmap

  • Diff mode, Skyline mode, Dependency flow
  • Tree depth limiting (--depth)
  • File filtering (--only, --exclude)
  • Claude Code hooks & MCP server
  • Cross-agent handoff artifact (.codemap/handoff.latest.json)
  • Remote repo support (GitHub, GitLab)
  • Enhanced analysis (entry points, key types)

Contributing

  1. Fork โ†’ 2. Branch โ†’ 3. Commit โ†’ 4. PR

License

MIT

About

a project brain for your AI. Give LLMs instant architectural context without burning tokens

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 6

Languages