The daemon never moves. Cloud reads a copy.
Halton Meter Cloud is the hosted SaaS tier at app.haltonmeter.com. It pairs
with the local-binary halton-meter daemon (free, on PyPI) and rolls captured
LLM API spend up across a team. The cloud is strictly opt-in — the daemon
ships with cloud.enabled = false, and nothing leaves the machine until you
run halton-meter cloud connect and approve the pairing in the browser.
The cloud lives at:
- Dashboard:
https://app.haltonmeter.com - Backend API:
https://api.haltonmeter.com - Pairing approval:
https://app.haltonmeter.com/connect?code=...
The relationship to the daemon: the daemon’s local SQLite at
~/.halton-meter/db.sqlite remains the source of truth for every captured
request. Cloud sync copies a tier-gated subset of those rows to a Postgres
database — the daemon’s local data is never moved, never deleted, never
mirrored back. If you disconnect, the local data and reports keep working
exactly as before.
What Cloud adds
The local daemon already does the heavy lifting: TLS interception, project attribution, cost computation, terminal reports. The cloud adds the three things one local daemon cannot do alone.
Cross-machine team rollups
Pair every developer’s local daemon into one hosted workspace. The cloud
dashboard at app.haltonmeter.com/[workspace]/overview shows aggregated
spend across every paired machine — by project, by developer, by model,
by provider. No N-laptops-to-track-separately. One dashboard, one cost
model, one workspace.
Reconciliation against provider invoices
Match your captured spend against the actual invoices each provider sends.
The reconciliation view (app.haltonmeter.com/[workspace]/reconciliation)
shows three columns per period: what you logged, what the provider billed,
the variance. When the delta is meaningful, the audit log gives you the
exact requests to investigate.
In practice on cache-heavy Claude workloads the delta is under $0.20 on a $300 month after v0.2.0’s cost-recompute fix. Methodology is public — see Pricing methodology.
Branded PDF cost reports
Every project produces a client-ready PDF cost report on demand. White
paper, orange brand strip, table of projects × models × tokens × cost,
methodology footer linking back to haltonmeter.com/docs/concepts/pricing.
Generated server-side via WeasyPrint; downloadable from the project
report view. Use it to invoice clients, share with finance, or attach
to a procurement request.
Audit log of every captured request
The audit view (app.haltonmeter.com/[workspace]/audit) logs every
captured request, every config change, every membership update — with
the actor, the timestamp, and the affected resource. Queryable,
exportable, and the answer to “show us how this number was computed”
when a client asks.
Continuous optimisation recommendations
The optimisation view analyses your last 30 days of synced data and
quotes a number: “swap Claude 3.5 Sonnet → Claude Haiku 4.5 on
acme-batch-summariser and save $42/month.” Recommendations come from
realised usage patterns, not synthetic benchmarks — they only fire when
your traffic shape supports them.
What stays local
The same things that stayed local before pairing stay local after:
- Your TLS root CA. The daemon’s mitm root never leaves the machine.
It is generated on
halton-meter init, stored in~/.halton-meter/mitmproxy-ca.pem, and trusted only on this machine. - The full SQLite store.
~/.halton-meter/db.sqliteis canonical. Cloud sync reads from it, never writes to it, never deletes from it. - Captured request bodies. Bodies are NOT synced by default. They
stay in the local store until you opt them in per-project via
halton-meter cloud privacy set bodies.enabled true. See Sync and retention for the consent model. - Local paths and workdir. The default
[cloud.upload]preset isstandardwithsource_workdir = false— the high-leak field (your absolute filesystem path) is off by default. Cloud sees project slugs, not paths.
If the cloud is unreachable or unhealthy, the daemon continues capturing to local SQLite uninterrupted. Sync resumes when the backend returns. The cloud is observation infrastructure layered on top of a local-first product; it cannot break the daemon’s hot path.
When you don’t need it
Cloud is the wrong choice when:
- You are one developer, on one machine, not billing clients. The
local daemon plus
halton-meter reportalready answers every question the cloud answers, and the local dashboard atlocalhost:3000is Apache-2.0. - Your data cannot leave your network. Even with
standardpreset, metadata syncs to AWS-hosted Postgres ineu-west-2. Regulated environments should look at the Enterprise on-premises plan — same product, your infrastructure, no outbound telemetry, air-gap supported. Seeapp.haltonmeter.com/enterprise. - You only want the captured-cost number, not the reports. The
daemon’s terminal report (
halton-meter report --since 30d) prints the same breakdown the cloud overview shows. The cloud adds sharing, reconciliation, and PDF exports — if you do not need those, you do not need the cloud.
Pricing
- Solo $16/month (annual) · $19/month (monthly) — 1 seat, 1 workspace, 10 projects, 90-day history, branded PDF reports, reconciliation, email support.
- Team $99/month annual (10 seats included) · $120/month monthly — shared workspace, cost centres, team reports, member-level attribution, 12-month history, SSO (Google · GitHub), priority support. Additional seats charged separately.
- Business+ — annual contract, SAML/SCIM, audit-log streaming, custom report branding, dedicated Slack Connect.
- Enterprise (on-premises) — your infrastructure, air-gap supported, zero outbound telemetry, GDPR/HIPAA/SOC 2 ready architecture.
Start at app.haltonmeter.com.
See also
- Connect your meter — pair the local daemon
- Workspaces — team workspaces, invitations, roles
- Sync and retention — what syncs, retention windows, opt-in body sync
- Cloud dashboards — overview, reconciliation, optimisation, reports
- Cloud security — auth, encryption, data handling
- Local-only guarantee — the daemon’s local-only contract
- First captured request — verify the local install before pairing