How it works

Draw the plan. Your agent follows it.

Map your app as connected blocks. Your agent pulls one task at a time over MCP, in dependency order, and Nodeon checks every handoff against the plan.

The loop

Four moves, and you only make the first. Once the map exists, the agent drives. You step in when something needs a human: a blocker to clear, a drift to look at.

  1. Map it. Lay the app out on the canvas: screens, features, logic, data. A wire between two blocks is a dependency. That graph is the plan.
  2. Pull one task. The agent asks for the next unblocked node and gets only that: its spec, what it unlocks, and matched UI references to build from. Tools: get_next_task, get_references.
  3. Build and write back. The agent writes the code. Anything it discovers along the way goes back on the map as a subtask, a new dependency or a blocker. Tools: add_subtask, add_dependency, flag_blocker.
  4. Check the handoff. Completion is gated. Finishing a node before its dependencies is refused and logged as drift, so the map never claims work that isn't really done. Tools: mark_task_complete.

The handoff

The agent never gets the whole plan pasted into a prompt. It gets the one node that is ready, plus the few things it needs to build it right.

  • task: The node's title, type and spec. Only ever a node whose dependencies are all done.
  • dependents: What this unlocks, so the agent builds an interface the next tasks can use.
  • references: Up to three UI components matched to the node, with snippets one call away. Core and Pro.
  • nothing else: No unrelated nodes, no history dump. Smaller context, fewer wrong turns.

A trimmed get_next_task response:

{
  "task": {
    "title": "Dashboard",
    "type": "screen",
    "description": "Signed-in home. Project cards,
      recent activity, empty state for new users.",
    "status": "todo"
  },
  "dependents": [
    { "title": "Settings" }
  ],
  "references": [
    { "name": "Sidebar nav",  "category": "navigation" },
    { "name": "Stat tile",    "category": "data-display" },
    { "name": "Data table",   "category": "data-display" }
  ]
}

A worked example

A small SaaS MVP. You draw six blocks and the dependencies between them, and the build order falls out. Screens wait on the logic they need, and everything waits on auth.

  1. Users (Data), no dependencies
  2. Auth (Feature), after Users
  3. Access rules (Logic), after Auth
  4. Landing (Screen), after Auth
  5. Dashboard (Screen), after Auth and Access rules
  6. Settings (Screen), after Access rules

Try finishing Settings before Access rules and the completion is refused, with the open dependency named.

The canvas

Four block types make up the whole language. Everything you plan is some arrangement of these, plus your own custom types when you need one.

  • Screen: A page or view. Layout, state, and navigation.
  • Feature: A capability. Auth, search, upload, checkout.
  • Logic: Rules and flow. What happens, when, and why.
  • Data: Models and relations. Schemas, fields, constraints.

Why a map

Re-prompting, versus a plan the agent can read.

  • Context. Re-prompting: Pasted fresh into each prompt, from memory. With Nodeon: Pulled per task: the node's spec and what it unlocks.
  • Order. Re-prompting: Whatever the agent decides to do next. With Nodeon: Dependency order, checked when work is marked done.
  • Drift. Re-prompting: Noticed when something breaks later. With Nodeon: Out-of-order finishes refused and logged as they happen.
  • New work. Re-prompting: Buried in a chat thread. With Nodeon: Written back to the map as subtasks and blockers.
  • UI. Re-prompting: The agent guesses at components. With Nodeon: Matched references attached to the task (Core and Pro).
  • Files. Re-prompting: Hand-maintained, quietly stale. With Nodeon: CLAUDE.md, Cursor rules and spec sheets, exported from the graph.

Setup

Add Nodeon to Claude in one click from the homepage, or paste the MCP URL into any client. Your agent opens a browser, you sign in, and it can pull tasks. Every client is covered in the docs.

Questions

What is MCP and how does Nodeon use it?

MCP (Model Context Protocol) is how AI agents connect to external tools. Nodeon exposes your graph as an MCP server, so Claude Code, Cursor, Codex, or Windsurf can pull task context on demand, node by node, in dependency order. No copy-paste, no file wrangling.

How is this different from just prompting my agent?

A prompt is a paragraph the model interprets once. Nodeon gives you a structured graph: dependency-ordered tasks with scoped context, acceptance criteria, and data contracts. Your agent builds from a sequenced spec, not a vague one-liner. And the agent can write back, marking tasks done, adding subtasks, flagging blockers.

What does the agent actually get?

CLAUDE.md, cursor rules, spec sheets, and a dependency-ordered task sequence. Each task includes only the context it needs, what it depends on, what depends on it. Not the whole graph.

Can my agent change the graph?

Yes. Your agent marks nodes done, adds discovered subtasks, and flags blockers. The graph is live project state, not a static plan. That's the point, your specs stay in sync with reality.

Does Nodeon generate code?

No. Nodeon produces the brief your agent builds from, CLAUDE.md, cursor rules, spec sheets, task sequences. It doesn't generate code, run builds, host anything, or deploy to app stores. Your agent does the building. Nodeon does the planning.

The full FAQ covers pricing, plans and billing.