The Genome
How Empryo scans your repo into a ranked dependency graph (PageRank, git co-change, 30+ languages) and injects the map into every prompt.
On startup, the Genome 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 Genome: 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 Genome 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:
{
"genome": true,
"semanticSummaries": "synthetic"
}| Field | Values |
|---|---|
genome | true (default) or false to disable |
semanticSummaries | "synthetic" (fast, code-derived, default), "ast", "llm" (one-line LLM descriptions), "off" |
/Genome opens the settings panel (the genome config keys below tune the engine that builds the map).
Skip the scan
For quick one-shot questions, skip the startup scan:
empryo --headless --no-genome "what's the version?"Or set EMPRYO_NO_GENOME=1.