canvas

Generates standalone React canvas artifacts rendered beside the Cursor chat for analytical output.

Updated Apr 15, 2026
One-click install
npx skills add https://github.com/shoshoavi/agentic_worflows --skill canvas-shoshoavi
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: canvas
Source: https://github.com/shoshoavi/agentic_worflows/tree/main/cursor/skills-cursor/canvas
Command: npx skills add https://github.com/shoshoavi/agentic_worflows --skill canvas-shoshoavi

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When an agent produces data-heavy analytical results — metrics breakdowns, security audits, billing investigations, MCP tool output — dumping them into markdown tables or code blocks loses clarity. This Skill renders those results as a live, interactive React canvas beside the chat in Cursor. ## Core Features & Use Cases - Decision guidance: Clear rules for when a standalone canvas artifact is appropriate versus when plain chat output, a specific tool deliverable, or targeted debugging is the right answer. - Canvas authoring workflow: Instructions for writing a single .canvas.tsx file in the managed canvases/ directory, importing only from cursor/canvas, embedding data inline, and default-exporting one component. - Design system enforcement: A full SDK of typed components (Stack, Grid, Card, Table, Stat, charts, diff views, forms, DAG layout) plus theme tokens via useHostTheme(), with explicit anti-slop rules banning gradients, emojis, box-shadows, and walls of identical cards. - Use Case: After querying Datadog and Databricks via MCP tools, render the service health metrics, latency trends, and error breakdowns as a rich canvas with Stat grids, line charts, and status tables instead of a markdown dump. ## Quick Start Ask the agent to analyze recent service errors from your MCP tools and present the findings as a canvas.

Frequently Asked Questions about canvas

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I create a Cursor canvas from chat output?▼

Write a single .canvas.tsx file into the workspace's managed canvases directory under ~/.cursor/projects/<workspace>/canvases/. Default-export one React component that imports only from cursor/canvas and embeds all data inline with no fetch calls.

When should I use a canvas instead of a markdown table?▼

Use a canvas when the output is a standalone analytical artifact such as metrics breakdowns, audits, or MCP tool data where the data is the deliverable. Skip it for specific deliverables like drafted messages, code fixes, or work inside an existing tool.

What components does the cursor/canvas SDK provide?▼

The SDK exports layout primitives (Stack, Row, Grid, Divider), typography (H1-H3, Text, Code, Link), surfaces (Card, CardHeader, CardBody), charts (BarChart, LineChart, PieChart), diff views, form controls, TodoList, Stat, Table, and hooks like useHostTheme and useCanvasState.

Why is my canvas blank or not showing up in Cursor?▼

The most common cause is writing the file outside the exact canvases directory for the workspace. Re-save it to ~/.cursor/projects/<workspace>/canvases/ with a .canvas.tsx extension; subfolders and other locations are not detected.

Can a canvas fetch data from an API at runtime?▼

No. Canvases must embed all data inline and cannot use fetch, network calls, npm packages, or Node built-ins. Imports are restricted to the cursor/canvas module only.

Does canvas state persist across IDE restarts?▼

Yes. The useCanvasState hook stores values in a .canvas.data.json sidecar file next to the canvas source, so state survives rebuilds, reloads, and IDE restarts, keyed by a stable string identifier.