Headroom
Seat & spend intelligence For AI coding tools

Know your team’s
headroom.

Forty-eight hours. If the seat picture is not useful, you pay nothing.

Headroom shows what Claude, Grok, Cursor, Copilot and Codex cost per developer, repo and model — and which plan each seat should actually be on. Read-only, out of your request path.

Hosted

Work email. No card. You’ll know in 48 hours. Privacy · Terms. From the author of ksred.com.

Headroom · renewal reportplatform-eng · Aug 2026
amaraMax 20×Max 5×peak 41% of limit
devProMax 5×2.1× plan price
tomMax 5×holdwell matched
marcTeam seatremoveunused 19 days
Net change−$174 / mo
Fig. 02 One page. Forward it to finance.
01
Built for the budget owner

Three questions.
Answered, not charted.

Dashboards report. Headroom recommends. It exists for the engineering manager who signs the renewal, not the SRE who tunes the collector.

Q.1

What is this costing us?

Live spend by developer, model, repo and tool — including subscription seats, not just API tokens. "The migration cost $1.4k in AI this month" becomes a sentence you can say out loud.

Q.2

Is every seat worth it?

Utilisation per seat, flagged before the renewal date, not after. One ghost seat at $125 a month pays for Headroom several times over.

Q.3

What changes at renewal?

A per-developer recommendation — API, Pro, Max 5×, Max 20× or a Team seat — built from real volume against each plan’s published price. Export it, forward it to finance, done.

02
What you get

The instrument panel for AI coding spend.

Flagship

The plan optimiser & renewal report

Headroom watches real usage against every plan’s published price, then tells you — per developer — what each seat should be on. The output is a one-page report your finance team actually reads.

Fig. 01 Per-seat daily spend against budget. One runaway agent, one dead seat.
01

Budgets & clip alerts

Set a monthly budget per team or repo. Spikes, out-of-hours agent runs and unfamiliar repos raise a clip alert in Slack before the invoice does.

02

Per-repo attribution

Spend rolls up by repository from attributes the installer sets at launch. Claude does this today. Grok CLI currently ignores them, so those sessions land as untracked until that changes.

03

Privacy by architecture

Metrics only — no prompts, no code, no keystrokes. Aggregate views by default and no productivity leaderboards. Works-council friendly.

04

Five tools, one view

Claude, Grok, Cursor, Copilot and Codex — one neutral panel no single vendor will ever give you.

03
Installation

One line. Five minutes.

Claude Code, Grok CLI, Copilot and Codex already emit OpenTelemetry. Headroom is the endpoint that turns it into answers — no Grafana, no PromQL, no agent to deploy. Cursor Enterprise points its own exporter at the same URL.

Step 01

Point the tools at Headroom

One line in your shell. It writes the exports to your profile and, for Claude and Codex, tags each session with the repo it ran in.

# any shell — the key comes from Headroom, under Settings curl -sL https://app.getheadroom.co/install | sh -s -- --key hr_ingest_xxx
That’s the install
Rather set them yourself, or ship an MDM policy?
CLAUDE_CODE_ENABLE_TELEMETRY=1 OTEL_METRICS_EXPORTER=otlp OTEL_LOGS_EXPORTER=otlp OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf OTEL_EXPORTER_OTLP_ENDPOINT=https://app.getheadroom.co OTEL_EXPORTER_OTLP_HEADERS=x-headroom-key=hr_ingest_xxx

All six, plus GROK_EXTERNAL_OTEL=1 and COPILOT_OTEL_ENABLED=1 — the installer writes those too. The claude wrapper sets OTEL_RESOURCE_ATTRIBUTES from your local checkout; that is the per-repo breakdown. Grok CLI currently ignores those attributes, so Grok sessions land as untracked. Cursor is not a shell tool: point its Enterprise OTEL exporter at the same endpoint and key.

Step 02

Metrics flow, read-only

Token counts, costs, models, session and repo attributes. Never prompts, never code, never in the request path. Nothing changes about how anyone works, and nothing breaks if we go down.

Step 03

Get answers, not charts

Spend meters per seat and budgets with clip alerts in Slack — from the first day of data. The renewal report needs seven days before it will recommend. No dashboard to build.

04
Run it your way

One binary. Two homes.

Option A · Hosted

We run it

Paste an endpoint, watch the meters move.

  • Data in five minutes, no infrastructure
  • UK hosting (London), metrics-only retention
  • Slack alerts, weekly digest, renewal reports
  • Per-seat pricing, cancel any time
Option B · Self-hosted

Your tin, your rules

The same single Go binary, plus a licence key.

  • Telemetry never leaves your network
  • Postgres you already run; a systemd unit or the binary itself
  • No phone-home, no seat beacon
  • Annual licence, updates included
05
Pricing

Cheaper than one wrong seat.

Table 1 — Editions
EditionPriceIncludes
HostedFree$0One seat, 30-day history
HostedTeam$8 / seat / mo$80 / seat annuallyMinimum 5 seats, unlimited history. Work email, no card. If the seat picture is not useful, you pay nothing.
HostedBusiness$16 / seat / moSame product as Team, as a named commercial tier
Self-hostedTeam$600 / yearUp to 25 seats, updates included
Self-hostedScale$1,200 / yearUp to 100 seats

A premium AI coding seat runs $100–125 a month. Headroom finding one unused seat, or one developer on the wrong plan, covers a year of either edition.

Fig. 03 · Ready reckoner

Set your team size.

Developers 20
AI coding seats, per year $24,000
Headroom hosted Team, per year $1,920
Pays for itself at 2 wrong seats

Assumes $100 per developer per month for a premium AI coding seat. Self-hosted works out cheaper above roughly 7 developers.

Hosted

Forty-eight hours.
If it is not useful, you pay nothing.

Work email. No card.

No newsletter, no drip sequence. Privacy · Terms · Security.