Flywheel
One platform: routing, verification, the lane layer, the closed loop, and the projected world. The native desktop surface for accountable AI infrastructure.
Flywheel is the engine and native client for a verified-inference loop: a model perceives only through witnessed organs, acts only through a gate it cannot talk past, journals everything, and verifies its own work by re-perceiving.
The flagship tools (gather, crucible, index, forum, learn, telos) are lanes inside Flywheel, each a provisioned, health-checked organ reachable through one surface. Every agent tool call carries a sealed, chain-linked receipt a third party re-verifies offline.
Proof before trust.
What is in this repo
This is a monorepo containing both halves of the platform:
harness/is the Python engine: the gateway (localhost HTTP API), the agent loop, the receipt discipline, the lane layer, the verified-inference loop, the tool-call receipt system. Zero runtime dependencies (stdlib only).desktop/is the Flutter native client: 24 views, 50 widgets, zero webview embedding. Talks to the gateway over localhost. Launches a bundled frozen engine by absolute path on a clean machine (no Python, no PATH, no network).site/is a dev/CI fallback browser shell (not the primary UI).
Run it now
Start the gateway (the engine keeps the loop, receipts, lanes, and routing):
flywheel app --port 8799
The native surface is Flywheel Desktop. From a dev checkout:
cd desktop
flutter run -d windows --release
The gateway also serves a /site/index.html shell as a dev/CI fallback.
The lane model
Flywheel encompasses the tool family. Each flagship is a lane:
| Lane | Repo | Role |
|---|---|---|
| gather | gather | Research intake + provenance receipts |
| crucible | crucible | Falsifiable verification (MATCH / DRIFT / UNVERIFIABLE) |
| index | index | Workspace map + symbol graph + context envelopes |
| forum | forum | Witnessed causal ledger + model-agnostic routing |
| learn | learn | Accountable learning forge |
| telos | telos | The reconciliation lane |
Check their health through one surface:
flywheel lanes
flywheel lanes --probe # live MCP handshake per lane
The receipt discipline
Every agent tool invocation carries a sealed receipt binding:
- what the tool was (capability class: read / write / exec / external-mcp)
- what it was allowed to do (admission decision from the gate)
- what it actually did (witnessed args + output sha256 digests, never raw content)
- whether a stranger can re-walk it (offline-verifiable, chain-linked)
Receipts compose into a transitive-witness DAG where a drifted action degrades exactly its downstream dependents. The five flagships emit organ-bundle entries on a shared proof-surface spine so cross-tool receipts compose end-to-end.
The organizational learning loop
The layer above audit. The receipt discipline records what happened at machine resolution. The learning loop feeds forward: it derives lessons from witnessed divergences (an allowed action that rolled back, a memory whose source drifted, a graded failure), stores them in a durable, hash-chained, append-only memory, and surfaces recurring patterns as improvement candidates for human admission. A lesson is not a note an operator wrote; it is a claim bound by hash to its evidence, re-checkable offline, fail-closed when the evidence is gone. See docs/LESSON-LOOP.md.
Offline-first
The Flutter desktop GUI launches a bundled engine by absolute path and serves
its UI menu on localhost only. No external web address is contacted to show the
GUI. The gateway serves /api/* and the UI on http://127.0.0.1:8799.
Install
From source today (zero runtime dependencies, stdlib only):
git clone https://github.com/HarperZ9/flywheel.git
cd flywheel
pip install -e .
python scripts/run_harness_cli.py app --port 8799
pip install -e . puts the flywheel command on your PATH, so you can also
start the gateway with flywheel up.
The PyPI distribution name is flywheel-verify (the bare flywheel name is an
unrelated package); the installed command stays flywheel. After it is
published to PyPI:
pip install flywheel-verify
flywheel up
Documentation
- QUICKSTART.md: first ten minutes
- WALKTHROUGH.md: guided tour
- docs/LESSON-LOOP.md: the organizational learning loop (architecture)
- docs/GUIDE-LESSON-LOOP.md: the organizational learning loop (full guide and spec)
- docs/ASSESSMENT-AGENTIC-SECURITY-2026-08.md: Flywheel against the July 2026 agentic security convergence
- CREDO.md: the belief
License
FSL-1.1-MIT (Functional Source License). See LICENSE.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file flywheel_verify-0.3.0.tar.gz.
File metadata
- Download URL: flywheel_verify-0.3.0.tar.gz
- Upload date:
- Size: 1.2 MB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6bda38fa9982d770b6f5a2c2c68caeb7d27a1e604bf19a10baba86a2d1c9a7f2
|
|
| MD5 |
d50076a267445311b31455a47e5ee2a8
|
|
| BLAKE2b-256 |
2d6336e24bfb5e5aeb267799d59f3934a0f24f840448d19d5d53a056c2f42895
|
Provenance
The following attestation bundles were made for flywheel_verify-0.3.0.tar.gz:
Publisher:
publish.yml on HarperZ9/flywheel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flywheel_verify-0.3.0.tar.gz -
Subject digest:
6bda38fa9982d770b6f5a2c2c68caeb7d27a1e604bf19a10baba86a2d1c9a7f2 - Sigstore transparency entry: 2337362625
- Sigstore integration time:
-
Permalink:
HarperZ9/flywheel@75c85fdd08921a9dcc66133a52ea095a47e3021d -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/HarperZ9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@75c85fdd08921a9dcc66133a52ea095a47e3021d -
Trigger Event:
push
-
Statement type:
File details
Details for the file flywheel_verify-0.3.0-py3-none-any.whl.
File metadata
- Download URL: flywheel_verify-0.3.0-py3-none-any.whl
- Upload date:
- Size: 797.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d53c4332e0d95379c1803a35a130c84cd3a6d3483da7d08a33efcb34f13b1c63
|
|
| MD5 |
c46d4999e0ae379dbd8925faf2547032
|
|
| BLAKE2b-256 |
2c904b84ea7a10bc74d4289be19cd1dcbf3a28151f0c8d40abf8f569aabc54c8
|
Provenance
The following attestation bundles were made for flywheel_verify-0.3.0-py3-none-any.whl:
Publisher:
publish.yml on HarperZ9/flywheel
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
flywheel_verify-0.3.0-py3-none-any.whl -
Subject digest:
d53c4332e0d95379c1803a35a130c84cd3a6d3483da7d08a33efcb34f13b1c63 - Sigstore transparency entry: 2337362634
- Sigstore integration time:
-
Permalink:
HarperZ9/flywheel@75c85fdd08921a9dcc66133a52ea095a47e3021d -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/HarperZ9
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@75c85fdd08921a9dcc66133a52ea095a47e3021d -
Trigger Event:
push
-
Statement type: