Real sessions. Measurable outcomes.
The public record of how AI models actually perform on real work.
nerfd captures what happens when developers use Claude Code, Codex, OpenCode, Gemini CLI, Kimi Code and other terminals on real code, then ranks models by outcome, not benchmark: quality, reliability, steering, survival, speed and value. It also tells you what your subscription actually bought.
Ranked by what happened
Six criteria from real work, with the evidence beside each rank.
Priced by what you got
Subscription multiple, cost per success, tokens per window.
Private by construction
Counts, never conversations.
nerfd privacyshows the exact record.
curl -fsSL https://nerfd.org/install.sh | sh
Only redacted metrics are sent. nerfd privacy shows exactly what; nerfd share off stops it. Privacy details.
From your terminal to the public record
How it works
Install once
One line hooks into your tools. Nothing to configure.
Work as usual
Every session is measured locally: model, plan, tokens, errors, corrections and whether the code survived.
See your own report
nerfd report: your ranking, your costs, your windows.Add to the public record
A redacted record per session, ranked weekly with sample sizes and bands.
How the tables rank
- Quality
- Mean rating from the person who did the work.
- Reliability
- Share of sessions with no errors, rate limits, interrupts or model switches.
- Steering lower is better
- Corrections, re-prompts and pushback per turn.
- Survival
- Share of added lines still present an hour later.
- Speed lower is better
- Median response latency.
- Value lower is better
- Cost per successful session.
Each criterion, relative to the best: S ≥ 92% · A ≥ 78% · B ≥ 60% · C < 60%
Overall, from the composite score: S ≥ 80 · A ≥ 65 · B ≥ 50 · C < 50
At least ten sessions for a public tier. Every badge shows its underlying number.
nerfd privacy shows the exact record.This week in one look
Loading this week’s record. Ratings, measured outcomes and sample sizes will explain what can be compared.
How to read this
- Quality — optional human rating, 1–5. Rate a finished session with
/nerfd 4 kept. - Reliability — share of clean sessions: no errors, rate limits, interrupts or model switches.
- Steering — corrections, re-prompts and pushback per user turn; lower is better.
- Survival — share of added code still present after an hour; measured by
nerfd check. - Speed — median response wait; lower is better, and tools report it differently.
- Value — USD per measured success; lower is better, with local estimates kept separate.
Score blends rating, survival and clean sessions; missing parts are reweighted. A score without ratings is not a quality verdict. n counts sessions, not ratings. Public tiers need 10 sessions; scores need 3.
A band spans the middle half of observations. API-equivalent estimates list-price token cost, not your bill. A multiple divides that value by period plan cost. A reporter-week is one person in one week, not a unique person across weeks. An assumed plan applies today’s plan to older sessions without a recorded plan. Friction means interruptions and extra direction; a wall hit means a usage limit stopped work.
English-language signals are heuristics, sensitive to task, tool and reporter habits. Small samples describe this record, not all users. Select any ? for a definition or a missing value for its reason.
Loading the observations for this section; if unavailable, refresh to try again.
Relative to the best model in the field on each criterion. A tier needs at least ten sessions. Each badge includes its underlying number.
| model | overall | quality | reliability | steering | survival | speed | value | waste | n |
|---|---|---|---|---|---|---|---|---|---|
| loading | |||||||||
Loading the observations for this section; if unavailable, refresh to try again.
The same tiering, run inside each kind of work. A model can lead at debugging and trail at UI. Each card links to the board filtered to that work.
Loading kinds of work…
Loading the observations for this section; if unavailable, refresh to try again.
Open models are served by many providers at different quantisations. The scorecard keys on model, provider and quantisation, so they are never averaged together.
No provider data yet. Open-model sessions from OpenCode, Goose, Kimi Code, Crush and Aider populate this board.
What a plan actually gives you
Loading the observations for this section; if unavailable, refresh to try again.
Measured from real sessions: how many tokens a window holds, how much people use, how often they hit the wall, and what that costs per dollar. Bands, not points; every estimate carries its n.
Last eight weeks · USD · ranked by median tokens per dollar
No window data yet. Codex sessions and Claude Code with the status-line sampler populate this.
Loading the observations for this section; if unavailable, refresh to try again.
Counts derived on your machine from how the conversation went: corrections, re-prompts, pushback, frustration, clarifying questions. No text ever leaves the machine.
| model | n | steering % | corrections % | re-prompts % | frustration % | pushback % | clarifications % | edits w/o read % | abandoned % |
|---|---|---|---|---|---|---|---|---|---|
| No friction data yet. Conversation signals will appear as sessions are shared. | |||||||||
Lower is better. “–” means unavailable.
Subscription value
Loading the observations for this section; if unavailable, refresh to try again.
The plan is detected from each tool's own config, never typed in. We count what it delivered: successful sessions, hours, the API-equivalent value of the tokens, and how often they reached a rate limit. Medians across reporter-weeks, with the plan price charged pro-rata.
| plan | price | sessions | successes | api-equiv | multiple | $ / success | hit limit | reporter-weeks |
|---|---|---|---|---|---|---|---|---|
| loading | ||||||||
How it works
Your sessions produce local counts; sharing sends redacted metrics, never prompts or code.
Collected automatically, per session
- model, reasoning effort, tool version, plan tier
- task category (inferred, overridable), task size, repo language and size bucket
- prompts, turns, tool calls, edits, tests run, errors, rate-limit hits, timeouts
- interrupts and mid-session model switches
- token totals and latency percentiles
- code survival: how much of what the session wrote is still there an hour later
Never shared
- prompts, code, diffs, file paths, repo names
- notes you type, your identity, your email
- anything at all until you run the installer or nerfd share on
Optional, two seconds
/nerfd 4 kept "solid refactor, one retry"Works inside Claude Code and Codex. From a shell: nerfd rate last 4 kept.
Score
score = 0.55·rating + 0.30·survival + 0.15·cleanMissing parts are dropped and weights renormalised. Fewer than three sessions is never scored. The scorecard shows sample sizes and 95% intervals for the good-session rate.
Drift
Each model's current week is compared with its trailing four weeks on rating, clean rate and latency. A flag needs |z| ≥ 2 and five sessions. Effort level and tool version are recorded so a change can be attributed to the harness, not just the weights. This is change detection, not accusation.
Other tools
Anything that can run a shell command can report. Same schema, same redaction.
nerfd record --tool aider --model gpt-6 --cat debug --duration 840 --rating 4 --kept --tokens-in 120000 --tokens-out 9000