The review layer for AI output

Review what your agent makes, rendered, on your phone.

Your agent publishes the finished page to a private link. You open it, mark up any line, and it revises — the way you'd scribble in the margin of a printout. No login, no copy-paste, no screenshots.

Install the skill
1 link
private, start to finish
No login
no account or API key
30s
to install the skill
the whole loop ✶

Where this fits

Your agent runs somewhere else.

More and more, you're not sitting at the machine doing the work. Margin is the piece that keeps you in the loop from wherever you are.

Claude Code on the web

Kick off and steer work from your phone, away from your desk. The agent runs in the cloud — but you still have to actually see what it made.

Remote-controlling your laptop

Your agent runs on the machine at home or the office while you're out. Same problem: the output lives over there, and you're over here.

Either way, there's no good way to look at a rendered document — and comment on it — from your phone. You squint at raw HTML, or ask for screenshots. Margin is that missing review surface.

What you review

Rendered work — not raw files.

You shouldn't have to read HTML source or scroll a wall of Markdown to know if it's right. Margin shows your agent's output the way it'll actually look, and you react to that.

HTML
Ready now

Self-contained pages render exactly as published — reports, one-pagers, tables, landing copy.

Markdown
Ready now

Your agent renders Markdown to a clean page first, so you review the formatted result, not the asterisks.

Slides Soon
In the works

Decks are even worse to review in raw form. Comment on slides & PowerPoint the same way — landing next.

How it works

One simple loop.

You stay in your chat with your agent. Margin is just the part where you look and react.

01

Your agent publishes

It renders the finished work to a private Margin link and hands you the link.

02

You comment on your phone

Open the link, select any text, and type what you want changed. Your note sticks to that exact spot.

03

Your agent revises

Say “check.” It reads your comments, updates the same page, and marks them done. Refresh to see the new version.

Get started in 60 seconds

Set it up once.

Do step one a single time. After that it's just steps two through four, every time you want feedback.

1

Get the skill — your call

Install it yourself, or just tell your agent to set itself up. Either way it's one paste.

In your terminal · permanent

Drops a small skill file into Claude Code — then it's ready in every future session.

# installs the Margin skill for Claude Code mkdir -p ~/.claude/skills/margin && curl -fsSL https://htmlreview.vercel.app/skill.md -o ~/.claude/skills/margin/SKILL.md

Then open a new Claude Code session — the margin skill is ready. View the skill file →

In your chat · works right now

On your phone, or running an agent remotely with no terminal handy? Paste this to your agent — it fetches the instructions and starts using Margin this session.

Set yourself up to let me review your work on my phone: fetch https://htmlreview.vercel.app/skill.md and follow it. From now on, whenever I ask you to make something I'd want to look at, publish it to Margin and send me the link.

No install, nothing saved on your machine — handy when you're away from your desk.

2

Ask your agent to make something

Anything you'd want to eyeball before it's final — a summary, a one-pager, an email, a table. Just mention Margin:

“Make me a one-page summary of the Q3 plan and let me review it in Margin.”

Your agent renders it and replies with a link. Tap it.

3

Open the link & comment

On your phone or in a browser: select any text → tap “Comment” → say what you want. Your note anchors to that exact sentence. Leave as many as you like.

4

Say “check”

Back in your chat, type:

check

Your agent reads every comment, revises the page, and marks them resolved. Refresh the same link to see the new version. Repeat until it's right.

Want the full prompt spelled out? Paste this instead +

The complete workflow, written out — paste it into any Claude Code session once. (The skill above is the same thing, made permanent.)

