Skip to main content

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

pip install flywheel-verify
flywheel up

flywheel-verify is the PyPI distribution name (the bare flywheel name is an unrelated package); the installed command is flywheel. Zero runtime dependencies, stdlib only.

No model download required. The engine is ready for real work the moment it installs: point it at any hosted provider you hold a key for (the roster reports credential presence only, never values) and every route carries the same receipt discipline. Local models get the same support and stay optional: ollama needs no extras at all (the gateway talks to it over HTTP), the published 14B and 32B weights are separate downloads for when you want them, and the local HF serve/training stack installs with pip install "flywheel-verify[local]". Receipt signing and egress monitoring have their own extras ([signing], [monitor]); receipt verification stays stdlib-only.

Subscription sign-in is wired in: flywheel auth login <provider> runs a stepwise flow (documented PKCE where the provider sanctions it, the provider's own official tool where it does not), stores the token in the OS credential store, and the router picks it up with no further setup. See GETTING-STARTED.md.

Or from source:

git clone https://github.com/HarperZ9/flywheel.git
cd flywheel
pip install -e .
python scripts/run_harness_cli.py app --port 8799

The native desktop app ships as a Windows installer with the engine bundled (no Python needed): download Flywheel-Setup-<version>-x64.exe from the releases page and verify it against the release's SHA256SUMS.txt.

Documentation

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

flywheel_verify-0.3.6.tar.gz (1.2 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

flywheel_verify-0.3.6-py3-none-any.whl (806.5 kB view details)

Uploaded Python 3

File details

Details for the file flywheel_verify-0.3.6.tar.gz.

File metadata

  • Download URL: flywheel_verify-0.3.6.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

Hashes for flywheel_verify-0.3.6.tar.gz
Algorithm Hash digest
SHA256 aec68cdc78218a325a0e3e0f3e390ba8b46bae7442735dabca3b1c9dd766e243
MD5 635e6be9727091ff894745ca8f412b83
BLAKE2b-256 514e3cd52b37198209f57fce9d8ebe064e1b91043a6c4534a8fe7e3d299916ee

See more details on using hashes here.

Provenance

The following attestation bundles were made for flywheel_verify-0.3.6.tar.gz:

Publisher: publish.yml on HarperZ9/flywheel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file flywheel_verify-0.3.6-py3-none-any.whl.

File metadata

  • Download URL: flywheel_verify-0.3.6-py3-none-any.whl
  • Upload date:
  • Size: 806.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for flywheel_verify-0.3.6-py3-none-any.whl
Algorithm Hash digest
SHA256 649c5f973deb17cd343ce4b51a0dc72e682a390d7c7609b7e81d69d1a3d600c4
MD5 8077f9acbb9b55361838c1278a99203e
BLAKE2b-256 2273ce31cb3640bdccb8e42508953dbfe6d36a358e9439823d105b490327b7b7

See more details on using hashes here.

Provenance

The following attestation bundles were made for flywheel_verify-0.3.6-py3-none-any.whl:

Publisher: publish.yml on HarperZ9/flywheel

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page