Cursor Canvas ツール
Cursor の .canvas.tsx を貼り付けてブラウザでプレビューし、共有用の短縮 URL を発行します。
高度な機能
ソースはブラウザ内で Sucrase によりコンパイルされ、モジュール許可リストに対して評価されます。
- 許可:
cursor/canvas、react、react/jsx-runtime、react/jsx-dev-runtime - それ以外の import はコンパイル時に拒否されます
- ファイルには
from "cursor/canvas" または from 'cursor/canvas' が必要です - ソースの最大長は 200,000 文字です
これはプレビュー用サンドボックスであり、汎用 React バンダラではありません。npm パッケージ、CSS ファイル、ローカルワークスペースの import は解決されません。
プレビューは useHostTheme 経由でサイトのライト / ダークモードに追従します。テーマ切替時に再描画されます。
useCanvasState は現在のページの再構築をまたいでコントロール値を保持します。近くのソースを編集しても、フォーム、ピル、トグルの値は残ります。
Release health
Deployed
canvas-host 1.4.2 is live in all regions.
Budget
Error budget burn is 18% for the current window.
Sample data · not connected to production
import { Callout, Grid, H2, Row, Stack, Stat, Text } from "cursor/canvas";
export default function Metrics() {
return (
<Stack gap={16}>
<H2>Release health</H2>
<Row gap={16} wrap>
<Stat value="99.2%" label="Uptime" tone="success" />
<Stat value="142 ms" label="p95 latency" tone="info" />
<Stat value="3" label="Open incidents" tone="warning" />
</Row>
<Grid columns={2} gap={12}>
<Callout tone="success" title="Deployed">
canvas-host 1.4.2 is live in all regions.
</Callout>
<Callout tone="warning" title="Budget">
Error budget burn is 18% for the current window.
</Callout>
</Grid>
<Text size="small" tone="tertiary">
Sample data · not connected to production
</Text>
</Stack>
);
}
このプレビューは Cursor ギャラリーで使われる公開 cursor/canvas プリミティブをカバーします。レイアウト、タイポグラフィ、カード、コールアウト、統計、テーブル、チャート、Todo、Diff、DAG ヘルパーです。
Traffic mix
Sample telemetry · stacked series and donut share
import { BarChart, H2, PieChart, Stack, Text } from "cursor/canvas";
export default function Charts() {
return (
<Stack gap={16}>
<H2>Traffic mix</H2>
<BarChart
categories={["Mon", "Tue", "Wed", "Thu", "Fri"]}
series={[
{ name: "Accepted", data: [42, 55, 48, 61, 58], tone: "success" },
{ name: "Rejected", data: [8, 6, 11, 7, 9], tone: "danger" },
]}
stacked
height={200}
/>
<PieChart
data={[
{ label: "IDE", value: 128, tone: "info" },
{ label: "CLI", value: 34, tone: "success" },
{ label: "Cloud", value: 51, tone: "warning" },
]}
donut
size={180}
/>
<Text size="small" tone="tertiary">
Sample telemetry · stacked series and donut share
</Text>
</Stack>
);
}
- 共有 URL は
/cursor-canvas/cv_xxxx の形式です - 開くたびに
viewCount が増えます - 所有者が 公開済みリンク から削除するまで残ります
- 同じ owner の同一ソース MD5 は既存レコードを再利用します(
reused: true)
Web 上では useCanvasAction が公式 deeplink で Cursor を開きます。newComposerChat はチャットプロンプトを事前入力します。絶対パスの openFile は cursor://file/... を使います。ワークスペース相対パスはブラウザから解決できないため、同じくプロンプトを事前入力します。openAgent には公開 deeplink がないため、会話 id 付きのプロンプトを事前入力します。Cursor 起動前に OS の確認が出ます。