The plan-of-record for AI coding agents

Your plan
survives the reset.

Spec, plan, and drift detection that stay in sync with your code — readable by you, writable by your agent, durable across sessions.

brew install felixgeelhaar/tap/roady

After install, run roady demo to see the full spec → plan → drift loop on a sample project in under a minute.

Roady Cloud — coming

Hosted MCP, multi-repo dashboard, audit retention, SOC2. CLI stays MIT forever; Cloud is the open-core paid wedge. Drop your email if you want first access.

Opens your mail client — no third-party form backend, no hidden datastore.

See the roadmap for the full open-core boundary.

Built narrowly, on purpose

What Roady is, and is not

Roady is…

  • The plan-of-record for an AI-paired feature
  • Memory that survives /clear and session resets
  • File-based, git-friendly, local-first
  • MCP-native — every operation is a tool
  • Drift detection between intent, plan, and code

Roady is not…

  • A Jira / Linear replacement
  • A chat history layer
  • A hosted SaaS (today — see ROADMAP)
  • A code-search or context-stuffing tool

The actual workflow

Spec → plan → execute → detect drift. The same loop whether you write the plan yourself or hand it to an AI agent. Roady doesn't replace your editor or your agent — it gives them durable state to work against.

Docs / Intent roady spec roady plan [ Execution happens elsewhere ] roady drift

1. Establish Intent

Analyze your documentation tree. Roady extracts functional features and requirements deterministically.

$ roady spec analyze docs/

2. Derive Action

Decompose features into atomic engineering tasks. Use AI to accelerate this, or write plans manually.

$ roady plan generate --ai

3. Detect Drift

Roady monitors your code and state. If your implementation diverges from your plan, you'll know instantly.

$ roady drift detect

Why this exists

Three days into a feature, your AI agent has forgotten what was decided yesterday and quietly rewritten the wrong file. Roady is the durable answer to what are we building, what's next, and where did reality diverge from the plan?

Context windows expire

Plan + execution state live in .roady/, not the model's working memory. Survives /clear.

"What's next?" is wasted

roady task ready answers it deterministically from the approved plan. No re-deliberation.

Drift is silent by default

Spec-lock + drift detection make divergence loud and actionable instead of accumulating as debt.

Provenance for every task

Every task carries an Origin (heuristic / ai / human) and a from doc:line citation. AI's choices stay auditable.

The five commands you'll actually use

Roady has 31 top-level commands. You will spend 95% of your time in five of them. Here they are.

# 1. Hook your AI agent to Roady (one command per supported tool)
roady setup claude-code     # or claude-desktop, opencode, openai, gemini

# 2. Initialise + import your existing docs
roady init my-project
roady spec analyze docs/    # parses markdown, captures source citations

# 3. Generate a plan (heuristic by default; --ai for richer decomposition)
roady plan generate
roady plan approve

# 4. Drive execution from inside your AI editor
/roady-task                  # agent picks the next ready task
# ...agent implements, commits with [roady:task-id] marker...
roady git sync              # state moves forward automatically

# 5. Ask the question that matters
roady drift detect          # has reality diverged from intent?

See it before you commit to anything

roady demo scaffolds a sample project with intentional drift and runs the full loop in under a minute. Zero AI keys, zero signup.

brew install felixgeelhaar/tap/roady && roady demo

Need the full reference?

Billing, debt scoring, deps graph, watch mode, dashboards, plugins, audit verify — everything else lives in docs/advanced.md, grouped by audience.

See all 31 commands
AI-First

Native to Claude Code, Codex, Cursor, Gemini

Every Roady operation is an MCP tool. Your agent reads and writes the same plan-of-record you see in roady status. One roady setup command per supported tool.

What the agent calls

roady_tasks

List tasks by status (ready / in_progress / blocked / all)

roady_get_plan

Read the approved plan

roady_transition_task

Start / complete / block / verify

roady_detect_drift

Has reality diverged from intent?

roady_plan_decompose

Codebase-aware AI decomposition

roady_drift_recurring

Drift unresolved > 7 days

roady_cost_estimate

Token + USD pre-flight before AI ops

roady_query

NL question over project state

Plus 30+ more — roady openapi emits the full schema. Streamed AI responses arrive as MCP progress notifications when the client subscribes.

Transports

stdio (Claude Code, OpenCode) roady mcp
HTTP --transport http
WebSocket --transport ws
# One-command setup, per supported AI tool
roady setup claude-code
roady setup claude-desktop
roady setup opencode
roady setup openai
roady setup gemini
// Real interaction inside Claude Code
You:
"What's blocked, and why?"
Tool call:
roady_tasks { status: "blocked" }
Tool call:
roady_drift_recurring {}
Claude:
2 blocked tasks. Both depend on auth-signup, which is in_progress for 4 days — flagged as recurring drift. Want me to break it down?

Visualisations come along for free

Every MCP tool that returns structured data ships with an interactive D3 view (donut, force-directed graph, gauge, line chart, tree). Renders inside Claude Code's tool panel automatically — no separate dashboard install.

Bring your existing tracker along

Already on Linear, Jira, or GitHub Issues?

Roady is not a replacement for those. It runs in front of them for the AI-paired workflow — your agent reads and writes Roady, and a plugin keeps the human team's existing tracker in sync as a side effect. No migration, no rip-and-replace.

Linear
Jira
GitHub Issues
Notion
Trello
Asana

Pluggable syncers via HashiCorp go-plugin. Build your own — reference plugins on GitHub.

Built for Continuous Planning

roady watch

A background sentinel that reacts to document changes, instantly updating your specification and checking for plan drift.

Git Sync Loop

Roady parses your commit history for [roady:task-id] markers to automate status transitions.

Policy-Driven AI

Guard agentic spending with hard token limits and vendor-agnostic routing (OpenAI, Anthropic, Gemini, Ollama).

Plugin Sync

Sync tasks with external systems via plugins (GitHub Issues, Jira, Linear).

Team Collaboration

Role-based access, task assignment, optimistic locking, and git-based workspace sync for multi-user workflows.

Go SDK

Public Go client package with typed helpers, versioned MCP schema, and OpenAPI spec generation.