canvas

Creates standalone React canvas artifacts in Cursor IDE for analytical and data-heavy output.

3|Updated Jul 2, 2026
One-click install
npx skills add https://github.com/ArangoGutierrez/claude-toolkit --skill canvas-arangogutierrez
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: canvas
Source: https://github.com/ArangoGutierrez/claude-toolkit/tree/main/.cursor/skills-cursor/canvas
Command: npx skills add https://github.com/ArangoGutierrez/claude-toolkit --skill canvas-arangogutierrez

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? When an agent produces analytical results — metrics breakdowns, billing investigations, security audits, or structured MCP tool data — plain markdown tables and code blocks in chat are hard to read and easy to lose. This Skill renders that output as a live React canvas the user can open beside the chat in Cursor IDE. ## Core Features & Use Cases - Canvas decision workflow: Determines when output warrants a standalone canvas artifact versus plain chat text, based on user intent rather than response shape. - Cursor canvas SDK guidance: Enforces correct use of the cursor/canvas component library — charts, tables, cards, diffs, forms, DAG layouts — with type declarations for every export. - Design quality enforcement: Applies a flat, minimal design policy (no gradients, emojis, box-shadows, or empty states) with a pre-delivery self-check. - Use Case: After querying Datadog via MCP for API error rates, render the results as a labeled multi-series line chart canvas with stats and a findings table instead of dumping a markdown table into chat. ## Quick Start Ask the agent to analyze the last 7 days of Datadog error rates and present the results 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 canvas in Cursor IDE?▼

Write a single .canvas.tsx file into the workspace's managed canvases directory under ~/.cursor/projects/<workspace>/canvases/. The file must default-export a React component, import only from cursor/canvas, and embed all data inline with no fetch calls.

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

Use a canvas when the agent produces standalone analytical output such as metrics breakdowns, audit findings, or MCP tool data where the data is the deliverable. Skip it for targeted debugging, code fixes, drafted messages, or work in a specific external tool.

What components are available in the cursor/canvas SDK?▼

The SDK exports layout primitives (Stack, Row, Grid), typography (H1-H3, Text, Code), surfaces (Card, Callout, Table), charts (BarChart, LineChart, PieChart), diff viewers, form controls, a DAG layout function, and hooks like useHostTheme and useCanvasState.

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

The most common cause is writing the file outside the exact canvases directory the IDE watches. Re-save it to ~/.cursor/projects/<workspace>/canvases/ with a .canvas.tsx extension, and check the optional .canvas.status.json sidecar for build diagnostics.

Can a Cursor 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. Gather the data first through agent tools, then write it directly into the canvas file.

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 interactive state survives rebuilds, reloads, and IDE restarts.