Zain Dana Harperflywheel · route + verify

A companion for every model.

Route to any model, local or hosted, online or offline. Flywheel answers what it can verify, escalates only the hard part, and hands you a receipt you can re-run yourself. It does what every router and runner does, plus the one thing none of them do: it checks the work.

Every number on this page is a receipt file you can re-check offline.

flywheel · public · FSL-1.1-MIT · python scripts/run_harness_cli.py app --port 8799

Routers route. Runners run. None of them check the work.

Not one router, local runner, or agent harness checks whether the answer is right and hands you proof. Flywheel does all of their jobs on one surface, and adds the verify layer none of them have. The authority that accepts an answer is an external check, never a model grading its own work.

Bring your keys, or bring your weights.

The verified-inference loop.

Propose cheap with a local model. Dispose with an external check that can fail. Carry a re-checkable receipt. What passes accumulates; the next identical ask is free, re-checked before it is served.

THE VERIFIED-INFERENCE LOOP Propose cheap. Dispose external. Carry a re-checkable receipt. 1 · PROPOSE Local model cheap, replaceable; raise N to widen the candidate pool 2 · DISPOSE External check the only thing that accepts; no learned model here 3 · RECEIPT Content-addressed re-derive it offline; tamper one byte and the check fails candidates PASS Proof cache the next identical ask is free, re-checked before it is served NO PASS · RAISE N Budget spent below confidence → Escalate route to a stronger tier; it is named, never called for you An external check earns capability a model cannot self-select. Self-test earned nothing; the external check is the lever. Every accepted answer, cached or fresh, carries the same receipt. The check can fail, which is what makes a pass mean something.
Schematic · the loop behind every accepted answer

One surface, four things it does that others do not.

Every provider, one surface Local weights, a local server, or any hosted provider you hold a key for. One roster, one verified path behind them all. Credentials are presence only, never a value.
A record you can keep Every accepted answer carries a receipt: the inputs, the check that passed, and hashes anyone can re-run offline. This is the layer no other router has.
Answer local, escalate the hard part Answers what it can verify locally for near-zero cost, and routes only the genuinely hard slice to a stronger tier, on evidence, not a guess. The stronger tier is named, never called for you.
Yours when the network is not Bring your keys and it routes online. Bring your weights and a capable coder, one file just under 9 GB, runs offline on a plane, when the network is down.

How it compares.

Ordinary routerLocal runnerAgent harnessFlywheel
Routes to many providersYesNoSomeYes
Runs a local modelNoYesSomeYes
Works offlineNoYesNoYes
Accepts on an external checkNoNoNoYes
Re-checkable receipt per answerNoNoNoYes
Answers local, escalates the hard partNoNoNoYes
One root-hashed shared stateNoNoNoYes
Zero dependencies, one file to runVariesVariesNoYes

Run it now.

Zero dependencies, Python standard library only. Route online with your keys, or run fully offline against local weights.

python scripts/run_harness_cli.py app --port 8799

Then open the surface in your browser. One origin, one page, same-origin JSON routes.

Benchmarks, with the interval.

The model is Flywheel-Local-Coder-14B, a trained artifact with a full provenance chain, just under 9 GB at 4-bit. Hard set, ten tasks, every arm carrying its Wilson 95% interval and 100% receipt reproducibility.

ArmResultWilson 95% CIReceipts
single-shot8 / 10 (80%)[0.490, 0.943]100%
verified inference9 / 10 (90%)[0.596, 0.982]100%
best-of-49 / 10 (90%)[0.596, 0.982]100%
single + oracle8 / 10 (80%)[0.490, 0.943]100%

The honest null.

Verified inference beats single-shot by +0.100 here. The 95% interval on that difference is [-0.236, +0.420], which includes zero, and plain best-of-4 sampling ties it. So we do not claim a capability uplift.

What we do claim, and can measure: 100% receipt reproducibility, every accepted answer re-checks; pass parity with the models it routes to; availability on your own schedule, from weights you hold; and local cost. A tool that refuses to overclaim is a tool whose other claims you can trust.

Evidence: the running app serves the receipt at /artifacts/flywheel-local-coder-14b-benchmark-ci.json, re-checkable offline. The number moves the day the evidence does, not before.

Spec, at a glance.

Dependencies
None. Python standard library only.
Network
Your choice per call: route online with hosted-provider keys, or run fully offline against local weights.
Entry point
python scripts/run_harness_cli.py app --port 8799
Surface
One origin, one browser page, same-origin JSON routes.
Local model
Flywheel-Local-Coder-14B, ~9 GB 4-bit, GPU optional.
Accept authority
An external check. No learned model on the accept path.
Receipts
Content-addressed, re-checkable offline, on every accepted answer.

The replaceable half and the durable half.

Flywheel is the front surface of a verified-inference flywheel: propose with a cheap local model, dispose with an external check, keep the re-checkable receipt, and let what passes accumulate. The model is the replaceable half; the verification harness is the durable half.

The same discipline, an external check that can fail plus a receipt anyone can re-run, scales from routing a single call to composing a whole workshop of tools. This is the largest of them, and the front door to all of them.

Run it: github.com/HarperZ9/flywheel · the engine room · the workshop