Reporecall
Description
Zero-tool-call codebase intelligence for Claude Code and MCP clients. Automatically injects the right code context, functions, callers, and call chains, before the LLM starts thinking. Replaces 4-6 grep/read round-trips with a single 5ms hook injection, cutting token usage by…
About
Zero-tool-call codebase intelligence for Claude Code and MCP clients. Automatically injects the right code context, functions, callers, and call chains, before the LLM starts thinking. Replaces 4-6 grep/read round-trips with a single 5ms hook injection, cutting token usage by 3-8x.
Details
- Author
- proofofwork-agency
- Downloads
- 107
- Categories
- Developer Tools, Other, AI
Jump to
Setting up with Highlight
This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:
- Download and install Highlight from highlightai.com/download
- Navigate to the plugins tab and select "Add Custom Plugin"
-
Configure the plugin with the settings below
Plugin Name
ReporecallCommand (node, npx, python, etc.)Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.
- Enable "Start Automatically" if you want the plugin to start when Highlight launches
From the repository
{
"mcpServers": {
"reporecall": {
"command": "npx",
"args": [
"reporecall",
"mcp",
"--project",
"."
],
"env": {}
}
}
}
Claude Desktop / Cursor
Paste into your MCP client config file to install this server.
{
"mcpServers": {
"reporecall": {
"reporecall": {
"command": "npx",
"args": [
"reporecall",
"mcp",
"--project",
"."
],
"env": []
}
}
}
}
McpServers
{
"reporecall": {
"command": "npx",
"args": [
"reporecall",
"mcp",
"--project",
"."
],
"env": []
}
}
____ _ _ | _ \ ___ _ __ ___ _ __ ___ ___ __ _| | | | |_) / _ \ '_ \ / _ \| '__/ _ \/ __/ _ | | | | _ < __/ |_) | (_) | | | __/ (_| (_| | | | |_| \_\___| .__/ \___/|_| \___|\___\__,_|_|_| |_|
Local-first context + memory for coding agents
Automatic injection + an explicitTrust Contractso agents (and you) always know when the context is fresh.
Reporecall helps Claude Code, Codex, Cline, Aider and other agents work more effectively onlarge, high-churn or unfamiliar codebases.
- Auto-injection via hooks— relevant code, call graph, wiki, memory and business context are pushed into every promptbeforethe model starts thinking.
- Brutally honest freshness— every response includesindexedCommit, dirty-file count, and a clear banner when the index is EMPTY or STALE, plus direct guidance torefresh_context.
- Smart local retrieval— intent routing + hybrid search + graph expansion + extractive compression (expand any chunk on demand).
- Persistent local memory— rules, facts and working notes that survive across sessions.
- Zero cloud by default— no external vector DB, no recurring costs, works completely offline.
Every number below is produced by a command you can run, backed by a committed artifact, and registered inquality/claims.json. Anything we haven't measured saysinsufficient_evidenceinstead of guessing.
Both measured on a real 1,306-file / 5,591-chunk codebase over 30 pre-registered queries, withno model calls— so you can reproduce them exactly. The token figure is context-assembly cost, not end-to-end agent tokens; we don't publish an end-to-end number because we haven't earned one yet. SeeBenchmarking & Token Evidence.
v0.9.1 focus:freshness integrity — a modified file can no longer stay indexed as fresh, the full test suite now runs on Windows and macOS, and the docs site gained offline search and rendered architecture diagrams.
- 6-tool MCP surface— deliberately small and reliable after the v0.8 surface collapse.
- Deterministic Lens— one HTML file + JSON export for the whole codebase topology, communities, and business context.
- Full-stack local— code indexing, call-graph analysis, wiki generation, business context, and memory — all without leaving your machine.
User prompt │ ▼ Claude Code hook ──► Reporecall (local) │ │ │ [check freshness] │ │ [route intent] │ │ [select + compress]│ ▼ ▼ Injected context + banner (optional MCP tools for gaps)
Plays nicely with:Claude Code (hooks), Codex (MCP/CLI), Cline, Aider, and any MCP-compatible coding agent.
📖 Full docs + honest competitive analysis(current position, target position, and threat matrix):https://proofofwork-agency.github.io/reporecall/
v0.9.1 in practice— change detection that refuses to trust a timestamp it cannot rely on, platform coverage that fails in CI instead of at publish, and every published figure re-measured against the build that ships it.
npm install -g @proofofwork-agency/reporecall reporecall init && reporecall serve
That's it. Hooks push fresh, compressed context into every prompt. The agent reads it first.
reporecall lens --serve --open # one-file architecture dashboard reporecall explain "..." # per-question diagnostics + evidence reporecall stats # Trust Contract + freshness at a glance
(Thememorybinary alias may collide with other tools;reporecallis the canonical command.)
[!NOTE]Yournpm auditwill show 3 high advisories, and we'd rather tell you than let you find them.@huggingface/transformers(local embeddings) requiressharp ^0.34.5, and everysharpbelow 0.35.0 inherits four libvips CVEs. npm reports no fix available, and no released upstream version changes that — transformers 4.2.0 still pins the same range. Our whole use of that library is onepipeline("feature-extraction", …)call; no code path here hands transformers an image, which issharp's only entry point, so we consider the CVEs unreachable in this usage. If you gate on audit, add{ "overrides": { "sharp": "0.35.3" } }— note that our own override does not reach you, because npm honors overrides only from the root project. Reasoning in full:release verification.
- Large or fast-moving codebases
- Architecture, trace, cross-cutting change, and "where would this break?" questions
- Teams that wantautomatichigh-signal context instead of hoping the agent calls the right tool
- Anyone who values explicit honesty about freshness
You probably don't need it fortiny greenfield projects or when plaingrep+ the agent's built-in tools are already sufficient.
See the full, honest comparison + threat analysis indocs/competitive-positioning-2026.md.
Lens — interactive architecture dashboard
One command, one HTML file, your whole codebase at a glance:
See communities, hubs, surprises, wiki pages, product areas, and business context — all in a portable single file. Export JSON withreporecall lens --json.
reporecall initonly writes project configuration, Claude hook settings, MCP config, and memory directories. It does not index code.
reporecall serveruns an initial incremental index on startup, generates wiki pages from the resulting index, and then keeps the index fresh through the file watcher. If you want a one-off foreground index without starting the daemon, runreporecall index— it indexes the codebase and generates the same deterministic wiki/business pages before exiting (pass--no-wikito skip).
reporecall explain "which files implement authentication?" reporecall search "checkout session" reporecall mcp --project . reporecall lens --json
Full documentation is hosted onGitHub Pagesathttps://proofofwork-agency.github.io/reporecall/:
- Introduction
- Installation & Quick Start
- CLI Reference
- MCP Tools
- Configuration
- Architecture
We donotreplace your agent or editor. We simply make the context it receives higher quality and more honest — especially on large, high-churn, or unfamiliar codebases.
Reporecall isnotanother tool the agent has to decide to call.
The killer feature isautomatic per-prompt injectionvia Claude Code hooks.
Claude Code (Auto-Injection is the Product)
- Creates hooks thatpushcontext before the prompt reaches the model.
- Adds a Reporecall section to yourCLAUDE.md..mcp.json
- Sets up.
The agent reads the injected evidencefirst. It only needs to usesearch_context,explain_flow, ormemorytools for gaps.
Trust contract in action: Every injected response and MCP result includes a banner when the index is empty or stale, plusindexedCommit, dirty file count, andrefresh_contextguidance.
Seesrc/hooks/prompt-context.tsandsrc/core/staleness.tsfor the implementation.
Codex uses Reporecall through the open MCP and CLI surfaces rather than Claude Code hooks.
Use CLI commands for scriptable context:
reporecall explain --json "which files implement billing?" reporecall search "billing controller" reporecall lens --json
In Codex, the MCP tools are the main live interface for code search, flow navigation, business context, wiki reads, memory reads/writes, topology, and index management. The CLI is useful when an agent or script wants deterministic JSON without maintaining an MCP session.
External utilities should depend on the public outputs, not Reporecall internals:
The business context export is intentionally additive. It gives planning tools, dashboards, and MCP wrappers product-facing language while preserving the core retrieval model as code/wiki/graph evidence.
Technical symbols, classes, and service names stay available as supporting evidence. They should not become the primary product-facing capability label when Reporecall can infer a clearer business phrase.
UsedisplayNameanddisplaySummaryfor business-facing tools, and prefer records wherepresentationSafeistrue.displayQualityandpresentationIssuestell consumers when a generated label is high-confidence, thin, fallback-derived, or dominated by technical evidence. UsetechnicalEvidence.filesandtechnicalEvidence.symbolsonly when a trusted technical client needs the source evidence behind a page or product area. The oldername,capability,summary,supportingFiles, andsupportingSymbolsfields remain for compatibility and diagnostics.
Generated business wiki markdown keeps its narrative business-facing as well: the body reports evidence quality and counts, while concrete file and symbol names stay in structured evidence fields for technical clients.
Product areas are not a fixed taxonomy. Reporecall starts with common software-product areas, then can derive additional areas from the repository's own business terms and data concepts. This keeps the layer generic while letting domain language surface when the indexed code and wiki evidence support it.
Each product area includesareaKind:fixed,discovered, orfallback. External tools can use this to keep foundational product areas primary while treating repo-derived domain areas as supporting context when appropriate.
External tools can ask Reporecall to refresh itself through MCP. Userefresh_contextafter large file changes or before a planning workflow that needs fresh wiki/product-area context. It runs the same local indexing and deterministic wiki generation path that Reporecall uses for its own Lens and agent context. Usereporecall lens --jsonfor a read-only Lens JSON export over the current index.
flowchart TB Q["User or agent question"] Entry["Hook, CLI, MCP, or JSON command"] Intent["Intent classifier"] Search["Code retrieval"] Wiki["Wiki evidence"] Product["Product area evidence"] Memory["Project memory"] Resolver["Capability evidence resolver"] Selected["Selected context"] Agent["Agent reads selected files first"] Explain["explain --json"] Lens["lens --json / Lens HTML"] BusinessTools["MCP business tools"] Q --> Entry --> Intent Intent --> Search Intent --> Wiki Wiki --> Product Intent --> Memory Search --> Resolver Wiki --> Resolver Product --> Selected Resolver --> Selected Memory --> Selected Selected --> Agent Selected --> Explain Product --> Lens Wiki --> Lens Product --> BusinessTools
The important rule is file coverage over chunk volume. For trace and architecture questions, Reporecall tries to cover the relevant layers: entry/UI, state or service, controller or edge function, and shared helpers when those layers exist.
flowchart LR Query["Prompt"] Mode{"Mode"} Lookup["Exact lookup"] Trace["Flow reconstruction"] Bug["Symptom evidence"] Arch["Layer coverage"] Change["Affected surfaces"] Query --> Mode Mode --> Lookup Mode --> Trace Mode --> Bug Mode --> Arch Mode --> Change Trace --> Resolver["Capability evidence"] Arch --> Resolver Change --> Resolver Resolver --> Files["Selected files with provenance"] Resolver --> Areas["Product areas used"] Resolver --> Pages["Business pages used"]
Capability evidence is generic. It does not encode customer/project names or repository-specific file lists.
For trace, architecture, and change prompts, Reporecall can:
- use matching wiki capability pages as anchors;
- hydrate theirrelatedFilesinto real code chunks;
- add import and call neighbors from the graph;
- keep lookup prompts small and exact;
- suppress test/spec noise unless the query asks for tests.
- selectionSourceselectionReason
- wikiPagesUsed
- missingEvidence
-
Reporecall exposes product-language context in three places:
- reporecall lens --jsonfor whole-projectproductAreas[]andbusinessPages[].reporecall explain --json
- for query-specificproductAreasUsed[]andbusinessPagesUsed[].reporecall lens --json
- andreporecall explain --jsonfor business/product context exports.
These surfaces are additive product-language views over code evidence for external tools.
The schema is documented indocs/business-context-schema.md.
- productAreas[]displayName
- displaySummary
- areaKind
- displayQuality
- presentationSafe
- presentationIssues
- capability
- actor
- trigger
- businessTerms
- userActions
- decisionPoints
- sideEffects
- businessOutcome
- dataConcepts
- technicalEvidence
- externalSystems
- supportingFiles
- confidenceLabel
-
Business context is not fed back into core search as hard-coded rules. Hooks may append a small budgeted product-area evidence section for trace, architecture, and change prompts, but lookup prompts stay small and code retrieval remains grounded in source/wiki/graph evidence. Consumers should treat the business layer as a read-only product map with supporting evidence.
Most context tools are silent when they're wrong.
Reporecall is not.
- A clear banner when the index isEMPTYorSTALE
- indexedCommitvs currentHEADrefresh_context
- Count of files changed since last index
- Direct advice: runorreporecall index
get_statsis the diagnostic you should call first.
Auto-refresh happens in the background whenserveis running (debounced, safe).
This is why we collapsed the MCP surface and made freshness signals unavoidable.
Seesrc/core/staleness.tsand the daemon auto-refresh logic.
Example—reporecall statsalways leads with the Trust Contract data:
{ "trust": { "banner": "⚠ ... STALE ...", "indexedCommit": "abc1234", "currentCommit": "def5678", "dirtyFiles": 14, "level": "stale" }, ... }
Context-assembly cost.Getting the right evidence in front of the model costs a median of 75.4% fewer tokens than reading the relevant files whole.
Measured, not estimated — and scoped precisely:
Fixture: benchmark/project-context-queries.json (30 queries, real 1,306-file repo) Baseline: whole-file tokens for the files that actually contain the answer, i.e. what grep-then-read costs. Counts ONLY known-relevant files, never the wrong files a real search would also open — so the measured saving is a floor, not a best case. Candidate: tokens RepoRecall injects for the same query. Guard: a query counts only if RepoRecall delivered every mustInclude file, so omitting evidence can never register as a saving. 30/30 passed. Model calls: none. Deterministic and reproducible. median baseline 5,215 tokens -> median injected 1,439 tokens median reduction 75.4% aggregate 86.4% by route R0 54.5% R1 70.4% R2 90.8%
npm run benchmark:context-cost -- --project /path/to/repo --output ./context-cost.json
What this is not.This measures context-assembly cost only. It excludes reasoning tokens, tool-call overhead and multi-turn exploration, so it isnotan end-to-end agent token measurement and is never presented as one. A full paired agentic run — native tools vs RepoRecall, same model and settings, fresh sessions, blind grading — is a separate artifact and is not yet published. Missing paired measurements are reported asinsufficient_evidence, never replaced with estimates or fallback numbers.
Runnpm run benchmarkor seescripts/benchmarks/.
For redacted aggregate injection + freshness evidence:
PRs with reproducible numbers on real repos are very welcome.
reporecall lens --serve --open reporecall lens --json > lens.json
- overview stats;
- Louvain communities;
- high-degree hub nodes;
- surprising cross-module edges;
- generated wiki pages;
- product areas that group related business capability pages;
- business capability pages with product-facing summaries and supporting files.
The JSON export also includes machine-readable wiki graph data,productAreas[], andbusinessPages[]`for other tools.
Sign in to leave a review
Use Google, GitHub, or an email account so ratings stay tied to real people.
No reviews posted yet.





