Local-first · MCP-native · open source

The agent-native
planning workspace.

Not a kanban board. Map work as a dependency graph, attach specs to nodes, and let Claude Code or Codex plan and build from it over MCP — running on your machine.

View documentation
Read https://plandesk.asyncdot.com/start.md then set up Plan Desk for this project.
// One MCP call turns an idea into a plan
scaffold_project_from_plan({
  name: "Rate limiting",
  tasks: [
    { key: "design",  label: "Design rate-limit strategy",  status: "scope" },
    { key: "mw",      label: "Add token-bucket middleware", status: "todo"  },
    { key: "store",   label: "Wire Redis counter store",    status: "todo"  },
    { key: "rollout", label: "Roll out behind a flag",      status: "todo"  },
  ],
  edges: [
    { from: "design", to: "mw",      label: "blocks"     },
    { from: "mw",     to: "store",   label: "blocks"     },
    { from: "store",  to: "rollout", label: "depends_on" },
  ],
  documents: [{ title: "Design: rate limiting", link_to: "design" }],
})
$ plandesk connect --project "Rate limiting"

  writes  .plandesk/config.json   project binding
          .plandesk/skill.md      agent conventions
          .plandesk/token         (gitignored)
          .mcp.json               MCP server entry
          CLAUDE.md               @.plandesk/skill.md

  ✓ connected — start a new agent session
// The agent works the graph in dependency order
get_next_task({ project_id })
→ {
    next_task: { label: "Add token-bucket middleware", status: "todo" },
    reason: "ok",
    blocked: [{ task: "Wire Redis counter store",
                waiting_on: ["Add token-bucket middleware"] }],
  }

update_task({ task_id, status: "done" })  // canvas + board update live
01

Plan

Sketch the graph on the canvas, or have your agent scaffold it from a one-line idea.

02

Connect

plandesk connect binds the repo over MCP — commit-safe, no secrets committed.

03

Build

The agent loops get_next_task → code → done, in dependency order, live on the canvas.

Everything is one connected plan.

Dependency canvas

Map work as a directed graph with labeled edges — what blocks what is explicit, not buried in a list.

Specs on nodes

Attach a document to any task. Agents read the spec before they touch a line of code.

Board

A kanban view that shares one source of truth with the canvas. Move a card, the graph updates.

Project notes

Free-form working notes in a rich-text editor, scoped to the project and separate from formal specs — for findings and context worth keeping.

MCP — 27 tools

Agents scaffold whole plans, pick the next unblocked task, and update status live over MCP.

Comments loop

Leave feedback on a doc in the UI; the agent pulls it, addresses it, and resolves it — live.

Local-first

Runs on your machine over SQLite. No cloud, no lock-in. Lossless JSON export/import.

Point your agent at it.

From your project folder, paste the prompt into Claude Code or Codex.

Read the walkthrough