Planr is a local-first planning and execution coordination tool for coding agents. It combines reviewable Markdown plans with a dependency-aware work map so Codex, Claude Code, Cursor, generic MCP clients, and human operators can drive the same work safely — from idea to verified completion.
idea -> product plan -> build plan -> map -> pick -> log -> review/evidence -> close
Flat todo lists break down the moment real work has structure. Planr models work as a dependency graph because that is what work actually is:
- Readiness is computed, not guessed. An item becomes
readyonly when its blockers are closed;planr pickreturns work that is actually startable. - Parallel agents need atomic claims. Picks are atomic claims enforced by the database — one item, one owner, no checklist races.
- "Done" is gated, not asserted. Closure requires log-backed evidence (files, commands, tests) and open reviews block their target.
- State survives sessions. Markdown plans hold scope and acceptance criteria; the SQLite graph holds live status across handoffs, restarts, and agent switches.
- Failure is structured. Stale picks, timeouts, and retries are detectable and recoverable (
planr recover sweep).
Three layers make that work: Plans (reviewable Markdown packages), the Map (live dependency graph with picks, reviews, logs), and Agent loops (skills, CLI, and MCP workflows for every major coding agent). Full model: Task Graph Model and Operating Model.
Declare once which model handles which work — every task then carries its own routing, and your agents delegate automatically:
# .planr/agents.toml (write it with `planr agents init`)
[profiles.frontender]
client = "cursor"
model = "opus"
skill = "frontend-design"
[[routes]]
match = { work_type = "frontend" }
profile = "frontender"
fallbacks = ["driver"]- Routing travels in the pick packet —
planr pick --jsonhands the worker its profile, model, and paired skill;planr pick --peeklets dispatching drivers read it without taking the lease. - Rendered into your hosts' native config —
planr install codex|claude|cursorwrites the subagent role files with model pins from the registry, in each host's exact vocabulary. - Declared vs. actual, with receipts — workers report the profile they ran on, runs record the observed host, and
planr trace itemshows deviations as advisory markers. - Use-case pools — free-form work types (
frontend,backend, ...) declared right in the plan's task list (### TASK-001 (backend): ...), plus per-item pins viaplanr item route.
Routing is advisory by design: Planr never dispatches models and never blocks a pick — hosts stay the authority. Full guide: Model Routing · replayable walkthrough: Worked Example: Web App · Release notes.
brew install instructa/tap/planrOr via npm (ships platform-native binaries, no toolchain needed):
npm install -g planrOr with the release installer:
curl -fsSL https://raw.githubusercontent.com/instructa/planr/main/scripts/install.sh | shThen initialize a project (also provisions the worker/reviewer subagent roles for your client):
planr project init "My Product" --client allManual downloads, from-source builds, and client wiring details: Install Guide.
The plugin under plugins/planr carries the nine Planr skills plus the planr-worker and planr-reviewer subagent roles. The planr CLI (above) is required separately.
Codex
codex plugin marketplace add instructa/planr
codex plugin add planr@planrClaude Code
Inside a Claude Code session:
/plugin marketplace add instructa/planr
/plugin install planr@planr
Restart Claude Code afterwards. Skills are namespaced (/planr:planr, /planr:planr-loop), and the plugin registers the planr-worker and planr-reviewer subagents automatically.
Cursor
One command installs everything the plugin would carry:
planr install cursor # writes .cursor/mcp.json, .cursor/agents/, and .cursor/skills/
planr install cursor --no-mcp # skills and subagents only, no MCP configThe dry-run also prints a one-click cursor:// deeplink for user-level MCP install. Marketplace listing is pending review. Multitasking with Cursor subagents: Cursor guide.
opencode
No plugin yet. Use Planr as an MCP server and paste the CLI prompt into your agent instructions:
planr mcp # stdio MCP server
planr prompt cliTwo skills drive everything. $planr routes any request to the right stage skill from live map state; $planr-loop drives one feature through work, live verification, and independent review until the map is clean.
Start a new product from an idea:
Use $planr.
Create a production-ready Habit Tracker web app plan. Create the product plan,
split an MVP build plan, check it, then build the Planr map. Do not implement yet.
Ship one feature autonomously until verified:
Use $planr-loop.
Goal: ship the weekly overview feature. DONE when every in-scope map item is closed
with log evidence, all reviews are closed complete, and a live verification log shows
the feature working in the browser. Iteration budget: 10.
Mid-project work (a new feature, refactor, or fix on an existing project) works the same — it gets its own feature-scoped plan and extends the existing map. Both journeys with example prompts: Two Journeys. Watch progress anytime with planr map show.
- Install
- Skills
- Long-Running Goals
- Model Routing · Worked Example: Web App
- Host Hooks
- CLI Reference
- MCP Guide
- Codex · Claude Code · Cursor
- Operating Model
- Task Graph Model
- Architecture
- Testing
- Troubleshooting
- Specification Package
- More: Changelog, Import, Security, Handoffs And Stories, npm Package
MIT. See LICENSE.md.

