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 privacy shows the exact record.

Claude Code Codex OpenCode Gemini CLI Kimi Code GitHub Copilot CLI
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.

See the board ↗Read the methodPrivacy

From your terminal to the public record

How it works

  1. Install once

    One line hooks into your tools. Nothing to configure.

  2. Work as usual

    Every session is measured locally: model, plan, tokens, errors, corrections and whether the code survived.

  3. See your own report

    nerfd report: your ranking, your costs, your windows.

  4. 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.

From a session to a weekly ranking A session flows into measure locally, redact, public record and ranked weekly. Prompts, code and paths never leave the machine. A sessionmeasure locallyredactpublic recordranked weekly Never leavepromptscodepaths
Counts, never conversations.
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.

Sessions
Reporter-weeks
Models
Sessions this week
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.

01

Tiers, last four weeks

Full scorecard ↗

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.

modeloverallqualityreliabilitysteeringsurvivalspeedvaluewasten
loading
02

Best at each kind of work

Every kind of work ↗

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…

03

Same weights, different host

Full provider board ↗

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.

04

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.

Explore this evidence on the board ↗

05

How hard people had to push

Full friction board ↗

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.

modelnsteering %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.

06

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.

planpricesessionssuccessesapi-equivmultiple$ / successhit limitreporter-weeks
loading

Explore this evidence on the board ↗

07

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·clean

Missing 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