Skip to main content
On startup, the repo-map engine scans your codebase and builds a graph — every file, symbol, and import edge — then ranks it. The rendered result, injected at the top of every prompt, is the Soul Map: what the agent actually sees. The agent never wastes a turn grepping for “where does auth live” — it already sees the map.

What you see

The Soul Map appears in every prompt, looking like this:
src/services/auth/session.ts (→12)
  +SessionManager  Tracks active sessions, refresh tokens, expiry
  +SessionStore
  • + — exported symbol
  • (→12) — blast radius: 12 files depend on this one
  • [NEW] — file changed recently
  • One-line summary after the name (when semantic summaries are on)

What makes it useful

  • Ranked by PageRank — files imported by lots of others rank higher.
  • Personalized per turn — files you just edited or read get boosted.
  • Git-aware — files that always change together get pulled in too.
  • Real-time — edits re-index immediately.
  • 30+ languages — TypeScript, Python, Rust, Go, Java, Ruby, C/C++, Swift, Kotlin, and more.

Config

Everything runs out of the box. If you want to tune it:
{
  "repoMap": true,
  "semanticSummaries": "ast"
}
FieldValues
repoMaptrue (default) or false to disable
semanticSummaries"ast" (fast, default), "llm" (one-line LLM descriptions), "off"
/repo-map opens the settings panel (the repoMap config keys below tune the engine that builds the map).

Skip the scan

For quick one-shot questions, skip the startup scan:
soulforge --headless --no-repomap "what's the version?"
Or set SOULFORGE_NO_REPOMAP=1.