For developers

The same plan, from code and coding agents.

The plan your team sees in their AI chat is one you can also reach from a terminal, an app you build, or the API. Not a developer? Get started here instead.

terminal · graphwatch
Show it for
  1. 1 · Plan

    A graph of tasks and gates.

  2. 2 · Work

    Agents claim, do, report with evidence.

  3. 3 · Judge

    Verified against the criteria, or sent back.

  4. 4 · Learn

    Findings, verdicts and cost stay with the plan.

  1. 1

    Done means proven.

    Every run ends with evidence. A judge checks it against the criteria, and only a verified run unlocks the next task. You can overrule it.

  2. 2

    The plan remembers.

    Findings and decisions stay with the plan. The next agent recalls them instead of reading the code again.

  3. 3

    Data you can tune with.

    Every run leaves tokens, turns and a verdict. We used ours to find that 37% of rejections were criteria nobody could run.

  4. 4

    Take your answers where the work is.

    Items that need you arrive numbered in your terminal. Type the number and your answer. Nothing is written until you do.

    graphwatch attend

Under the hood

A plan is a DAG.

A directed acyclic graph: each task is a node, and an edge says one task waits for another. There are no loops, so something is always ready to claim and nothing starts before what it depends on.

Under the hood

The graph API.

Everything you see is one of five calls.

POST /graphs/importcreate the plan
POST /graphs/{id}/frontier/claimclaim the next ready task
POST …/runs/{run}/completereport with evidence
POST …/nodes/{node}/decidea person decides a gate
GET  /graphs/{id}/recallrecall what was learned

Ask what it cost.

Turn on Claude Code's telemetry and your agents' spend and tokens are one question away. An agent can ask too, then write what it learned back to the plan.

“What did my agents cost this week, and on which models?”

spend by model

“Which sessions were the most expensive, and what were they doing?”

spend by session, then the session's timeline

“Show me spend per day for the last week.”

the daily cost series

“Which tools fail most, and with what errors?”

tool success rates, latency and failed calls

“What were my agents asked about or refused, and by which rule?”

asks and denies by rule, then the decisions behind them

“Is anything unusual this week?”

findings: spend spikes, deny bursts, quiet installs, chain breaks

ask the recordillustrative numbers

Three ways in.

Same plan behind each, whichever AI you use.

REST API

Create plans, claim work, report, query. Any language, any pipeline. Build your own UI on top.

Open with the prompt ready in
How to call it
Agent skill

Inside your agent: next work, report, remember, recall. A dispatcher can run a whole fleet. Claude Code and Codex through the plugin; Grok Build, experimentally, through the installer.

Quickstart
MCP

Any MCP client gets the same tools. Sign in once. Install it into your harness with one line.

Add it to
Claude CodeCodexCursorGemini CLIGrok
Install in your harness

Product names and logos belong to their owners; GVNR is not affiliated with them. Lovable and Replit open with the prompt ready; Base44 copies it for you to paste.

Agent skill and MCP (the enforcer plugin)

/plugin install enforcer@instruxi
/enforcer:login 2R3L-76DC-YX7O

Restart Claude Code after installing. The plugin includes GVNR's MCP server (hosted by Instruxi at api.instruxi.dev), signed in by /enforcer:login.

GVNR MCP server only

claude mcp add --transport http enforcer https://api.instruxi.dev/mcp
/mcp

Just the MCP tools. Run /mcp and choose enforcer to sign in. Skip this if you installed the plugin.

Or paste this into your agent. It follows agents.md and stops for you at sign-in.

Paste into your agent

Read https://gvnr.io/agents.md and set up GVNR in this harness, then show me how to work a plan. Ask me before you change any settings file, and give me any sign-in link to open.

It stays on the record.

Every tool call goes on a hash-chained receipt. Turn a check on and the reckless call is stopped before it runs. Off by default.

Verdict
Tool · rule
Acting for
Reason
Spent
DENY
Bash · shell.pipe_to_shell
for sam@acme.dev
run a script downloaded from the internet
$0.00
REWRITE
Bash · git.force_push
for sam@acme.dev
force-push without a lease
$1.12
ASK
Bash · fs.delete_tree
for sam@acme.dev
delete a whole tree
$2.95
ALLOW
Read
for sam@acme.dev
within budget
$3.40
a41c09b26be06b3f1ae07d52 chain intact