Who it is forA developer or researcher who wants to measure how well a judge would filter their own past tool results.
The problemGeneric benchmarks do not reflect your own code and tool output, and testing a judge live costs money and needs keys.
The outcomeA scored report of a judge run against labeled results built from existing transcripts.
What you need first
- Python 3.10+
- uv installed
- Claude Code 2.1.260 or newer with function hooks enabled (early access)
- A Jev key from TypeSafe, or an Anthropic API key for the adapter judge
- Git to clone the repo
Steps
- Confirm that Claude Code transcripts exist under ~/.claude/projects.
- Run
uv run --project winnow/sidecar winnow replay run --judge lexicalfrom the clone. (inferred, check the README) - Use
winnow replaysubcommands such as extract, judge, score, sample, label, and agreement to inspect results. - Review the scored output for the judge you tested.
Prompt for your agent
In the winnow repo at <repo path>, run `uv run --project winnow/sidecar winnow replay run --judge lexical` against the transcripts under ~/.claude/projects. Report the scored output and confirm that no API key was needed.
Caveat. The README describes replay as offline and key-free for the lexical judge, but the README is truncated, so check the full replay options before relying on them.
Use this in your AI agent
Ask your agent
Using the Deduped MCP, get the setup steps for GhalebDweikat/winnow and "Score a judge on your own Claude Code transcript history"
Add Deduped to Claude Code once
claude mcp add --transport http deduped https://dedupedai.com/mcp
Every Monday: the 5 hottest repos and exactly how to use them. Free, one email a week, unsubscribe anytime.
Get them freeShare: X LinkedIn Hacker News Email Copy link
Third-party repos we don't own. AI-written use cases can be wrong. Disclaimer