canvas
Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android).
Skill by openxjarvis
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/openxjarvis-canvas-bd96b5
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design, frontend, writing
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/canvas
What's inside
- Skill name
canvas- Description
- Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android). Use when you need to present web-based visualizations, games, dashboards, or interactive demos on a connected device's canvas view.
- License
- MIT
- Instructions
- 200 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- body: contains an absolute path from the author's machine
Files (1)
- SKILL.md
SKILL.md (first lines)
# Canvas Skill
Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android).
## Overview
The canvas tool lets you present web content on any connected node's canvas view. Great for:
- Displaying games, visualizations, dashboards
- Showing generated HTML content
- Interactive demos
## How It Works
### Architecture
```
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Canvas Host │────▶│ Node Bridge │────▶│ Node App │
│ (HTTP Server) │ │ (TCP Server) │ │ (Mac/iOS/ │
│ Port 18793 │ │ Port 18790 │ │ Android) │
└─────────────────┘ └──────────────────┘ └─────────────┘
```
1. **Canvas Host Server**: Serves static HTML/CSS/JS files from `canvasHost.root` directory
2. **Node Bridge**: Communicates canvas URLs to connected nodes
3. **Node Apps**: Render the content in a WebView
### Tailscale Integration
The canvas host server binds based on `gateway.bind` setting:
| Bind Mode | Server Binds To | Canvas URL Uses |
| ---------- | ------------------- | -------------------------- |
| `loopback` | 127.0.0.1 | localhost (local only) |
| `lan` | LAN interface | LAN IP address |
| `tailnet` | Tailscale interface | Tailscale hostname |
| `auto` | Best available | Tailscale > LAN > loopback |
**Key insight:** The `canvasHostHostForBridge` is derived from `bridgeHost`. When bound to Tailscale, nodes receive URLs like:
```
http://<tailscale-hostname>:18793/__openclaw__/canvas/<file>.html
```
This is why localhost URLs don't work - the node receives the Tailscale hostname from the bridge!
## Actions
| Action | Description |
| ---------- | ------------------------------------ |
| `present` | Show canvas with optional target URL |
| `hide` | Hide the canvas |
| `navigate` | Navigate to a new URL |
| `eval` | Execute JavaScript in the canvas |
| `snapshot` | Capture screenshot of canvas |
## Configuration
In `~/.openclaw/openclaw.json`:
```json
{
"canvasHost": {
"enabled": true,
"port": 18793,
"root": "/Users/you/clawd/canvas",
"liveReload": true
},
"gateway": {
"bind": "auto"
}
}
```
### Live Reload
When `liveReload: true` (default), the canvas host:
- Watches the root directory for changes
- Injects a WebSocket client into HTML files
- Automatically reloads connected canvases when files change
Great for development!
## Workflow
### 1. Create HTML content
Place files in the canvas root directory (default `~/clawd/canvas/`):
```bash
cat > ~/clawd/canvas/my-game.html << 'HTML'
<!DOCTYPE html>
<html>
<head><title>My Game</title></head>
<body>
<h1>Hello Canvas!</h1>
</body>
</html>
HTML
```
### 2. Find your canvas host URL
Check how your gateway is bound:
```bash
cat ~/.openclaw/openclaw.json | jq '.gateway.bind'
```
Then construct the URL:
- **loopback**: `http://127.0.0.1:18793/__openclaw__/canvas/<file>.html`
- **lan/tailnet/auto**: `http://<hostname>:18793/__openclaw__/canvas/<file>.html`
Find your Tailscale hostname:
```bashFrom openxjarvis/openclaw-python, MIT.
More from openxjarvis/openclaw-python
- 0.493score
feishu-doc
openxjarvis
Feishu document read/write operations + comment management.
SkillDFreshness: D★ 67Claude Code +9 - 0.493score
docx
openxjarvis
Create, read, edit, or manipulate Word documents (.docx files).
SkillDFreshness: D★ 67Claude Code +9 - 0.493score
pdf
openxjarvis
PDF operations: merge, split, rotate, watermark, extract text/tables, create PDFs, OCR, fill forms, encrypt/decrypt.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
food-order
openxjarvis
Order food from delivery services via web browsing and fetch tools.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
discord-adv
openxjarvis
Advanced Discord server management via Discord API v10: send embeds, create channels, manage roles, moderation.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-urgent
openxjarvis
Feishu urgent message (buzz) notifications.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
bird
openxjarvis
Twitter/X social media integration via web API.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
local-places
openxjarvis
Search for local businesses, restaurants, and places of interest using web search and fetch tools.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-task
openxjarvis
Feishu Task, tasklist, subtask, comment, and attachment management.
SkillDFreshness: D★ 67Claude Code +9 - 0.469score
pptx
openxjarvis
Use this skill any time a .pptx file is involved in any way — as input, output, or both.
SkillDFreshness: D★ 67Claude Code +9
Signals
- Stars
- 67
- Forks
- 23
- Open issues
- 2
- Last commit (this folder)
- Mar 6, 2026 (7 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/openxjarvis/openclaw-python
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from openxjarvis
- 0.493score
feishu-doc
openxjarvis
Feishu document read/write operations + comment management.
SkillDFreshness: D★ 67Claude Code +9 - 0.493score
docx
openxjarvis
Create, read, edit, or manipulate Word documents (.docx files).
SkillDFreshness: D★ 67Claude Code +9 - 0.493score
pdf
openxjarvis
PDF operations: merge, split, rotate, watermark, extract text/tables, create PDFs, OCR, fill forms, encrypt/decrypt.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
food-order
openxjarvis
Order food from delivery services via web browsing and fetch tools.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
discord-adv
openxjarvis
Advanced Discord server management via Discord API v10: send embeds, create channels, manage roles, moderation.
SkillDFreshness: D★ 67Claude Code +9 - 0.488score
feishu-urgent
openxjarvis
Feishu urgent message (buzz) notifications.
SkillDFreshness: D★ 67Claude Code +9
Cite this page
canvas skill. Agent Mart. https://agentmart.dev/skills/openxjarvis-canvas-bd96b5 (last updated 2026-10-24)