Skip to main content
Local-first context layer

Your agent stops guessing at your codebase.

Reporecall indexes your repo locally and pushes the right code, call paths and memory into every prompt through a hook — before Claude or Codex starts thinking. And on every response it tells you exactly how fresh that context is.

npm i -g @proofofwork-agency/reporecall
one prompt, start to finish
prompt"why does the auth callback loop?"You type. Nothing else happens yet.
hookUserPromptSubmit → ReporecallIntent routed, index queried, evidence compressed.
inject4 files · 1 call path · 2 memories · FRESHAttached to the prompt before the model reads it.
modelClaude / Codex answersNo exploration round-trips to buy the same context.
5,215tokens read whole
1,439tokens injected
30/30evidence complete
Measured, not asserted

Numbers you can reproduce on your own repo

Getting the answering evidence in front of the model costs a median of 75.4% fewer tokens than reading the relevant files whole. Measured over 30 pre-registered queries against a real 1,306-file codebase with zero model calls, so the result is deterministic and you can run it yourself.

Retrieval gateRelease barMeasured
Context precision>= 60%91.6%
Context recall>= 85%95.6%
Pollution ratio<= 10%8.4%
Route accuracy>= 90%100.0%
High-confidence-wrong== 0%0.0%
Freshness signaling== 100%100.0%

Retrieval quality holds at these levels across the same cohort. Both figures are backed by committed artifacts under quality/evidence/ and registered in quality/claims.json, which CI validates on every push.
Scope, stated plainly: the token figure is context-assembly cost. It excludes reasoning tokens, tool-call overhead and multi-turn exploration, so it is not an end-to-end agent measurement — and we do not publish one, because we have not earned it yet. Unmeasured things report insufficient_evidence instead of a guess.

What it actually does

A context layer, not another tool to remember

It arrives before the question does

A UserPromptSubmit hook pushes routed, compressed evidence into the prompt itself. The agent never has to decide to call a tool — which is exactly what the largest tools in this category still require.

It tells you when it might be wrong

Every response carries indexedCommit, a dirty-file count, and an explicit banner when the index is STALE or EMPTY. Staleness gets reported, never hidden behind a confident answer.

Routed, not just searched

Each query is classified — lookup, trace, architecture, change, bug — and sent to a strategy built for it. "Where is X" and "how does X flow" are not the same retrieval problem.

Six tools, deliberately

search_context, search_code, explain_flow, memory, refresh_context, get_stats. A surface small enough for an agent to use correctly, with no destructive verbs on it.

Memory that outlives the session

Decisions, rules and project facts persist across sessions and are injected alongside code when they are actually relevant — not on every prompt regardless.

Wiki and architecture lens

A generated wiki, business-context pages, and a single-file interactive dashboard built from your real call graph. Export it with lens --json.

The trust contract

A stale index is worse than no index

Confidently wrong context is the failure mode that actually costs you time. So Reporecall states its own freshness on every response and hands the agent the command to repair it. These are the three states you will see:

FRESH · indexedCommit matches HEADSTALE · run refresh_contextEMPTY · nothing indexed yet

Runs on your machine

Indexing and retrieval are local, on SQLite and LanceDB, with zero cloud required by default and no recurring cost. Embeddings run locally unless you deliberately select the openai provider — the one case where content leaves your machine.

Works with what you already use

Claude Code through hooks, Codex and any MCP-compatible agent through the six-tool server. 22 languages via tree-sitter. Node 22 or newer.

Held to its own gates

949 tests, a module and cycle gate, multi-OS CI, and a release gate that stays blocked when current proof is missing. The claims registry fails the build if a published number loses its evidence.

Point it at your worst repository

The gnarly one — high churn, half-remembered, too big to hold in your head. That is the case Reporecall is built for.