Local-first evidence for coding agents

Evidence before edits.

Open Kioku is a local index your coding agent reads before it edits. It shows its evidence — which files, which streams answered, what is missing — declares an edit boundary in a plan, and verifies the finished diff against that plan. Nothing leaves your machine.

Read-only by default No hosted code index MCP over local stdio
0.02–0.05sexact class lookup, fresh process
247,499symbols indexed from one large repo
1.52Mrelationship edges with typed proofs
0lock failures under parallel readers
Measured on large repositories

Repository intelligence that survives contact with real code.

The 3.1.0 release lineage was validated end to end on a large Java repository — same protocol and same hardware as the 3.0.4 record; the before/after figures compare against main at c96f61a on the identical corpus.

Cold structural index
19m28s
13,607 indexed files, 247,499 symbols, 248,107 chunks, 402,844 graph nodes, and 1,522,135 relationship edges — a corpus 46% larger than the prior record. A repeat rebuild reproduced identical totals.
0.02–0.05s
exact class lookup, fresh process — down from 13.9s on main at c96f61a, same host as the 3.0.4 record
495,606
local semantic vectors · 0 failures
84,504
tests indexed and tiered by evidence
16
MCP tools with routing + safety metadata — current build, not part of the 3.1.0 record
Measured, not promised: timings come from one local workstation and vary with hardware, repository shape, Git history, and enabled evidence. Four concurrent graph reads completed without lock failures; optional compiler-grade SCIP evidence was unavailable for this build and remained explicitly reported as missing. Inspect the JSON evidence ↗ Read the method and caveats ↗
What to expect

The floor your agent starts from, measured on real repositories.

Retrieval is scored on the production ok context path — the same builder behind ok plan and the MCP build_context_pack tool — on four repositories indexed at a fixed base commit. Each case is a later commit: the query is its subject line, the answer is the source files it changed. Both splits are gated nightly; the table shows holdout.

CorpusHoldout casesR@5R@20MRR
Java, about 10k files1130.5660.6990.504
Go application, ~800 files840.6790.8090.535
TypeScript, ~900 files1660.8250.8740.658
Python library, ~4k files1990.6630.7590.545
R@5 — the share of tasks for which at least one file the commit changed is in the first five results.
R@20 — the same within the first twenty results, roughly the whole context pack.
MRR — the average of 1 / rank of the first correct file; 1.0 means it was always first, 0.5 is what you get if the first correct file were always second, or first half the time and never found the rest.
Read it plainly: on a Java repository of about ten thousand files the right file is in the top five about half the time and in the pack about two thirds of the time; on a TypeScript repository of about nine hundred files, in the pack nearly nine in ten and in the top five about four in five. That is the floor the agent starts from; exact lookups and the plan → edit → verify loop sit on top of it. Baselines were frozen from a hosted Linux runner matrix on 2026-09-08 and are re-derived nightly against the frozen files in benchmarks/commit-derived/ by the scripts in the repository; the job fails when a watched metric drops more than 0.03 below its baseline. Queries are commit subjects, not issue text, so these numbers are not comparable with published benchmarks. Method, corpora, both splits, and scripts ↗
Built to be trusted

The parts we can prove, we prove. The parts we can’t, we publish.

Every claim on this page traces to a frozen corpus and a machine-readable artifact in the repository — including the numbers that are not good yet.

ABS

When the task has no answer

On the frozen 30-case fixture, all five no-gold tasks now come back at Low confidence instead of being presented as answers (no-gold false-positive rate 0.0; the CI ceiling is 0.25). A low-confidence pack still lists candidates — it tells the caller not to trust them rather than returning nothing. Calibrated abstention is built and gated on held-out performance, and off by default until it earns activation.

benchmarks/retrieval-baseline.json · benchmarks/retrieval-thresholds.json
TIER

Proof-tiered claims

A file that merely shares a name can never become a “proven dependency” or a “required test.” Structural claims carry typed proofs; heuristic candidates stay clearly labeled suggestions.

retrieval may speculate · truth may not
GEN

Atomic index generations

Every index builds into its own generation and publishes with one atomic switch — designed so a reader never sees a half-built index; a kill mid-build or a downgrade falls back to the last good generation.

atomic publish · last-known-good recovery
Release-linked evidence

Don’t take the marketing copy on faith. Inspect the proof.

The evidence below identifies the exact build lineage, publishes aggregate results, and keeps caveats beside the claims they qualify. The newest record also publishes what got faster — and what still isn’t perfect.

