For teams reporting on AI's footprint

Your AI usage has a footprint. Now it has a number.

saive turns your OpenAI, Anthropic, and Google API calls into a defensible energy and carbon estimate — reported automatically, in three lines of code, without ever seeing a single prompt.

This month · gpt-4o-mini, search service
[2.1 – 11.8]kg CO2e
Shown as a range, because that's how much we actually know.
Energy0.9 – 4.6 kWh
Water (derived)4.4 – 22.5 L
Events tracked48,209
The entire integration

Two lines before your existing code. Nothing else changes.

saive patches the client library in place, reads the token counts off the response object, and reports in the background on its own thread. Your request path never touches saive.

import saive saive.init() # reads SAIVE_API_KEY from the environment from openai import OpenAI client = OpenAI() # unchanged from here on

No key set? saive.init() quietly does nothing. Network down? Your call still goes through like normal — you just miss a report, not a request.

How it works

From API call to a number you can put in a report.

01

Install

One package, one env var, one call to saive.init() before you import the provider SDK you already use.

02

Report

Model, token counts, and timing get bundled up and sent in the background. Never your prompts. Never your completions.

03

Compute

Impact factors come from EcoLogits, versioned per release. We don't make up the numbers, and we don't tune them to look better.

04

See

A dashboard with ranges, breakdowns by model and team, and plain-language observations on where usage runs hot.

Why trust the number

The constraints that keep the estimate honest.

Most of what saive refuses to do is the point.

[ ]

Ranges, never point estimates

Every figure ships as a band, not a single number. A dashboard reading "4.7 kg CO2e" sounds more precise than it is — "2.1 – 11.8" is what the data actually supports.

No content, enforced at the schema

Any payload containing a prompt or completion field is rejected before it's stored. Not a policy — a validation rule the ingest endpoint can't be talked out of.

Not a proxy

saive never sits between you and the API. No latency hit, no outage risk, and it never touches your provider keys. Usage gets reported after the fact, from a background thread.

§

Sourced, not invented

Coefficients come from EcoLogits, an open, published methodology — never forked, tuned, or adjusted. Every export names the exact factor set version behind its numbers.

Funding

Free to use. Run at cost.

saive is free — unlimited events, keys, and seats, for everyone. It costs a modest server bill to run each month, and we ask the people who find it useful to help cover that. Nothing more, no tiers, nothing gated behind a plan.

If a feature exists only to work out what someone owes us, it doesn't belong in saive — and so far, nothing does.

Contribution

Fund tree planting, separately.

Alongside your usage report, you can fund tree planting through Tree-Nation, at cost — saive takes nothing from it. It's tracked as its own number, on its own ledger, and it is never subtracted from your footprint.

There's no real math that turns a tree into a kilogram of CO2e — so we won't pretend there is.

Get started

Three lines of code. One honest number.

Install the client, point it at your key, and watch the first estimate land in your dashboard.