↑↓ chooseEnter openEsc close

In the open • every run

Results

One of our research questions: how much real work can a small local model do on a long, loosely described task?

We measure purr on public benchmarks, with the settings the other harnesses were run with. The numbers come straight from the purr repo, with sample size and margin.

Every published run, newest first. The result is pass@1 (the share that passed), ± is the standard error over tasks. Bar: 0 to 100%, two points per cell.
DateBenchmarkTasks × triesResult±BarNote and source
Terminal-Bench 2.1purr 0.5.0+fae805189 × 182.0%± 4.1The best published run. No timeouts, no errors, cost $3.84. Source
Terminal-Bench 2.1purr 0.5.0+073657889 × 180.9%± 4.2One timeout and one error, cost $4.52. Source
Terminal-Bench 2.0, quick runpurr 0.3.1+3dde07820 × 175.0%± 9.9The same 20 tasks from version to version. Wide margin: compare only with other quick runs, not full runs. Source
DeepSWE 1.1, stoppedpurr 0.4.0+bd79ea448 / 113 graded56.2%—Stopped by hand: a bug capped purr at 150 steps instead of 500. Fixed; it hasn't been rerun yet. Not comparable. Source
purr bench, own taskspurr before 0.39 × 18 / 9—Not official. OpenCode on the same model: 7 / 9. The tasks were written alongside purr, so a task either way is noise. Source

Every run above uses an API model (DeepSeek V4.1 Flash), because that's what the reference scores were published with. They show whether purr holds up on a public benchmark. Results for the small local models purr is really built for haven't been published yet.

Next to other harnesses

Same benchmark, same model, scores as their makers published them. It isn't a level race: theirs are full runs with no margin given, ours is our best one-try run, and in our runs the task container had network access.

How to read it: the short cells in purr's row are the uncertainty. Six of the nine published scores fall inside it or on its edge; the top three (88.0 to 90.6%) are clearly above it. Two tasks can't be passed by anyone right now (their grader's Debian mirror is gone); of the other 87, purr passed 73 (83.9%).

Source and every try

Terminal-Bench 2.1, 89 tasks, model DeepSeek V4.1 Flash. Bar: 75 to 95%, half a point per cell.
HarnessTries per taskpass@1Bar
DSH Minimalnot given90.6%
mini-SWE-agentnot given90.3%
Claude Codenot given88.0%
Pinot given86.1%
DSH Standardnot given85.8%
DSH PTCnot given85.8%
OpenCodenot given85.0%
Codexnot given84.1%
Ante583.9%
purr ours, best one-try run182.0% ± 4.1

How runs are done • hardware

Method

How the runs are done, so a result can stand next to the others and be checked.

Runner
Harbor, the runner the public leaderboards use. Each task in its own Docker container, purr exactly as shipped, and the commit recorded with every try.
Model
DeepSeek V4.1 Flash from DeepSeek's own host, with no fallback hosts, since some of those serve it at lower precision.
Settings
Temperature 1.0, top_p 0.95, up to 64k tokens per reply, 1M context, 500 model calls and each task's own time limit. As close as we can get to DeepSeek's own comparison.
Scoring
pass@1 is the average share of tries that passed. Timeouts and errors count as fails, as on the leaderboards. ± is the standard error over tasks.
Differences
On Terminal-Bench the task container's network is open in our runs and was closed in DeepSeek's, so tasks that download something are easier for us. One try per task is less precise than a full run with several tries.

Hardware

The benchmark runs use an API model, so our own machine mostly affects the times. The purr bench runs and local models:

CPU
AMD Ryzen 9 5900X
Memory
32 GB
GPU
NVIDIA RTX 4080 (16 GB)
OS
Arch Linux
Local models
Ollama

docs/benchmarks.md

In English, in the purr repo

Notes

Index of github.com/rephyr/purr
NameLast modifiedDescription
../The repository root
README.mdWhat purr is, installing it, the modes, and why small models do better in it
docs/guide.mdEvery command, mode and setting
docs/benchmarks.mdHow purr is measured: purr bench, the chat bench and the real benchmarks
benchmarks/terminal-bench/README.mdTerminal-Bench: how it's run, and the results version by version
benchmarks/deepswe/README.mdDeepSWE: how it's run, and the stopped run
benchmarks/purr-bench/README.mdpurr bench: our own small tasks, not official
CHANGELOG.mdChanges by version
The Mrrp Research seal: the badge's face in a ring reading MRRP RESEARCH, OPEN AGENTS, OWN YOUR AI.