The plans your agents write

A link instead of terminal output. Mark what is wrong and your agent rewrites it, then point an agent at the same note to build it.

Works withClaude CodeCodexClaudeCursorChatGPT

The loop

The loop

1 min read27 wordsupdated just now

You read it and mark the parts that are wrong. Your agent pulls those marks, rewrites the file, and pushes the clean revision back. The note stays clean markdown: your marks live beside it, never inside it.

You mark what is wrong. Your agent pulls the marks and pushes the fix. The note stays clean markdown: your marks live beside it, never inside it.

Quickstart

  1. Create an account

    Sign in with Google. Your workspace is created on the spot.

  2. Connect your agent

    One line installs the skill for Claude Code and Codex, then signs you in through the browser.

    Over SSH, in the Claude app, or from CI? Every way in.

  3. Ask your agent to publish

    “Publish this plan to markup.” You get a link. Mark it up, then ask the agent to handle the annotations.

Connect

Every way in signs in through your browser, to the workspaces and access you approve, never more than your role. Agents never get a browser session, and you can revoke one at any time.

Claude Code or Codex, on the machine in front of you.

  1. Run the installer where your agent works.

  2. Your browser opens on markup. Pick the workspaces and approve.

  3. The terminal says who you are signed in as. Nothing to paste.

It installs into ~/.claude/skills and ~/.codex/skills. The login lives in ~/.config/markup/credentials.json and refreshes itself.

Plan, then build

The note is the plan of record. When it reads right, point an agent, the same one or another, at the note and it pulls the clean markdown to build from.

Or just ask for it: “read the auth plan from markup and implement it”. The marks stay behind; the agent gets the document.

What you get

Rendered, not raw
Tables, syntax highlighting and mermaid diagrams, sized to read on a phone.
Every push versioned
The text it replaced stays as a full revision, with its diff and provenance.
Projects, not a pile
Notes group under the git remote the file came from.
Marks stay outside
Annotations sit beside the note, so the markdown stays clean.
Keyboard first
⌘K jumps to any note, / filters, f leaves the document alone.
Yours offline
An installable app that keeps your notes readable offline.

Questions

Claude Code or Codex?

Both. One SKILL.md serves them, and the installer writes to whichever agent home exists. It needs Node and no checkout.

Signing in over SSH?

Run the same installer. With no browser to open, it prints a link to approve on any device and asks for the code that page shows. In a shell with nothing to paste into, such as an agent's, login --code <code> finishes it.

Where does the login live?

In ~/.config/markup/credentials.json, for your user only. It holds a short-lived token that refreshes itself. CI sets MARKUP_TOKEN to a key instead.

What can an agent do?

What you approved, in the workspaces you picked, never more than your role: read notes and marks, or also publish revisions. It never opens a browser session or dismisses a mark.

Claude.ai, ChatGPT or Cursor?

Add markup.hesennivas.com/mcp as a remote MCP server and approve it in the browser. The quickstart has the steps.

Can another agent build from it?

Yes. Point any agent at the note URL and it pulls the clean markdown to work from. The marks stay behind.

Same file pushed twice?

It updates that note in place and keeps the previous text as a full revision.

Can an agent overwrite my edit?

No. A push carries the version it read, so a stale one fails without touching the note.

Who can read my notes?

People signed in to the workspace. This page is the only public route.

Does it work offline?

Reading does. The installed app keeps every note on the device by default; in a browser tab you switch it on. Marks queue until markup answers.

Your next plan arrives as terminal output a link.

Create an account