↑↓ chooseEnter openEsc close

Independent AI lab • Tampere

Mrrp Research

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.

Read the resultsFor companies

Open agents

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.

Meet purr

An IBM Model M keyboard, dithered in two inks.

Own your AI

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.

An old CRT monitor, dithered in two inks.

Work in the open

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.

See the results

A hand-etched circuit board, dithered in two inks.

Our first agent • rephyr/purr

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.

The guideGitHub

purr-demo.webmpurr 0.2.0 · Qwen3.6 iq3 · Ollama · local GPU · 2×

What purr does for a small model

  • A lean prompt. A short system prompt and limits that fit the model's context.
  • Slips get repaired. A fuzzy edit still applies, and a tool call written as text still runs.
  • Work gets checked. Syntax and lint after every edit, and the tests before it says done.
  • Loops get caught. When the model reworks the same file over and over, purr makes it step back.
  • Plan mode. A big model splits a long task into small tickets, and a small model does them one at a time, each in a fresh chat.
Local models
Ollama · llama.cpp · LM Studio · vLLM (found automatically)
API models
DeepSeek · OpenRouter · the free tiers of Groq, Cerebras, Gemini, Mistral, NVIDIA and Cohere and any OpenAI-compatible server
Modes
  • code does the work
  • ask looks, never changes anything
  • learn leaves the key lines to you
  • pair you take turns, one step each
  • plan a big model plans, a small one does
  • chat · create talking, ideas and writing
Private mode
/private switches to local models only: no web, and the chat isn't saved. purr never sends telemetry and needs no account.
Licence
MIT

Install (on Windows, inside WSL)

curl -LsSf https://raw.githubusercontent.com/rephyr/purr/main/install.sh | sh

or uv tool install git+https://github.com/rephyr/purr

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

AI for companies • quoted per project

For companies

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.

  • AI audit

    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.

    • A look at the work
    • A written summary
    • A first step

    Price quoted per project

  • Private AI on your own hardware

    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.

    • Document search
    • An internal assistant
    • No cloud service

    Price quoted per project

  • Local model setup

    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.

    • Choosing a model
    • Setup
    • Coding tools for the team
    • Teaching the team

    Price quoted per project

  • Assistants and automations

    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.

    • EU-hosted or local
    • Sorting requests
    • Draft quotes

    Price quoted per project

  • Custom agents

    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.

    • Coding agents
    • Reviewers
    • Reports

    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.

How it goes

  1. A free callDay 1

    You tell us what you do and what takes the time. We say straight away if AI isn't the right tool for it.

  2. Audit and quoteUsually a few days

    We look at the work and the material. You get a summary and a fixed price for the next phase.

  3. A trial on your own materialBefore the bigger work

    We test the model on your real documents and tasks, so you know what it can do before anything more gets built.

  4. Build and teachPhase by phase

    We build it, put it to use and teach the team. The documentation stays with you.

  5. CareAfter that

    Models and tools move fast. We update and check that everything still works.

Questions

Where does our data go?

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.

Is a small model enough?

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.

What hardware does it need?

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.

Does the AI decide things on its own?

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.

What does it cost?

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.

Ask us about AI

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

  • You tell us what you're working on and what's slowing you down.
  • We tell you how we'd build it and roughly what it would cost.
  • If you like, you get a fixed quote by email after the call.
  • The call is free and there's no commitment.

Request a quote

Tell us a little about what you need and we'll reply with a quote by email.

What are you working on?
What do you need?
Budget
What do you need?
Budget
What do you need?
Budget
What do you need?
Budget
What do you need?
Budget

For example how customers book now, and whether you already have a website.

What do you do by hand now, and what should the software do?

Who is it for, where will people play it, and when does it need to be ready?

What would you like AI to do, and may the material leave the building?

Tell us in your own words what takes too long or gets in the way. We'll work out together what's worth building.

We only use your details to answer your request. Privacy policy

The Mrrp Research seal: the badge's face in a ring reading MRRP RESEARCH, OPEN AGENTS, OWN YOUR AI.