Built for people, not platforms
Our agents work for the person at the keyboard. purr reads your project, edits files, runs the tests and tells you what it did. It asks before every edit and command, unless you've allowed them.

Independent AI lab • Tampere
Mrrp Research is an independent AI lab in Tampere. We build open-source agents and the tools around them. We made purr, a coding agent that runs on your own machine, with the model you choose.
We're on a mission to make capable AI that people own, run and understand.

Our agents work for the person at the keyboard. purr reads your project, edits files, runs the tests and tells you what it did. It asks before every edit and command, unless you've allowed them.

Run it on your own machine with Ollama, llama.cpp, LM Studio or vLLM, or point it at an API model you pick. /private keeps everything local: no web, no saved chat. No telemetry, no account.

The code is MIT-licensed, and every benchmark run is published with its sample size, margin and source, the stopped one included. 5 runs so far.

Our first agent • rephyr/purr
purr is a coding agent for the terminal. It runs on your own machine, gets real work out of small local models, and works with API models too.




code does the workask looks, never changes anythinglearn leaves the key lines to youpair you take turns, one step eachplan a big model plans, a small one doeschat · create talking, ideas and writing/private switches to local models only: no web, and the chat isn't saved. purr never sends telemetry and needs no account.curl -LsSf https://raw.githubusercontent.com/rephyr/purr/main/install.sh | shor uv tool install git+https://github.com/rephyr/purr

In the open • every run
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.
| Date | Benchmark | Tasks × tries | Result | ± | Bar | Note and source |
|---|---|---|---|---|---|---|
| Terminal-Bench 2.1purr 0.5.0+fae8051 | 89 × 1 | 82.0% | ± 4.1 | The best published run. No timeouts, no errors, cost $3.84. Source | ||
| Terminal-Bench 2.1purr 0.5.0+0736578 | 89 × 1 | 80.9% | ± 4.2 | One timeout and one error, cost $4.52. Source | ||
| Terminal-Bench 2.0, quick runpurr 0.3.1+3dde078 | 20 × 1 | 75.0% | ± 9.9 | The 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+bd79ea4 | 48 / 113 graded | 56.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.3 | 9 × 1 | 8 / 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.
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%).
| Harness | Tries per task | pass@1 | Bar |
|---|---|---|---|
| DSH Minimal | not given | 90.6% | |
| mini-SWE-agent | not given | 90.3% | |
| Claude Code | not given | 88.0% | |
| Pi | not given | 86.1% | |
| DSH Standard | not given | 85.8% | |
| DSH PTC | not given | 85.8% | |
| OpenCode | not given | 85.0% | |
| Codex | not given | 84.1% | |
| Ante | 5 | 83.9% | |
| purr ours, best one-try run | 1 | 82.0% ± 4.1 |
How runs are done • hardware
How the runs are done, so a result can stand next to the others and be checked.
The benchmark runs use an API model, so our own machine mostly affects the times. The purr bench runs and local models:
In English, in the purr repo
| Name | Last modified | Description |
|---|---|---|
| ../ | The repository root | |
| README.md | What purr is, installing it, the modes, and why small models do better in it | |
| docs/guide.md | Every command, mode and setting | |
| docs/benchmarks.md | How purr is measured: purr bench, the chat bench and the real benchmarks | |
| benchmarks/terminal-bench/README.md | Terminal-Bench: how it's run, and the results version by version | |
| benchmarks/deepswe/README.md | DeepSWE: how it's run, and the stopped run | |
| benchmarks/purr-bench/README.md | purr bench: our own small tasks, not official | |
| CHANGELOG.md | Changes by version |

AI for companies • quoted per project
Capable AI that your company owns. We first find where it really helps, build only that, on your own hardware or a service in the EU, and teach your team to run it.
We go through where your time goes and tell you plainly where AI helps and where it doesn't. You get a written summary and a proposal for the smallest sensible first step.
Price quoted per project
An assistant and document search that run entirely on your own computer or server, so company data never leaves the building. When nothing goes out, many GDPR questions never come up. It's the same idea as purr's private mode.
Price quoted per project
We pick an open model that suits your hardware, install it (Ollama or llama.cpp, for example), connect it to your team's tools and show people how to use it. We also tell you what a small model can't do.
Price quoted per project
A website assistant that answers customers from your own pages and documents and hands over to a person when it doesn't know. Automations for routine work: sorting incoming email and requests, drafting quotes from quote requests, moving data between tools. A person always approves before anything goes out.
Price quoted per project
An agent for a task you repeat: a coding agent for your own code, a reviewer or a reporter. purr shows how we build them: limited tools, checks after every step, and a person decides.
Price quoted per project
You get the price in writing before any work starts, and bigger work is split into phases, each with its own fixed price. We're not VAT-registered (Finnish VAT Act, section 3), so no VAT is added.
You tell us what you do and what takes the time. We say straight away if AI isn't the right tool for it.
We look at the work and the material. You get a summary and a fixed price for the next phase.
We test the model on your real documents and tasks, so you know what it can do before anything more gets built.
We build it, put it to use and teach the team. The documentation stays with you.
Models and tools move fast. We update and check that everything still works.
You choose: entirely on your own hardware, a service hosted in the EU, or a large API model when the data isn't sensitive. We tell you each option's cost and limits up front.
For a well-defined task it often is; for long, vague work less so. That's exactly what we study. We try it on your own material before recommending anything.
It depends on the model and the use. We run our own tests on a machine with one RTX 4080 graphics card (16 GB). The audit says what your use needs, and an existing machine may do.
Not in what we build. A person approves every message, quote and change before it goes out. purr works the same way: it asks before each edit and command unless you allow it.
Quoted per project, in writing before any work starts. Bigger work is split into phases, each with its own fixed price. We're not VAT-registered, so no VAT is added.
Book a free 20-minute call. Tell us what you do and we'll tell you where AI would help and what it would cost. No commitment.
Book a callhello@mrrpsoftware.com
Tell us a little about what you need and we'll reply with a quote by email.
We'll reply to . If it's urgent, book a call.