Skip to content

Why MARVIN

I wanted Claude Code to remember, and to keep working when I walk away.

So I built that around it. This page is the case for it: the problem, how MARVIN goes at it, what I've measured, and where it's heading. Every number links to how it was counted.

The problem

Claude Code is a great pair programmer with no memory. Every session starts cold. You re-explain the project, the decision you made last week, the mistake you already fixed. Then the session ends and it's gone again.

Letting an agent run on its own is the other half. Left alone, agents ship junk: changes nobody measured, tests that pass because they test nothing, PRs that merge on top of a broken main. Speed without checks just makes more to clean up.

The approach

What I've measured

MARVIN runs a bench against plain Claude Code on the same model, with known answers. A result only goes on this page when it holds across a set of tasks. Results from a single task, like memory recall or routing simple questions to a smaller model, stay in the bench write-up with their scope, because one task doesn't show they generalise.

I measured my own tools, and dropped one

I added a code knowledge graph and told every session to search it first. Then I tested it: 30 real questions with known answers, scored without an AI judge. Plain keyword search put the answer in the top five 67% of the time. The graph managed 38%. On questions that need two files, keyword search found 3 of 4 and the graph found none. So the rule flipped to keyword search first, and the graph kept the structure questions it's good at. Results, 26 Oct 2026.

It ships

Merged pull requests per week299 merged PRs from Aug 24 to Nov 2; 81 written by the pipeline.062.5125Week of Aug 24: 9 from sessionsWeek of Aug 24: 2 by the pipelineAug 24Week of Aug 31: 1 from sessionsWeek of Aug 31: 5 by the pipelineWeek of Sep 7: 0 from sessionsWeek of Sep 7: 0 by the pipelineSep 7Week of Sep 14: 0 from sessionsWeek of Sep 14: 0 by the pipelineWeek of Sep 21: 0 from sessionsWeek of Sep 21: 0 by the pipelineSep 21Week of Sep 28: 0 from sessionsWeek of Sep 28: 4 by the pipelineWeek of Oct 5: 41 from sessionsWeek of Oct 5: 64 by the pipelineOct 5Week of Oct 12: 20 from sessionsWeek of Oct 12: 0 by the pipelineWeek of Oct 19: 40 from sessionsWeek of Oct 19: 1 by the pipelineOct 19Week of Oct 26: 102 from sessionsWeek of Oct 26: 5 by the pipelineWeek of Nov 2: 5 from sessionsWeek of Nov 2: 0 by the pipelineNov 2
Written by the pipeline (81)Written in a session with me (218)Merged PRs on the engine repo by week, counted Nov 2, 2026. The week of 2 Nov is one day old when counted.

Green is code the pipeline wrote on its own, then I reviewed and merged. Amber is work done in a session with me. Most of the pipeline's count landed in one week in early October (64 PRs). Since then most merges have come from sessions with me, a lot of it tightening the gates the pipeline has to pass.

The proof that counts most is outside this repo. Seal Speak is a live-captioning app for iPhone that I built with MARVIN. It went from first commit to the App Store in 50 days, and 19 of its merged PRs came from the pipeline.

Open engine, optional add-ons

The engine is open source and stays free: memory, skills, the pipeline, the gates, the dashboard. Each person's own state lives in their own private repo, never in the engine. Later, optional add-ons will sit on top for people who want more, each in its own repo. The rule I hold myself to: the free engine has to be good on its own. An add-on earns its place by doing something new, not by taking something away.

Where it's going

These are the north stars every change gets checked against, in plain words:

  1. Do more with less. A change only counts if quality holds at the same or lower cost in tokens, compute and time.
  2. Be reachable from anywhere. Phone, laptop, any machine, working offline, and never breaking silently.
  3. Leave people more capable, not more passive. If doing a thing yourself makes you better at it, MARVIN should coach, not take over.
  4. Be the best tool for making tools. Work that makes MARVIN better at building and shipping things beats work that builds one thing.

What's being built now and next is on the roadmap. What changed recently is in the changelog.

How each number was counted

All counted on Nov 2, 2026.

NumberWhat it countsHow
100 PRs written by the pipeline and merged81 on MARVIN itself, 19 on Seal Speak. Counted as merged PRs whose branch starts with pipeline/.gh pr list --state merged --limit 1000 --json headRefName (G-Eskayo/marvin and G-Eskayo/clarity-captions), count pipeline/*
7,600+ tests7,674 counted: 4,640 Python tests collected by pytest in lib/tests, plus 3,034 dashboard tests listed by vitest.pytest lib/tests --collect-only -q; cd dashboard && npx vitest list | wc -l
80+ design decisions written down82 architecture decision records in docs/adr.ls docs/adr/[0-9]*.md | wc -l
33 skills it can loadPlaybooks in the public repo, one SKILL.md each.git ls-tree origin/main skills/*/SKILL.md | wc -l
3 machines, one systemA MacBook Pro, a Mac mini, and a 2012 Mac mini running Linux.the machine list in the network config; the Linux box's timers checked over ssh
299 merged PRs on the engineEvery merged PR on G-Eskayo/marvin, written by the pipeline or in a session with the owner, since the first merge on 27 August 2026.gh pr list -R G-Eskayo/marvin --state merged --limit 2000 --json number | length

Who builds it

I'm Gil Eskayo. I build MARVIN for my own work first and use it every day. More on the about page. The code is on GitHub.