Coderrr
Y CombinatorNot backed by Y Combinator
██████╗ ██████╗ ██████╗ ███████╗██████╗ ██████╗ ██████╗ 
██╔════╝██╔═══██╗██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗
██║     ██║   ██║██║  ██║█████╗  ██████╔╝██████╔╝██████╔╝
██║     ██║   ██║██║  ██║██╔══╝  ██╔══██╗██╔══██╗██╔══██╗
╚██████╗╚██████╔╝██████╔╝███████╗██║  ██║██║  ██║██║  ██║
 ╚═════╝ ╚═════╝ ╚═════╝ ╚══════╝╚═╝  ╚═╝╚═╝  ╚═╝╚═╝  ╚═╝

The CLI coding agent that plans before it edits

Coderrr writes a spec, shows it to you, and stops. Nothing on disk changes until you approve. Free, open source, and it runs on your own provider key.

v2 is a Python package on PyPI. Coming from npm i -g coderrr-cli? Migration guide

terminal

Features

Built so the safety properties hold structurally, not because a prompt asked nicely

Plans Before It Edits
Every request produces requirements.md, design.md and tasks.md. You read the plan — and can edit it — before a single file changes.
Write Tools Don't Exist Yet
During planning the write tools are absent from the model's tool list. The agent isn't asked to refrain from editing; it has no tool that edits.
Sandboxed Execution
No tool runs commands against your working tree. Commands run in a scratch copy, or a locked-down container when Docker is available.
Five Providers, Plain HTTP
Ollama, Anthropic, OpenAI, Google, and OpenRouter — no provider SDKs, no vendor lock-in, and a free local default.
Your Keys Stay Yours
Keys resolve from your environment, your OS keyring, then a config file written mode 0600. Nothing is proxied through a server.
Specs Are Memory
A later session reads tasks.md to learn where things stand instead of replaying a chat log. Commit them — they review like documentation.
Your Own MCP ServersNEW
coderrr mcp add <name> <url> connects an HTTP server, or a command over stdio. Their tools are bridged in as mcp__<server>__<tool> and work during planning too. OAuth 2.1 for remote servers like Linear and Notion, with the tokens in your OS keyring — and no extra dependency, because the client is plain HTTP like everything else here.

How It Works

Three commands to start, and one gate you always control

01

Install

One command, from PyPI

pipx install coderrr
02

Configure

Pick a provider and model

coderrr config
03

Describe

Say what you want changed

coderrr run "..."

What happens then

Planning

read only

Reads your code, pulls relevant skills, writes requirements.md · design.md · tasks.md

The plan is shown to you. It stops.

your call

Nothing on disk has changed. Edit the spec files to steer the work, then approve — or decline and keep the plan.

Execution

write unlocked

Per task: read → edit → run in sandbox → verify → mark done

Write tools are absent from the model's tool list until you approve. Not a prompt instruction — the tool simply isn't there.

See It In Action

One request, start to finish — including the stop in the middle

coderrr
New

Bring Your Own Tools

Connect any MCP server — Figma, Linear, Notion, or something internal — and its tools become tools Coderrr can call

coderrr ❯ /mcp
1. Add a server
2. Done
? MCP: 1
? URL or command: http://127.0.0.1:3845/mcp
? Name for it: figma
◇ Connecting to figma...
■ figma connected — 1 tool(s): get_code
◇ Available as mcp__figma__* from your next request.

Takes effect on your next request — no restart.

No extra install

The client is hand-written over httpx and asyncio — JSON-RPC 2.0 over Streamable HTTP and stdio. No SDK, no uvicorn in your CLI.

Each tool asks once

One question per tool, remembered in allowed_tools — not a prompt you learn to click through. denied_tools hides one entirely.

A browser opens only when you ask

Confined to mcp add and mcp login. Nothing during a task opens one, so an agent run never blocks on a window.

figma → get_code [read-only]
? Allow mcp__figma__get_code?
1. Allow once
2. Always allow this tool
3. Deny

Bridged tools are named mcp__<server>__<tool> and work while planning as well as executing — pulling a design or an issue description is usually how a plan gets grounded in the first place. What a server claims about itself is shown, never trusted.

MCP documentation

Built by developers, for developers

Coderrr is open source and community-driven. Join us in building the future of AI-powered development.

Loading contributors...