Agent skill
sketch
Stars
74
Forks
17
Install this agent skill to your Project
npx add-skill https://github.com/glebis/claude-skills/tree/main/sketch
SKILL.md
Sketch - Collaborative SVG Canvas
Description
Opens a Fabric.js-based SVG editor in the browser for collaborative visual prototyping. Claude can write and read SVG through MCP tools while the user edits interactively. Changes sync in real-time via WebSocket.
Tools Available (via sketch-mcp-server)
sketch_open_canvas- Open a named canvas (creates if new), launches browser editorsketch_get_svg- Read current SVG from a canvassketch_set_svg- Replace entire canvas with new SVGsketch_add_element- Add SVG elements without clearing existing contentsketch_add_textbox- Add a fixed-width text area (Textbox) with word wrappingsketch_lock_objects- Lock all current objects (non-selectable, non-movable)sketch_unlock_objects- Unlock all objectssketch_save_template- Save canvas as reusable JSON template (preserves Textbox widths + lock state)sketch_load_template- Load a saved JSON template into a canvassketch_list_templates- List all saved templatessketch_clear_canvas- Clear canvas to blank state (use before streaming)sketch_focus_canvas- Bring canvas window to foregroundsketch_list_canvases- List all active canvasessketch_close_canvas- Close a canvas and its browser tab
Usage Patterns
Quick sketch
sketch_open_canvaswith a namesketch_set_svgorsketch_add_elementto draw- User edits in browser
sketch_get_svgto see changes
Streaming (real-time build-up)
sketch_open_canvaswith a namesketch_focus_canvasto bring window to frontsketch_clear_canvasto start fresh- Call
sketch_add_elementmultiple times -- each fragment appears instantly - User watches the UI build up in real-time
Multiple canvases
Each canvas opens in its own browser tab. Use different names for different drawings.
SVG tips
- Use standard SVG elements:
<rect>,<circle>,<ellipse>,<line>,<path>,<text>,<polygon>,<polyline> - Include
xmlns="http://www.w3.org/2000/svg"on the root<svg>element - Set
widthandheighton the root SVG (default: 1200x800) - Colors: use hex colors (
#ff0000) -- avoidrgba()as Fabric.js SVG parser may not handle it - Text:
<text x="100" y="100" font-size="24">Hello</text> - Images:
<image href="data:image/png;base64,..." width="200" height="200"/> - Avoid
<defs>,<linearGradient>,<filter>-- Fabric.js has limited support for these
Didn't find tool you were looking for?