cyzus/suzent/suzent-canvas
Claude Code and agent skill by cyzus/suzent
- community
Checking that the SKILL.md file is still in the repository.
Render tables, forms, cards, buttons, dashboards, or custom interactive visuals in Suzent's desktop canvas or inline chat UI. Use when structured interactive presentation materially improves a desktop conversation; do not use for social or headless delivery.
Install
npx vskill@latest install cyzus/suzent/suzent-canvasSKILL.md
Canvas
Use render_ui only when the current environment can display A2UI surfaces. Prefer a normal text response for simple answers, one-off confirmations, social channels, and headless automation.
Workflow
- Choose a stable
surface_idthat describes the content. - Leave
targetasinline(the default); the user can pop a surface out to the side
panel or fullscreen. Use target="canvas" only for a surface kept in view and updated while the conversation continues, such as live progress or a dashboard.
- Build the smallest component tree that communicates the result, laid out for a
narrow column (roughly 360-700px): stack rather than spread wide.
- Reuse the same
surface_idto update an existing surface. - Set an
actionon every button and form; usecontextfor stable identifiers.
Use typed components for simple semantic controls (status cards, tables, forms, buttons, progress) and html for complex displays such as charts, SVG and custom dashboards. Read references/components.md before building a non-trivial tree, custom HTML visualization, or multi-step form; it has copyable JSON for each.
Constraints
componentis one JSON object, never a string:{"type": "card", "children": [...]}.
Every node, including each entry of children, is an object with a type. Children are objects, never indexes or ids such as [0, 1].
- Put every field inside
component; do not spreadtypeorchildrenbesidesurface_id. - Use
contentfor text andlabelfor buttons or badges; never invent atextfield. - If a call is rejected, fix the exact fields named in the error and call again. Do not
switch a simple form or table to html just to get past a validation error.
- Keep action names stable and specific because they return to the conversation as
[canvas: <action>] events.
- Do not render a choice UI merely because options exist. Use it when clicking is
meaningfully easier or less error-prone than replying in text.
- Treat HTML as untrusted presentation code. Keep it self-contained, do not include
secrets, and use postMessage only for minimal JSON action payloads.
- If
render_uireports that canvas is unavailable, continue with an equivalent text
response rather than retrying the same call.
Security
- Security scanPassed, 90 of 100Pattern checks on the skill's files.
- Model reviewPassed
Quality evaluation
- Task evaluationNot runNo evaluation yet. Run one in Skill Studio.
Source
- SKILL.md in the repositoryCheckingskills/suzent-canvas/SKILL.md
Popularity
- 7-day trend score
- 5
Not refreshed yet.
Works with
Any agent vskill installs to: 56 targets in all. These 39 have a page on this site.
- Claude Code
- Cursor
- GitHub Copilot
- Windsurf
- Codex
- Gemini CLI
- Cline
- Amp
- Roo Code
- Goose
- Continue
- Kilo Code
- Junie
- Trae
- OpenHands
- Qwen Code
- AI Agent
- Tabnine Chat
- Sourcegraph Cody
- Amazon Q
- Firebase Genkit
- Sweep
- Devin
- Phind
- Mentat
- Claude Desktop
- Aider
- GPT Pilot
- Plandex
- bolt.new
- v0
- Replit Agent
- Anse
- TypingMind
- BetterChatGPT
- LibreChat
- Warp AI
- Pieces
- Fig AI
Embed badge
[](https://verified-skill.com/skills/cyzus/suzent/suzent-canvas)