Skill v1.0.2
currentAutomated scan100/100~1 modified
version: "1.0.2" name: sketch description: 'Open a Fabric.js-based SVG editor in the browser for collaborative visual prototyping. Codex writes and reads SVG through MCP tools while the user edits interactively. Changes sync in real-time via WebSocket. Use for wireframes, diagrams, schemes, UI mockups, and visual sketches. Triggers on "open sketch", "sketch canvas", "draw in browser", "fabric canvas".'
Sketch - Collaborative SVG Canvas
Description
Opens a Fabric.js-based SVG editor in the browser for collaborative visual prototyping. Codex can write and read SVG through MCP tools while the user edits interactively. Changes sync in real-time via WebSocket.
Preflight
If the editor shows "disconnected" or WebSocket errors occur, stale server processes may be blocking. Run this before retrying:
pkill -f 'sketch-mcp-server/dist/index.js'
Then reconnect the MCP server (the next tool call will restart it). The server now auto-kills stale instances on startup, but orphaned processes from before this fix may still linger.
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_set_zoom- Set zoom level (1.0 = 100%), optionally zoom toward a specific pointsketch_pan_to- Pan the viewport so (x, y) is at the top-leftsketch_zoom_to_fit- Fit all content in view with padding (call after drawing)sketch_capture_screenshot- Capture a PNG screenshot of the canvas (returns image for visual verification)sketch_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.
Default Visual Style
When generating prototypes, wireframes, diagrams, or schemes, use a minimalist style unless the user specifies otherwise:
- Colors: White/light gray background, black/dark gray for strokes and text. No fills on shapes unless semantically meaningful. Avoid decorative color.
- Strokes: Thin (1-2px), consistent weight. Use slightly heavier weight (2-3px) for emphasis only.
- Typography: Clean, sans-serif. Use size hierarchy for structure (e.g., 24px headings, 16px body, 12px labels). Black or
#333text. - Shapes: Simple rectangles, lines, circles. Rounded corners (rx=4-8) for UI elements. No drop shadows or gradients.
- Layout: Generous whitespace. Align elements to a grid. Clear visual hierarchy through size and spacing, not color.
- Annotations: Use thin arrows and small labels. Keep secondary to the content.
Only introduce color when it carries meaning (e.g., red for errors, green for success, blue for interactive elements) or when the user explicitly requests a colored/branded style.
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