Narrowbit runs on your Mac, works with the model you already pay for, and keeps a local log of everything it does, so each step sees the smallest useful slice of your code.
Early: version 0.1, macOSgit clone https://github.com/sanjuraw/narrowbit.git ~/Narrowbit && ~/Narrowbit/scripts/install.shThe installer asks before installing anything. Then: narrowbit ui for the app, or narrowbit agent "fix the failing test".
The measure is correct coding work per unit of AI usage, not fewer tokens for their own sake. If quality drops, Narrowbit has failed.
Claude or Codex through your existing subscription, or any OpenAI-compatible API: DeepSeek, OpenRouter, Gemini, Groq, Ollama, LM Studio and others.
A local index and a durable task log let each turn carry only what the next action needs, instead of the whole conversation so far.
"Done" is tested against your repository's own typecheck, lint and test commands before the agent is allowed to stop.
Commands ask first (or only the checks run without asking), edits show as diffs, every step can be rewound, and nothing is committed until you say so.
No telemetry and no repository upload. Code goes only to the model provider you choose. Known secret patterns are redacted from what the agent stores (best effort).
A native Mac app with live progress, plus a CLI and an MCP server. Skills for common jobs and connectors for MCP tools such as GitHub.
Project memory for any coding agent. It keeps what isn't in the code: a decision and its reason, a constraint, a convention, an approach that already failed. It ships inside Narrowbit and also works on its own with Claude Code, Codex or any agent that speaks MCP.
One note per file in the project, readable and editable by hand, or opened as an Obsidian vault. Kept out of git.
A note about a file remembers that file's state; if the file has changed since, recall says so instead of presenting it as current.
Nothing is sent anywhere or summarised by an AI. Notes are found by keyword and file, with secrets scrubbed before saving.
claude mcp add narrowbit-memory -- node ~/Narrowbit/packages/memory/bin/narrowbit-memory.js serveEach result names its baseline and how much it rests on. Tasks are real fixes from a project's history: start at the commit before the fix with its tests added, and succeed when those tests pass without touching them.
| Hono · 40 tasks · Sonnet | Native Claude Code | Narrowbit |
|---|---|---|
| Tasks solved | 40 / 40 | 40 / 40 |
| Cost for all 40 | $3.48 | $1.43 (−59%) |
| Uncached input per task (median) | baseline | −61% |
| Turns per task | 7.1 | 5.2 |
| Task time (median) | 16 s | 19 s (slower) |
| Task time (slowest 10%) | 28 s | 28 s |
Every run, including the approaches that failed, is written up in the project history. The benchmark kit is in the repository, so you can run it on your own code.