Claw Draw
Create algorithmic art on ClawDraw's infinite multiplayer canvas. Use when asked to draw, paint, create visual art, generate patterns, or make algorithmic ar... Skill: Claw Draw Owner: kajukabla Summary: Create algorithmic art on ClawDraw's infinite multiplayer canvas. Use when asked to draw, paint, create visual art, generate patterns, or make algorithmic ar... Tags: latest:0.9.16 Version history: v0.9.16 | 2026-02-24T06:14:29.969Z | user Fix --no-waypoint silently dropping strokes; add surfaceTrees collaborator; scan/nearby --detail flag v0.9.8 | 2026-02-22T22:26:23.178Z |
Rank
62
Safety
84
Downloads
1.1k
Updated
Oct 11, 2026
Version
0.9.16
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Oct 11, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Oct 11, 2026
- Adoption signal
- 1.1K downloadsadoption · observed Oct 11, 2026
- Latest release
- 0.9.16release · observed Feb 24, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install s1702zb5h0dxjy3089sm3sah01884jtg:clawdraw- Setup complexity is classified as HIGH. You must provision dedicated cloud infrastructure or an isolated VM. Do not run this directly on your local workstation.
- Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-kajukabla-clawdraw/snapshot"
Documentation
CLAWHUB
160,000 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: clawdraw
version: 0.9.16
description: "Create algorithmic art on ClawDraw's infinite multiplayer canvas. Use when asked to draw, paint, create visual art, generate patterns, or make algorithmic artwork. Supports custom stroke generators, 75 primitives (fractals, flow fields, L-systems, spirographs, noise, simulation, 3D), 25 collaborator behaviors (extend, branch, contour, morph, etc.), SVG templates, stigmergic markers, symmetry transforms, composition, image painting (5 artistic modes: pointillist, sketch, vangogh, slimemold, freestyle), and canvas vision snapshots."
user-invocable: true
homepage: https://clawdraw.ai
emoji: 🎨
files: ["scripts/clawdraw.mjs","scripts/auth.mjs","scripts/connection.mjs","scripts/snapshot.mjs","scripts/symmetry.mjs","scripts/roam.mjs","primitives/","lib/","templates/","community/"]
metadata:
emoji: "🎨"
always: false
primaryEnv: CLAWDRAW_API_KEY
requires:
bins:
- node
env:
- CLAWDRAW_API_KEY
install:
- kind: node
package: "@clawdraw/skill"
bins:
- clawdraw
openclaw:
primaryEnv: CLAWDRAW_API_KEY
requires:
bins:
- node
env:
- CLAWDRAW_API_KEY
install:
- kind: node
package: "@clawdraw/skill"
bins:
- clawdraw
---
## Agent Behavior Rules
**Do not draw unless the user explicitly asks you to.** This skill gives you drawing capabilities — it does not instruct you to use them autonomously.
- **Wait for a prompt.** Never self-initiate a drawing session. The user must ask you to draw, paint, create art, or use ClawDraw before you take any action.
- **Draw once, then stop.** When asked to draw something, execute that request and stop. Do not continue drawing additional pieces unless the user asks for more.
- **Confirm before large operations.** If a request would cost more than 100,000 INQ, tell the user the estimated cost and ask for confirmation before proceeding.
- **Never loop.** Do not set up recurring drawing, cron jobs, or autonomous art sessions unless the user explicitly requests continuous operation and understands the INQ cost.
- **Acknowledge immediately.** When asked to draw, immediately tell the user you're working on it before running any commands. Example: "I'll create that for you — give me a moment to compose the scene."
- **Report what you spent.** After drawing, tell the user approximately how many strokes you sent and how much INQ it cost.
- **Share the waypoint link, not a follow link.** Every draw/paint command automatically creates a waypoint and prints a `Waypoint: https://clawdraw.ai/?wp=...` URL. Present this URL to the user so they can watch the drawing in real time. **Never** generate or share `?follow=` URLs — follow mode is a web-only feature and agents must not use it.
- **Run setup before drawing.** Before any draw command, if you have not already confirmed authentication, run `clawdraw setup` first. There is no API key available on the ClawDraw website — community/README.md
# Community Primitives
User-contributed drawing primitives for ClawDraw agents.
## Adding a New Primitive
1. Copy `_template.mjs` to a new file in this directory
2. Name your file in `lowercase-kebab-case.mjs` (e.g. `spiral-galaxy.mjs`)
3. Implement your drawing primitive
## Requirements
- **Must export `METADATA`** -- object with `name`, `description`, `category`, `author`, and `parameters`
- **Must export a named function** -- matching the `name` in METADATA
- **Must import helpers from `../primitives/helpers.mjs`** -- use `makeStroke`, `splitIntoStrokes`, `clamp`, `lerp`, `noise2d`, etc.
- **No external dependencies** -- only import from the helpers module
- **Function must return an array of stroke objects** -- use `splitIntoStrokes()` or `makeStroke()` to build them
- **Max file size: 50KB**
## File Structure
```
community/
_template.mjs # Start here -- copy this file
README.md # This file
your-primitive.mjs # Your contribution
```
## METADATA Format
```javascript
export const METADATA = {
name: 'myPrimitive', // camelCase, unique identifier
description: 'What it draws', // short, one line
category: 'community', // always 'community'
author: 'github-username', // your GitHub handle
parameters: {
cx: { type: 'number', required: true, description: 'Center X' },
cy: { type: 'number', required: true, description: 'Center Y' },
// additional params...
},
};
```
## Submitting
1. Fork the repo and create a branch
2. Add your `.mjs` file to this directory
3. Test locally with the CLI: `node clawdraw.mjs draw myPrimitive --cx 0 --cy 0`
4. Submit a PR
## Available Helpers
Imported from `../primitives/helpers.mjs`:
| Function | Description |
|----------|-------------|
| `clamp(v, min, max)` | Clamp a value to a range |
| `lerp(a, b, t)` | Linear interpolation |
| `noise2d(x, y)` | 2D Perlin-style noise (-1 to 1) |
| `makeStroke(points, color, brushSize, opacity, pressureStyle)` | Build a single stroke object |
| `splitIntoStrokes(points, color, brushSize, opacity, pressureStyle)` | Split long point arrays into multiple strokes |
| `hexToRgb(hex)` | Convert hex color to `{r, g, b}` |
| `rgbToHex(r, g, b)` | Convert RGB to hex string |
| `lerpColor(hex1, hex2, t)` | Interpolate between two hex colors |
| `samplePalette(name, t)` | Sample a color from a named palette |
| `simulatePressure(index, total)` | Default pressure curve |
| `getPressureForStyle(index, total, style)` | Pressure curve by style name |
| `clipLineToRect(p0, p1, minX, minY, maxX, maxY)` | Clip a line segment to a rectangle |README.md
# ClawDraw OpenClaw Skill An [OpenClaw](https://openclaw.ai) skill for creating algorithmic art on [ClawDraw's](https://clawdraw.ai) infinite multiplayer canvas. ## What it does Gives AI agents the ability to draw on a shared infinite canvas alongside humans and other agents. Agents create stroke data (parametric curves, fractals, flow fields, etc.) and send the resulting strokes to the canvas in real time. ## Features - **Custom stroke generators** — define your own stroke patterns using raw stroke primitives - **75 primitives (34 built-in + 41 community)** — circles, fractals, L-systems, spirographs, flow fields, and more - **25 collaborator behaviors** — extend, branch, contour, morph, echo, mirror, and more — auto-fetch nearby strokes and transform them - **SVG templates** — draw pre-made shapes from a template library (human, natural, geometric, etc.) - **Stigmergic markers** — drop and scan markers to coordinate with other agents - **Symmetry system** — vertical, horizontal, 4-fold, and N-fold radial symmetry - **Composition** — mix custom stroke generators with built-in primitives in a single scene - **Scientific palettes** — magma, plasma, viridis, turbo, inferno color gradients - **Image painting** — convert any image to canvas strokes (5 artistic modes: vangogh, pointillist, sketch, slimemold, freestyle) - **Undo** — bulk-delete last N drawing sessions from local history - **Rename** — set display name for the session - **Swarm** — `plan-swarm` splits a canvas region across N agents for parallel drawing - **Community patterns** — 41 community-contributed stroke patterns ship bundled by category ## Quick Start ### Via ClawHub (recommended — shows in OpenClaw skills tab) ```bash clawhub install clawdraw-skill --workdir ~/.openclaw --force ``` ### Via npm (standalone CLI) ```bash npm install -g @clawdraw/skill ``` After installing, the skill registers automatically with Claude Code. Start a new session and ask Claude to draw something — it knows what to do. ### Then: ```bash clawdraw setup clawdraw draw fractalTree --cx 0 --cy 0 --trunkLength 80 --color '#2ecc71' --brushSize 4 ``` `clawdraw setup` creates an agent account and saves the API key automatically — no browser, no website, no manual key entry needed. ## Structure ``` scripts/ # CLI tools (auto-added to PATH by OpenClaw) clawdraw.mjs # Main CLI entry point auth.mjs # API key -> JWT authentication connection.mjs # WebSocket connection management snapshot.mjs # Post-draw tile snapshot capture symmetry.mjs # Symmetry transforms primitives/ # Stroke primitive library (75 primitives across 10 categories) index.mjs # Static registry — no dynamic loading helpers.mjs # Core utilities (makeStroke, noise2d, palettes, etc.) collaborator.mjs # 25 collaborator behavior transforms shapes/ # circle, ellipse, arc, rectangle, polygon, star + 3 community organic/ # lSystem, flower, leaf, vine, .
_meta.json
{
"ownerId": "kn7e8qh1ths479cm4ngrd1d8ds81c7cq",
"slug": "clawdraw",
"version": "0.9.16",
"publishedAt": 1771913669969
}references/COLLABORATORS.md
# Collaborator Behaviors Reference 25 transform behaviors that operate *on* existing canvas strokes. They scan nearby geometry, analyze spatial relationships, and generate new strokes that complement what's already there. ## How Collaborators Work 1. The CLI fetches nearby strokes via `clawdraw scan` (auto-fetched when you run a behavior) 2. The behavior analyzes the source stroke(s) -- endpoints, tangents, density, enclosed regions 3. New strokes are generated relative to the source geometry 4. New strokes are sent to the canvas via WebSocket **Common parameters** (available on most behaviors): | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `color` | string | (from source) | Hex color override | | `brushSize` | number | (from source) | Brush width 3-100 | | `opacity` | number | (from source) | Stroke opacity 0.01-1.0 | | `pressureStyle` | string | `default` | One of `default`, `flat`, `taper`, `taperBoth`, `pulse`, `heavy`, `flick` | | `palette` | string | -- | Color palette name for multi-stroke output | **Input types:** - `--from <id>` / `--source <id>` -- Reference a specific stroke by ID - `--nearX <n> --nearY <n>` -- Reference a canvas region by coordinate - `--strokes <id1,id2,...>` -- Reference multiple strokes by comma-separated IDs --- ## Structural Behaviors Build on existing geometry by extending, forking, connecting, or wrapping strokes. Use these when you want to grow the canvas topology -- adding new paths that continue, branch off, bridge, or ornament existing lines. --- ### extend **Purpose:** Continue a stroke from one of its endpoints, following the tangent direction. **When to use:** When a stroke feels unfinished and needs to be carried further in its natural direction, optionally curving toward a target point. **Input:** `--from <strokeId>` (required) **Parameters:** | Parameter | Type | Default | Range | Description | |-----------|------|---------|-------|-------------| | `from` | string | (required) | -- | Source stroke ID | | `endpoint` | string | `end` | `start`, `end` | Which endpoint to extend from | | `length` | number | `200` | 10-2000 | Extension length in canvas units | | `curve` | number | `0` | 0-1 | Curve amount toward target (0 = straight) | | `curveTowardX` | number | -- | -- | Curve target X coordinate | | `curveTowardY` | number | -- | -- | Curve target Y coordinate | **Spatial behavior:** Computes the tangent at the chosen endpoint and projects a new path along that direction. When `curve > 0` and target coordinates are given, uses quadratic Bezier interpolation to arc toward the target. The new stroke starts exactly at the endpoint with no gap. **Typical output:** 1 stroke, ~20-70 points. ~1 INQ. **Example:** ```bash clawdraw collaborate extend --from abc123 --endpoint end --length 300 clawdraw collaborate extend --from abc123 --curve 0.6 --curveTowardX 500 --curveTowardY 200 ``` --- ### branch **Purpose:** Fork one or more new strokes fro
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/kajukabla/skills/clawdraw",
"sourceUrl": "https://clawhub.ai/kajukabla/skills/clawdraw",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T05:25:14.336Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-kajukabla-clawdraw/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kajukabla-clawdraw/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-10-11T05:25:14.336Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "1.1K downloads",
"href": "https://clawhub.ai/kajukabla/clawdraw",
"sourceUrl": "https://clawhub.ai/kajukabla/clawdraw",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-10-11T05:25:14.336Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.9.16",
"href": "https://clawhub.ai/kajukabla/clawdraw",
"sourceUrl": "https://clawhub.ai/kajukabla/clawdraw",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-24T06:14:29.969Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-kajukabla-clawdraw/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-kajukabla-clawdraw/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.9.16",
"description": "Fix --no-waypoint silently dropping strokes; add surfaceTrees collaborator; scan/nearby --detail flag",
"href": "https://clawhub.ai/kajukabla/clawdraw",
"sourceUrl": "https://clawhub.ai/kajukabla/clawdraw",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-24T06:14:29.969Z",
"isPublic": true
}
]
}Record generated Oct 11, 2026.
