Behavior by meaning, BM25, exact paths, identifiers, configuration keys, and literal evidence.
find intent without losing literals
Satori turns a repository into a local intelligence database your coding agent can search, navigate, and interrogate: semantic meaning, exact identifiers, symbol owners, structure, supported relationships, freshness, and the exact source that matters.
npx -y @zokizuan/satori-cli@latest install
npx -y @zokizuan/satori-cli@latest doctor
src/auth/refresh.ts
src/session/store.ts
src/http/middleware.ts
config/security.ts
files · paths · checkpoints
src/auth/refresh.ts:84–146
Satori is not just semantic search. One Publication binds multiple evidence layers to the same repository generation, so an agent can move from a vague question to exact source without reconstructing the map from scratch every time.
Behavior by meaning, BM25, exact paths, identifiers, configuration keys, and literal evidence.
find intent without losing literals
Parser-derived functions, methods, classes, file outlines, and bounded source ownership.
rank evidence around real owners
Qualified callers, callees, imports, and exports when the language backend can prove them.
advisory, conservative, fail-closed
Source checkpoints, runtime compatibility, policy, navigation readiness, and atomic replacement generations.
know which repo state answered
The agent does not need a perfect identifier up front. Satori narrows the search in stages and keeps each stage tied to repository evidence.
The public surface stays small. Behind it, Satori gives a generic MCP harness the code-intelligence stack it would otherwise have to rebuild.
Potion + LanceDB measured 154.543 ms warm-search p95 on Satori's 10,830-chunk release benchmark.
Parser-backed symbols, structural evidence, exact spans, and qualified CALLS v0 navigation ship across nine production languages.
Exact symbols and bounded reads keep broad file dumps out of the prompt, so repository discovery spends context on the code that matters instead of scanning whole files.
Exploratory six-repo tuning reached 0.5046 MRR versus 0.2900 without reranking across 36 owner-discovery tasks—not a held-out release claim.
Potion embeddings, BM25 search, LanceDB storage, and managed local retrieval need no model API key and make no Satori runtime network requests after installation.
Search, symbols, structural evidence, and qualified calls activate together; unsupported or ambiguous relationships fail closed.
Ask where a behavior lives, identify the owning symbol, inspect the file structure, then read the implementation instead of browsing the tree at random.
“What owns billing retries?”
Start from an error or behavior, then follow owner and relationship evidence toward the exact code.
Find the owner, nearby structure, bounded source, and supported call paths before changing a subsystem.
A strict search → owner → exact source funnel helps smaller models avoid context-heavy repository discovery.
Compatible local sessions attach to one managed runtime and current repository intelligence while keeping independent MCP sessions.
The qualified Linux x64 / WSL2 path is offline after installation: local Potion embeddings, BM25 search, LateOn reranking, LanceDB storage, and parser-derived code intelligence. No model API key is required.
npx -y @zokizuan/satori-cli@latest install
npx -y @zokizuan/satori-cli@latest doctor
Create the repository Publication and wait until status is ready.
Ask for the behavior, owner, or source area the agent needs to understand.
Open the exact symbol, bounded source, outline, or qualified call path returned by Satori.
No model API key is required for the qualified managed offline path after installation. Connected Voyage and Milvus/Zilliz remain optional advanced runtimes.
If Satori helps, fails, or feels confusing in a real repository, I want the case. Send the language, repo size, MCP client, and what you were trying to understand.