Easel

Share a Cursor Canvas with people who don’t use Cursor.

Publish a .canvas.tsxfile to an unlisted URL. The reader gets the real canvas in their browser — no install, no account, no screenshot.

Install

Paste this into Cursor to install and use Easel

Set up Easel on this machine:

1. Install the CLI: curl -fsSL https://easel.cytra.link/install | sh
2. Install the Cursor skill for every project: easel setup --skill --global
3. Check it worked: easel --version && easel list

If `easel` is not found after step 1, the installer prints the directory to
add to PATH. Add it, then retry in a new shell.

Then tell me Easel is ready, and how to publish a canvas.

Or do it yourself. The installer needs Node 20.9 or newer, and points the CLI at this instance when it finishes.

$ curl -fsSL https://easel.cytra.link/install | sh

Publish

$ easel publish analysis.canvas.tsx  published v1 → https://easel.cytra.link/c/8kQ2mXbR7vLpN4wZcT1yHd

Publish the same file again and it becomes the next version. The link you already shared keeps working and shows the newest version, while /v/1 stays pinned to what you sent originally.

Commands

easel publish <file>
Publish a canvas, or add the next version of one
easel list
Every canvas this machine can still edit
easel versions <file>
Every version, with the URL pinned to each
easel delete <file>
Take a canvas and all its versions offline
easel setup --skill
Teach Cursor to publish for you

How it works

  1. Validated, not executed. The server parses your file, requires a default export, and rejects any import other than cursor/canvas. Your code never runs on our servers.
  2. Rendered by the real component set. Canvases render through the open-source cursor/canvas shim, so what your reader sees matches what you see in Cursor.
  3. Sandboxed in the browser. Published code runs in an iframe with an opaque origin and no network access. It cannot read cookies, reach the page around it, or call out.
  4. Unlisted and permanent. There is no index and no search. The link works until you delete it.

Anonymous publishing: your edit token is stored only on your machine, so keep it if you want to publish new versions later.