Open standard · MIT · v0.1

Carbon governance for AI agents. In one Markdown file.

Your agents measure their own inference emissions, follow a policy you set, fund verified carbon removal, and leave a public receipt. Not a dashboard. A file.

npx carbon-md init
Read the spec → View the live ledger
The loop

Measure → govern → contribute → prove.

Four steps, each provable. The measurement belongs to the agents; the policy belongs to the humans.

01

Measure

Every model call is captured and turned into a CO₂e estimate — shown as a range, never a false-precise number.

02

Govern

A carbon.md file sets the contribution target, budget cap, and approval threshold. Agents obey it.

03

Contribute

Emissions are matched by verified carbon-removal purchases — monthly, confirm-first. Agents never overspend.

04

Prove

Every retirement gets a public receipt. The badge links to a ledger — not to a vibe.

The file

Humans write the policy. Agents execute within it.

Think AGENTS.md, but for your agents' carbon. Readable by people, parseable by tools, obeyed by the agents it governs — committed right in your repo.

carbon.md
---
carbon_md: "0.1"
policy:
  contribution_target: 1.10   # match 110%
  portfolio: removal-weighted
  monthly_budget_max: { amount: 25, currency: USD }
  approval_above:   { amount: 10, currency: USD }
reporting:
  public_ledger: true
---
# Carbon Policy — my-project
Why it's different

Honesty as architecture.

Carbon claims are a minefield — and from September 2026, some become illegal in Europe. We built the honesty in as structure, not as tone.

├●┤ Estimates are ranges

Cloud inference is a black box. The ledger reports a low, a central, and a high — and holds the uncertainty open instead of faking precision.

No neutrality theater

Nothing here is “carbon neutral.” Emissions are measured, then matched by verified carbon-removal contributions. Receipts are public.

Provable, or nothing

Every contribution links to a real retirement certificate. Cache-read tokens are recorded but excluded — we under-claim rather than inflate.

Interoperable

A protocol, not a scraper.

If your agent already tracks tokens, it already speaks carbon.md — one JSON line per call, or OpenTelemetry straight in.

Claude Code Codex CLI LiteLLM OpenRouter LangGraph CrewAI anything OpenTelemetry
Intra-action

It measured its own creation.

The first emissions carbon.md ever tracked were the sessions that built it — an agent and a human, leaving a ledger the finished tool then read as its own. It's live, and still counting.

Ship it

Make your agents accountable.

Free and open forever. Standards only work when nobody owns the gate.

npx carbon-md init
Star on GitHub ★npm: carbon-md