Public The benchmark is public: every question, every answer key, every miss.

For AI-written code, checked on your servers

AI writes the code. We check it against your whole codebase, inside your network.

ByteBell indexes every repository once, hundreds of repos or one large monorepo, and checks each change against all of it before it ships. Source stays on your servers.

  • Any Git host. GitHub, GitLab, Bitbucket, Gerrit, air-gapped.
  • Any model. A resident open-weight model, or the one you already license.
  • Open engine and public benchmark on GitHub.

Who it's for

Teams that write code for other companies, on servers the other company controls.

IT services firms and global capability centres work inside client repositories under client security terms. Every AI-written PR now waits for a client-side senior who has become the bottleneck. ByteBell gives that reviewer a verdict with the file and line behind every claim, and gives the client a record showing nothing left the building.

The same install serves banks, insurers, telcos and anyone whose policy keeps source away from cloud models.

Product

One engine. Three ways to use it.

Index

Ask your whole estate from your editor. Every file is read once and tagged with what it is for. Shared schemas, queues and contracts become links across repositories. Claude Code, Cursor, Codex and VS Code connect over MCP and get answers that cite the file and the line, without reading a directory into context.

Gate Early access

A check on every pull request. It pulls the diff, finds what the change touches across every repository, reads only those slices, and returns a verdict: ship, don't ship, or needs a person. Each call carries a file and a line. Runs as a status check on GitLab, GitHub Enterprise Server and Bitbucket, or from the command line in any CI.

Ledger Early access

The record your auditor asks for. For each PR: the commit, the files retrieved, the model and version, the verdict, and who overrode it. Export per PR or per quarter.

On your hardware

Nothing leaves. The expensive model only runs for the verdict.

01

Ingestion

Runs on a resident open-weight model, under 100B parameters, on one GPU. Cost follows how much code changes, not how much you have.

02

The graph

An embedded store in a single directory. No database server, no container, no open port.

03

The verdict

Runs on a resident model on two GPUs, or on the model your policy already allows: Bedrock, Azure OpenAI, Vertex, or your own endpoint. Only the diff and the retrieved slices reach it. Roughly nine files, not two hundred.

What we put in the contract

  • A no-egress mode that fails closed on any outbound call
  • A per-call audit log
  • An air-gapped install from a signed bundle
  • An engine your security team can read
Where the code goes →

Benchmark

One benchmark, published with its misses.

10 of the 11 published questions are built from a real merged pull request. Each question spans several of 14 open-source repositories, 33,016 files, pinned at a commit before the fix. The answer key is the set of files the maintainers actually changed. Every question was first given to Opus 5 with full filesystem access; the ones it solved on its own were thrown out.

1
83%
Opus 5 + ByteBell
$6.98 / query · 14m 06s
2
62%
Opus 5
$9.35 / query · 9m 11s
3
57%
Opus 5 + embeddings
$5.66 / query · 6m 51s
4
56%
Opus 5 + graph tool
$10.84 / query · 8m 07s

Mean recall over the 11 published questions: 83.2% with ByteBell against 61.6% for Opus 5 alone · snapshot Sep 10, 2026 · prompts, answer keys and every ranked result

Pick a question. Read what each retriever returned against what the merged fix touched.

Read the full question the MCP client receives and what four retrievers did with it

Transient visual feedback in one of these libraries outlives the thing it belongs to: the fading trail left behind by a presentation pointer keeps animating and drawing after the user has switched to a different page of the same document, because the component that owns those in-flight trails is one long-lived manager that never recorded which page each trail was started on, and nothing tears them down when the active page changes. The same shape of bug is a standing contract across the folder: short-lived state - the transient status of an in-flight fetch, a pending selection, an interaction still in progress - is owned by something that outlives the scope the state actually belongs to, and has to be reset when that scope changes underneath it. Which files own scope-bound ephemeral state of this kind and would have to change?

tldraw #10509 · fix(editor): clear laser trails when the current page changes 9 files in the key

Repositories, each pinned at its own commit

tldraw 1 query 1 redux-toolkit 1 db 1 table 1 react 1 xyflow 1 jotai 1 zustand 1

Retriever

How it searched stakeout×14the_receipts×4roll_call×1collateral_damage×1shakedown×1case_file×1
67%
ByteBell found 6/9 files, 6/9 repos, in a list of 58. verifiable context layer
1/9 in its top 20 $2.71 first hit at #1
RepositoryFileVerdict
tldrawpackages/editor/src/lib/editor/managers/ScribbleManager/ScribbleManager.tsin the key
querypackages/query-core/src/queryObserver.tsin the key
xyflowpackages/react/src/store/index.tsin the key
tablepackages/table-core/src/features/RowPagination.tsin the key
dbpackages/react-db/src/useLiveQuery.tsin the key
jotaisrc/react/useAtomValue.tsin the key
redux-toolkitpackages/toolkit/src/query/react/buildHooks.tsnever returned
reactpackages/react-reconciler/src/ReactFiberHooks.jsnever returned
zustandsrc/middleware/persist.tsnever returned

Click a row for the spec ByteBell holds for that file.

Every run, and what it cost
retrieverrecallcost / querywall timetotal spend
Opus 5 + ByteBell0.832$6.9814m 06s$62.84
Opus 50.616$9.359m 11s$102.80
Opus 5 + embeddings0.571$5.666m 51s$45.30
Opus 5 + graph tool0.564$10.848m 07s$86.69

Every percentage is a mean over the 11 questions published here, which reach 14 of the 16 repositories and 90 answer-key files. Cost and wall clock come from the run logs, over the runs that recorded them. The full run is 50 questions over all 16; the other 39 are not snapshotted into this site, so no number here is attributed to them.

Why not build this yourselves

Building an index is a weekend now. Running one is not.

An agent can build a cross-repo index over a weekend. What it can't do is keep that index current on every commit across hundreds of repositories, publish its false-positive rate, rerun the benchmark on each release, track the monthly changes to GitHub, GitLab and every agent's API, and stand behind each verdict with SOC 2, an audit log and an SLA your client's procurement team will accept. Teams build the weekend part. They buy the rest.

Pricing

Per developer. Unlimited repositories and files.

Regulated
$48 per active developer per month
  • From $60,000 a year
  • Everything in On-prem
  • No-egress mode and the audit log
  • Signed air-gapped bundle and an SLA
  • The documents your auditor asks for
Book a pilot
Services firms
Volume from 1,000 seats
  • Volume pricing from 1,000 seats
  • Or a per-client-estate licence you can carry inside an engagement
Talk to us

Under two dollars per PR checked. A senior reviewer spends half an hour on the same PR.

Open source

The engine is public so your security team can read it.

The ingestion engine, the MCP server and the benchmark are on GitHub under AGPL with a non-commercial clause. Personal, academic and non-profit use is free.

Give us five repositories on your hardware.

We install inside your network, index five repositories on a resident model, verify a real cross-repo change in front of your reviewer, and show you the audit log with zero outbound calls. One day, your machine.