Frog

Energy

What a coding task costs in watt-hours, measured on a Mac.

loading the results…

ModelSolvedWh per solved task, as a barWh / taskg CO₂e

Wh per task is every run's energy, failed attempts included, divided by the tasks passed. A model that needs three tries pays for all three.

Every run, drawn

Each bar is one run's energy on this Mac, above idle, grouped by task. A failed run is faded: it still cost energy, and it counts against the model's Wh per solved task.

How it's measured

The Mac's System Management Controller reports how much power the whole machine draws from its supply (PSTR, in watts). Frog reads it ten times a second, without root, and adds it up over each task.

What's left out

And some noise stays in: anything else the Mac does during a run lands in the measurement, and the idle baseline moves with it. A run whose baseline came in high can even read as zero. Runs are repeated, and the raw numbers are all below, so you can see the spread.

Hosted models are estimates

Nobody publishes measured energy per request for most models. For a hosted model, frog measures what the Mac spent (it still runs the tools and tests locally) and adds an estimate for the data center from the tokens used, per model:

modelactivemWh / 1k inmWh / 1k outsource

None of this accounts for prompt caching, which agent loops lean on heavily, or for how efficiently a provider serves a model, and later work finds widely cited per-query estimates are 4–20× higher than production-optimized serving (Joule, 2026). Read hosted numbers as the high end. They're marked ~ and hatched everywhere they appear.

Try a turn

What a turn of a given size costs on each model: measured rates for the models benched on this Mac, the estimates above for hosted ones. An agent turn usually reads far more than it writes, because every call re-reads the conversation.

—energy
—CO₂e, world average grid
—of a phone charge

Grid

Grams of CO₂e use the world's average electricity.

Every run

The bench's own export, with no paths or output. Idle and system energy are per run, so any figure above can be recomputed.

Runs
Download the JSON

Run it yourself

The suite and the bench are in the repository. On an Apple silicon Mac:

cargo run --release -p frog-bench -- run -m apple/on-device -r 3
cargo run --release -p frog-bench -- export ~/.local/share/frog/bench/<run>/results.jsonl

Close what you can first; the idle baseline is only as quiet as the Mac.