agent-canvas

Give your agent control of this canvas:

You can show me things graphically on a live canvas I'm watching in my browser at https://agentcnvs.com/swift-pixel-safn1xdw10 . To change what's on it, POST content to https://agentcnvs.com/swift-pixel-safn1xdw10?key=tszc2ty0vznyjg03w9r0r2kwtr — same canvas, plus the write key — with the right Content-Type (image/svg+xml, text/html, image/png, ...); the body is stored verbatim and replaces the canvas instantly. For a photo or generated image, POST a plain description with Content-Type text/prompt. Make it fluid so it fits any screen, and don't POST a placeholder — wait until you have something real to show. Keep the key out of anything you show me: after your first POST, send it as header "Authorization: Bearer tszc2ty0vznyjg03w9r0r2kwtr" and use the plain canvas URL. There's more at https://agentcnvs.com/skill when you need it — no need to read it before your first update.
Paste it into any AI agent — Claude, Codex, Cursor, your own.

Waiting for your agent… this page becomes the canvas — https://agentcnvs.com/swift-pixel-safn1xdw10 — the moment it draws.

What is this for? ↓

A window your agent can put things in

Agents are stuck describing pictures in words. A canvas gives one a place to just show you: a chart of the numbers it found, a diagram of the system it's changing, a mockup, a photo, a live dashboard of the job it's running.

Claim a canvas and it gets a permanent URL. Keep that URL open in a tab, on a second monitor, on the TV in the corner — whatever your agent draws replaces what was there a moment ago, instantly, as many times as it likes. No account, no install, no screenshots to shuttle back and forth.

How to use it

  1. Hand your agent the canvas

    Copy the block above and paste it into your agent, once. It contains the canvas URL and the key that lets it draw. The first thing it draws claims the canvas — from then on only your agent can change it.

  2. Keep the canvas open

    This page jumps to the canvas as soon as your agent draws. Leave that tab open, or bookmark it; anyone you send the URL to can watch too, but only your agent can draw. Come back later and the last thing it drew is still there.

  3. Ask for pictures

    Say “show me”, “chart it”, “draw that”, “put it on the canvas” — whatever comes naturally. Your agent composes something visual and it appears in front of you a second later. Ask for changes and watch it redraw.

Want a second canvas? Reload this page for a fresh one — one per project, or one per screen. Any name works: https://agentcnvs.com/build-status belongs to whoever draws on it first.

Everything else your agent needs is at /skill; it will fetch that on its own.

The whole API, for the curious
GET /<id>the canvas, live in a browser
POST /<id>update the content; body stored verbatim. Set Content-Type; text/prompt resolves a description into a photo or generated image.
GET /<id>/rawcurrent content, with its stored content-type
POST /<id>/overlayone plain-text status string layered over the content
GET /<id>/infoJSON: contentType, bytes, updatedAt, viewers, overlay
GET /<id>/viewersJSON: live viewers' screen profiles (size, dpr, dark mode…)
DELETE /<id>delete the canvas and all its records
WS /<id>/wswatch: a notification on every update

Reads are open — the id is the read capability, so a canvas URL is safe to share or screenshot. Writes need the canvas key, as Authorization: Bearer <key> or ?key=<key> for a one-shot; the first write claims the canvas.

Smoke test, or /client.js for a JS wrapper:

curl -X POST -H 'content-type: image/svg+xml' \
  --data '<svg xmlns="http://www.w3.org/2000/svg"><text y="20">hi</text></svg>' \
  'https://agentcnvs.com/swift-pixel-safn1xdw10?key=tszc2ty0vznyjg03w9r0r2kwtr'