You can publish HTML for me to review on my phone and get my comments back, using Margin — a hosted review tool at https://htmlreview.vercel.app. No login or API key is needed; the server gives you a per-document token on first publish. Whenever I ask you to make something I'd want to look at and give feedback on (a one-pager, report, summary, table, landing copy, etc.): 1. Write a complete, self-contained HTML document (inline CSS; no external scripts — they won't run in the review sandbox). If my content is Markdown, render it to clean HTML first. 2. Write it to /tmp/margin-doc.html, then publish with jq to avoid quoting issues: jq -n --rawfile html /tmp/margin-doc.html --arg title "SHORT TITLE" '{title:$title, html:$html}' | curl -s -X POST https://htmlreview.vercel.app/api/docs -H "content-type: application/json" --data-binary @- The response has doc_id, agent_token, and reviewer_url. Save doc_id and agent_token to ./.margin.json. 3. Give me the reviewer_url as a clickable link; tell me to open it, select text, and comment. 4. When I say "check", read my comments: curl -s "https://htmlreview.vercel.app/api/docs/DOC_ID/comments?status=open" -H "authorization: Bearer AGENT_TOKEN" 5. Revise and re-publish to the SAME doc (keeps the link and comments), then resolve handled comments: jq -n --rawfile html /tmp/margin-doc.html --arg s "what changed" '{html:$html, summary:$s}' | curl -s -X POST https://htmlreview.vercel.app/api/docs/DOC_ID/publish -H "authorization: Bearer AGENT_TOKEN" -H "content-type: application/json" --data-binary @- curl -s -X POST https://htmlreview.vercel.app/api/docs/DOC_ID/comments/COMMENT_ID/status -H "authorization: Bearer AGENT_TOKEN" -H "content-type: application/json" -d '{"status":"resolved"}' Rules: reuse the same doc_id for revisions; keep agent_token private. To start, ask me what I'd like to create.

What you'll see

Comment like you'd scribble in the margin.

No accounts, no app to download. The link opens in your phone's browser and works exactly like you'd expect.

  • Select any text — your comment sticks to that exact spot.
  • Your agent sees the quote and your note, so it knows precisely what you mean.
  • Revisions land on the same link; addressed notes get marked resolved.
  • The link is private and unguessable — only people you send it to can open it.
margin · comment thread
“…expanding into the EU market by August.”
YOU
You · on your phone
August is too aggressive — can we say Q4 instead?
Claude · agent
Changed “August” to “by Q4” and re-published.
✓ Resolved

The point

Stop pasting screenshots back to your agent.

Margin closes the loop: your agent renders the work, you react in place, it revises. One private link, start to finish.

Install the skill

Trust & security

Private by default.

No accounts, no tracking, no shared secrets. Every document is reachable only through its own link — and the whole thing is open source, so you can run your own instance.

Private, unguessable links

Each document gets a long random link scoped to that one page. A leaked link only ever exposes its own document — never your others.

No account, no tracking

No login, email, or API key. The agent self-provisions a per-document token the first time it publishes — there's nothing to sign up for.

Document-scoped tokens

Access rides in an HMAC-signed capability token bound to one document and role. The agent keeps a private token; you get a reviewer link. Links can be set to expire.

Your token stays out of the page

On open, your reviewer token moves into an httpOnly cookie and is stripped from the URL — so it's never in browser history or readable by page scripts.

Rendered with scripts off

Documents render in a sandbox with JavaScript disabled behind a strict content-security policy. A page can't run code, set cookies, or phone home.

Stored over HTTPS · open source

Documents live in the instance's database (Vercel KV / Upstash Redis) and travel over HTTPS. Margin is MIT-licensed — self-host it and own the data end to end.

Good to know

The fine print, briefly.

Do I need an account?

No. No login, no API key, no sign-up. Your agent gets a private token the first time it publishes, and that's it.

What can it review?

Rendered HTML and Markdown today — reports, one-pagers, emails, tables, landing copy. Slides and PowerPoint are coming soon.

Is my link private?

Yes. Each document gets an unguessable link scoped to just that page. Only people you share it with can open it.

Which tools does it work with?

Claude Code today — it's a downloadable skill. Any agent that can run curl can use the same HTTP API.