canvas
Display HTML content on connected OpenClaw nodes (Mac app, iOS, Android).
Skill by JansenAnalytics
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/jansenanalytics-canvas
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).
- 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 (via chokidar)
- 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 JansenAnalytics/claudex, MIT.
More from JansenAnalytics/claudex
- 0.534score
api-critic
JansenAnalytics
Autonomous API testing and evaluation.
SkillCFreshness: C★ 5Claude Code +9 - 0.534score
budget
JansenAnalytics
Estimate and rank what is consuming the context window — CLAUDE.md, MEMORY.md, USER.md, the 162 auto-loaded skill descriptions (ranked heaviest-first), and…
SkillCFreshness: C★ 5Claude Code +9 - 0.531score
architecture-critic
JansenAnalytics
Static code analysis like a senior developer — cyclomatic/cognitive complexity, dead code detection, dependency graph analysis (circular deps, god modules)…
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
memory-search
JansenAnalytics
Semantic memory search across all agent memories and conversation history.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
adr-manager
JansenAnalytics
Record and retrieve Architecture Decision Records — log a decision's context, options, rationale, and tradeoffs, then list/search them.
SkillCFreshness: C★ 5Claude Code +9 - 0.528score
weather
JansenAnalytics
Get current weather and forecasts.
SkillCFreshness: C★ 5Claude Code +9 - 0.526score
a11y-audit
JansenAnalytics
Accessibility auditing: WCAG compliance checking, contrast ratios, ARIA labels, keyboard navigation, semantic HTML, screen reader compatibility.
SkillCFreshness: C★ 5Claude Code +9 - 0.525score
backup-restore
JansenAnalytics
Automated backup strategies: database dumps, file snapshots, incremental backups, verification, disaster recovery.
SkillCFreshness: C★ 5Claude Code +9 - 0.525score
api-tester
JansenAnalytics
Systematic REST and GraphQL API endpoint testing: happy path, error cases, auth flows, rate limits, schema validation.
SkillCFreshness: C★ 5Claude Code +9 - 0.523score
arch-diagram
JansenAnalytics
Generate architecture diagrams from codebase analysis: Mermaid, PlantUML, or ASCII.
SkillCFreshness: C★ 5Claude Code +9 - 0.519score
calendar-manager
JansenAnalytics
Read and manage Google Calendar events: list upcoming, create events, check availability, send reminders.
SkillCFreshness: C★ 5Claude Code +9 - 0.504score
bluebubbles
JansenAnalytics
Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration).
SkillCFreshness: C★ 5Claude Code +9
Signals
- Stars
- 5
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jun 3, 2026 (4 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/JansenAnalytics/claudex
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from JansenAnalytics
- 0.534score
api-critic
JansenAnalytics
Autonomous API testing and evaluation.
SkillCFreshness: C★ 5Claude Code +9 - 0.534score
budget
JansenAnalytics
Estimate and rank what is consuming the context window — CLAUDE.md, MEMORY.md, USER.md, the 162 auto-loaded skill descriptions (ranked heaviest-first), and…
SkillCFreshness: C★ 5Claude Code +9 - 0.531score
architecture-critic
JansenAnalytics
Static code analysis like a senior developer — cyclomatic/cognitive complexity, dead code detection, dependency graph analysis (circular deps, god modules)…
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
adr-manager
JansenAnalytics
Record and retrieve Architecture Decision Records — log a decision's context, options, rationale, and tradeoffs, then list/search them.
SkillCFreshness: C★ 5Claude Code +9 - 0.529score
memory-search
JansenAnalytics
Semantic memory search across all agent memories and conversation history.
SkillCFreshness: C★ 5Claude Code +9 - 0.528score
weather
JansenAnalytics
Get current weather and forecasts.
SkillCFreshness: C★ 5Claude Code +9
Cite this page
canvas skill. Agent Mart. https://agentmart.dev/skills/jansenanalytics-canvas (last updated 2026-10-24)