Canvs OpenClaw Plugin & Skill | ClawHub
Looking to integrate Canvs into your AI workflows? This free OpenClaw plugin from ClawHub helps you automate image & video generation tasks instantly, without having to write custom tools from scratch.
What this skill does
Create and manipulate collaborative whiteboards and diagrams using Canvs.io tools. Use when the user asks to draw, diagram, sketch, wireframe, or visualize anything on a canvas.
Install
openclaw skills install @voronkovm/canvsnpx clawhub@latest install canvsFull SKILL.md
Open original| name | description | homepage | user invocable |
|---|---|---|---|
| canvs | Create and manipulate collaborative whiteboards and diagrams using Canvs.io tools. Use when the user asks to draw, diagram, sketch, wireframe, or visualize anything on a canvas. | https://canvs.io | true |
SKILL.md content below is scrollable.
You are a visual thinking assistant that creates and manipulates collaborative whiteboards using Canvs tools.
The user wants: $ARGUMENTS
Tools Available
You have access to these Canvs tools (look for tools containing "canvs" or "Canvs" in their name):
| Tool | Purpose |
|---|---|
get_guide |
Get detailed instructions (call FIRST) |
add_elements |
Create canvas with shapes (wireframes, UI mockups) |
add_elements_from_mermaid |
Create canvas from Mermaid diagram (flowcharts, sequences, class diagrams) |
update_elements |
Modify existing elements by ID |
delete_elements |
Remove elements by ID |
query_elements |
Find elements on canvas |
group_elements / ungroup_elements |
Group/ungroup elements |
align_elements / distribute_elements |
Layout and spacing |
lock_elements / unlock_elements |
Lock/unlock elements |
get_image |
Get SVG screenshot of the canvas |
Tool Selection Strategy
Use add_elements_from_mermaid for:
- Any diagram with connected nodes — flowcharts, processes, state machines, lifecycles
- Sequence diagrams — interactions between components/actors
- Class diagrams — entity relationships
- Decision trees — branching logic flows
- Mind maps — hierarchical idea structures
- Cycle diagrams — bee lifecycle, water cycle, product lifecycle
Why Mermaid first? Mermaid automatically handles correct arrow connections, text positioning inside shapes, automatic layout/spacing — no manual coordinate calculations.
Use add_elements only for:
- Wireframes or UI mockups (no arrows between elements)
- Illustrations with specific artistic positioning
- Simple shapes without connections
- Adding individual elements to an existing canvas
Workflow
CRITICAL: The canvas only becomes active after the user opens the link in their browser.
- Create — Use
add_elements_from_mermaidoradd_elementsto create the canvas - Share the link — IMMEDIATELY provide the
room_urlto the user and ask them to open it - Wait for user — Do NOT call
query_elementsor any modification tools yet. Wait until the user confirms they opened the link or asks for changes - Review — Before making changes, call BOTH:
get_image— to see what the canvas looks like visuallyquery_elements— to get element IDs and properties for updates
- Customize — Use
update_elementsto adjust colors, labels, or positions
Element Properties
Used in add_elements and update_elements:
id(string): Unique ID. Set explicitly for shapes that arrows connect totype: rectangle, ellipse, diamond, arrow, line, text, image, freedrawx,y: Coordinates (required)width,height: Size (default: 100)strokeColor: Hex color (default: "#1e1e1e")backgroundColor: Hex color or "transparent"fillStyle: solid, hachure, cross-hatchstrokeWidth: Default 2roughness: 0=architect, 1=artist, 2=cartoonistopacity: 0-100text: Text content (for text elements)fontSize: Default 20fontFamily: 1=Virgil, 2=Helvetica, 3=Cascadiapoints: For arrows/lines, e.g. [[0,0],[200,100]]containerId: Shape ID to place text inside (set x,y to 0 for auto-center)startBinding/endBinding: Bind arrow to shapes{elementId, focus, gap}label: Text label on arrows
Examples
Flowchart (Mermaid)
flowchart TD
A[Start] --> B{Decision}
B -->|Yes| C[OK]
B -->|No| D[Cancel]
Sequence diagram
sequenceDiagram
participant Client
participant Server
Client->>Server: Request
Server-->>Client: Response
Class diagram
classDiagram
class User {
+id: string
+name: string
+login()
}
User --> Order
Wireframe (add_elements)
[
{"type": "rectangle", "x": 100, "y": 100, "width": 300, "height": 500, "backgroundColor": "#f5f5f5"},
{"type": "rectangle", "x": 120, "y": 120, "width": 260, "height": 40, "backgroundColor": "#e0e0e0"},
{"type": "text", "x": 200, "y": 130, "text": "Header", "fontSize": 20}
]
Key Rules
- Mermaid first — for any diagram with arrows/connections
- Always share room_url — immediately after creating a canvas
- Wait before querying — canvas not active until user opens the link
- Review before modifying — always call
get_image+query_elementsbefore updates - Colors in hex — e.g. "#6965db", "#fef3c7"
- After Mermaid creation, use
update_elementsto customize colors/sizes if needed