Release-lineage evidence · v3.1.0

Open Kioku 3.1.0, tested at scale.

Validated end to end on a large Java workload — and honest about the result. The adjacent artifacts are the source of record.

3959fdf source16,537 tracked files0 semantic failures
Machine-readable evidence

Auditable without exposing the repository.

The JSON records build source, host profile, configuration, workload totals, measurements, quality checks, and limitations — including what still isn’t perfect. Repository identity is withheld, so exact replay is not claimed.

247,499 symbols1,522,135 edges4 parallel readers
Inspect JSON evidence ↗
Method + limitations

Quality means preserving uncertainty.

The repeated structural run reproduced identical totals, the exact class lookup returned the correct class in 0.02s, and missing compiler-grade SCIP evidence stayed visible instead of being treated as present.

0 lock failures0 failed vectors
Read methodology ↗
Evidence boundary: these are single-workstation observations, not latency guarantees. Publishing an anonymous workload protects the test target but prevents exact source-level reproduction.
One evidence pipeline

From repository facts to the smallest useful context.

Open Kioku combines deterministic code intelligence with explainable retrieval signals. Exact repository facts do not get demoted by a fuzzy match.

01
Indexsymbols, chunks, tests, graph
02
Retrievelexical + local semantic context
03
Provereferences, history, runtime, coverage
04
Planfiles, boundaries, validation
05
Verifychanged files against the plan
exact symbolsreferencesBM25local semanticimpact graphtestsgit historyruntimecoveragearchitecturecontracts
EX

Facts outrank guesses

Definitions, references, paths, and exact evidence stay authoritative. Heuristics can help retrieval without rewriting repository truth.

authority ≠ score
CTX

Context with a purpose

Ranked snippets, exact line ranges, impact, nearby tests, and caveats give the next agent step a bounded evidence set.

search → context → plan
ANN

Scales locally

Optional semantic retrieval stays on-device and can use persistent approximate nearest-neighbor search while exact-flat remains the correctness oracle.

local semantic · no hosted index
HIS

History is evidence

Co-change, churn, ownership, reviewer, provenance, renames, and similar-change signals are derived from bounded local Git history.

local history enabled by default
VAL

Tests before edits

Validation candidates are selected from indexed tests and repository evidence before a change begins, not as an afterthought.

plan with validation targets
VFY

Verification closes the loop

Plans define edit boundaries. Verification compares the actual changed files with those boundaries and reports evidence caveats.

plan → edit → verify
Interactive product tour

A coding workflow with memory of what matters.

Click through the same sequence an agent can use before, during, and after a repository change.

ok plan
Local by design

Your repository is the source of truth — and it stays yours.

The default workflow is designed for local repository intelligence rather than a hosted code-index service.

No hosted index

Core search and evidence are stored under the repository’s local .ok/ data.

Read-only by default

The MCP server provides evidence tools; source edits remain in the normal editor and agent workflow.

Network-denial posture

Command execution and model downloads are policy-gated. Default configuration includes network denial, and denial fails closed. Local semantic search needs no hosted embeddings API.

Share proof, not source

ok prove reports index and validation signals while intentionally omitting source snippets.

Evidence stays honest: runtime traces and coverage reports are optional local inputs; when evidence is missing, Open Kioku reports the caveat instead of pretending certainty.
Start with your own repository

Give your coding agent evidence before the next edit.

Install from the channel you already use, run one setup command, then ask for evidence on the task you actually care about.

$ npm install -g open-kioku
npm
npm install -g open-kioku

Pulls the native binary for macOS, Linux, or Windows through platform packages.

crates.io
cargo install open-kioku-cli

Or cargo binstall open-kioku-cli for the prebuilt binary.

GitHub releasesok-{linux,macos,windows}-*

Binaries with SHA256SUMS, an SBOM, PROVENANCE.json, and build-provenance attestations. Release trust ↗

HomebrewFormula/open-kioku.rb

Formula tracked in the repository; no public tap is published yet.

Claude Code pluginclaude_plugin.json

Plugin manifest and .claude-plugin/ marketplace entry in the repository.

Cursor / Codex plugins.cursor-plugin/ · .codex-plugin/

Agent, rules, and skill for Cursor; plugin manifest for Codex.

MCP directoriesglama.json · smithery.yaml

Server manifests for the Glama and Smithery MCP directories.

Setup guidesok setup agent claude|cursor --repo . --apply

Claude Code · Cursor · Codex · Gemini CLI

If Open Kioku improves your agent workflow, consider starring the repository ↗.