Cursor Canvas 工具
粘贴 Cursor 生成的 .canvas.tsx,在浏览器里预览,并生成可分享短链。
API 参考
所有路由都在 /api/cursor-canvas 下。作者身份绑定当前 session 用户(含匿名用户,cookie 为 sessionId)。同一浏览器才能列出、更新和删除自己的记录。
POST /api/cursor-canvas
保存源码并返回短链。
请求:
{
"source": "import { H1 } from \"cursor/canvas\";\nexport default function App() { return <H1>Hi</H1>; }",
"title": "Optional",
"access": "public",
"password": "optional-when-access-is-password",
"expiresAt": "2026-12-31T23:59:59.000Z"
}
| 字段 | 类型 | 说明 |
|---|---|---|
source | string | 必填。20–200,000 字符。必须从 cursor/canvas 导入。 |
title | string | 可选。最多 200 字符。显示在分享页。 |
access | string | 可选。public(默认)或 password。 |
password | string | access 为 password 时必填。最多 100 字符。服务端存原文。 |
expiresAt | string | 可选 ISO 时间。不传表示不过期。 |
响应:
{
"canvasId": "cv_a1b2c3d4e5f6",
"shareUrl": "https://example.com/cursor-canvas/cv_a1b2c3d4e5f6",
"title": "Optional",
"sourceMd5": "5d41402abc4b2a76b9719d911017c592",
"reused": false,
"createdAt": "2026-08-31T08:00:00.000Z",
"access": "public",
"hasPassword": false,
"expiresAt": null
}
同一 owner 已经发布过相同 MD5 时,reused 为 true。这次请求里的权限、密码和过期时间会覆盖原设置。
GET /api/cursor-canvas/:canvasId
加载分享页源码。受保护链接请带 query password。作者 session 可跳过密码,过期后仍能打开。
{
"canvasId": "cv_a1b2c3d4e5f6",
"title": "Optional",
"source": "import { H1 } from \"cursor/canvas\";\nexport default function App() { return <H1>Hi</H1>; }",
"viewCount": 3,
"createdAt": "2026-08-31T08:00:00.000Z",
"access": "public",
"requiresPassword": false,
"canOpenEditor": true,
"expiresAt": null
}
canOpenEditor仅为作者为true。分享页用它决定是否显示 打开编辑器。- 需要密码时
requiresPassword为true,source为空,直到密码正确。 - 访客打开已过期链接返回
410。密码错误返回401。
PATCH /api/cursor-canvas/:canvasId
用当前 session 用户更新自己的 canvas 源码和分享设置。打开编辑器 会把这份 canvas 载入编辑页;保存走这个接口,短链(canvasId)保持不变。
请求体与 POST 相同,但 password 可选:access 为 password 时不传则保留原密码。改成 public 会清除密码。没有 session 用户返回 401。非作者返回 403。
GET /api/cursor-canvas/mine
列出当前 session 用户的 canvas。没有 session 用户时返回 []。
DELETE /api/cursor-canvas/:canvasId
删除当前 session 用户创建的 canvas。成功返回 204。没有 session 用户时返回 401。
source 示例 canvas
在线预览
hello.canvas.tsx
Hello, Canvas
Live preview rendered in the browser from cursor/canvas.