Open by default. Auditable by design.
The public ottto-ai/ottto runtime ships the daemon, the connector registry, and the SDK and testkit crates. The code that sees your usage is the code you can read.
Every source is a manifest you can audit.
A connector is a declared source plus registered collectors - no hidden scraping, no opaque binary. The ottto-connector-sdk crate gives you validation helpers; ottto-connector-testkit turns the manifests into passing tests. Source manifests declare identity and operations; collector manifests declare risk classes and raw-content policy.
- ✓Manifest-backed source + collector registry. Each connector declares what it reads and which collector runs it; the registry is the source of truth.
- ✓
ottto-connector-sdkvalidation helpers. Schema, capability, and policy checks you call from your own connector code. - ✓
ottto-connector-testkitmanifest tests. Drop in yoursource.tomland the testkit asserts it loads, validates, and round-trips. - ✓Review tiers official → community, with maturity levels. Every source and collector carries where it sits and how proven it is, surfaced before you enable it.
- ✓Collector risk classes & raw-content policy.
risk_classesanduploads_raw_contentlive on collector manifests, where the actual read behavior is declared.
ottto-service runs on your machine, on your terms.
It parses local transcript metadata into snapshots, holds setup keys in the macOS Keychain, and uploads schema-v6 usage snapshots through a relay device you register. It self-heals within approval boundaries - never blind remote control, never silent key rotation. The process that reads your usage is the process you compiled.
- ✓Transcripts → snapshots, locally. Parsing happens on-device; only the reconciled snapshot leaves.
- ✓Keys live in the Keychain. Setup keys are OS-protected, not in plaintext config.
- ✓schema-v6 exact-usage uploads. Sent via a relay device you explicitly register and can revoke.
- ✓Self-heals inside approval boundaries. It fixes itself within what you allowed - no blind remote control, no silent key rotation.
Two public repos. One install needs no account.
The runtime you install is open source. So is AI Provider Watch - the provider-change feed - which anyone can run on its own, with no Ottto account required.
The runtime you install: the local daemon, the connector registry, and the ottto-connector-sdk and ottto-connector-testkit crates. Local-first, inspectable, yours.
The provider-change feed for cost, quotas, token accounting, defaults, and deprecations. Run it with uvx ai-provider-watch. Ottto is the founding sponsor; consumers need no Ottto account.
Read the code, then run it.
The daemon, the connector registry, and the SDK are all in the open. Install the runtime, connect your accounts, and watch your AI coding spend reconcile - with nothing you can't audit.