canvas
Display HTML content — games, visualizations, dashboards, generated HTML, interactive demos — on a connected canvas-capable display surface.
Skill by spinabot
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/spinabot-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 — games, visualizations, dashboards, generated HTML, interactive demos — on a connected canvas-capable display surface. Use when you need to present visual or interactive web content on a screen.
- License
- MIT
- Instructions
- 201 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 Brigade 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/__brigade__/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 the active Brigade config file (`$BRIGADE_CONFIG_PATH`, default `~/.brigade/brigade.json`):
```json
{
"canvasHost": {
"enabled": true,
"port": 18793,
"root": "/Users/you/brigade/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 `~/brigade/canvas/`):
```bash
cat > ~/brigade/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
CONFIG_PATH="${BRIGADE_CONFIG_PATH:-${BRIGADE_STATE_DIR:-$HOME/.brigade}/brigade.json}"
cat "$CONFIG_PATH" | jq '.gateway.bind'
```
Then construct the URL:
- **loopback**: `http://127.0.0.1:18793/__brigade__/canvas/<file>.html`
- **lan/tailnet/auto**: `http://<hostname>:18793/__brigade__/canvas/<file>.html`
Find your Tailscale hostname:From spinabot/brigade, MIT.
More from spinabot/brigade
- 0.788score
skill-creator
spinabot
Create, edit, improve, or audit AgentSkills.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
lead-scout
spinabot
How to find and VERIFY business leads (any niche, any city) — especially "businesses without a website" prospecting.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
pdf
spinabot
Create and edit PDFs to a professional standard — generate from content, draw vector/precise layouts, embed custom (incl.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
share-skills
spinabot
Use when you need to author, package, or share a skill folder — understanding the SKILL.md format, where skills live, and how to bundle a folder so it can be…
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
github
spinabot
GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
healthcheck
spinabot
Host security hardening and risk-tolerance configuration for Brigade deployments.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
taskflow
spinabot
Use when work should span one or more detached tasks but still behave like one job with a single owner context.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
hyperframes
spinabot
Author HTML compositions that the `render_video` tool turns into deterministic MP4 video — animated charts and dashboards, data explainers, text/quote cards…
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
docx
spinabot
Create and edit Microsoft Word (.docx) documents to a professional standard — reports, proposals, contracts, letters, memos — with custom styles, multi-level…
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
node-connect
spinabot
Diagnose Brigade node connection and pairing failures for Android, iOS, and macOS companion apps.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
slack
spinabot
Use when you need to control Slack from Brigade via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
taskflow-inbox-triage
spinabot
Example TaskFlow authoring pattern for inbox triage.
SkillBFreshness: B★ 11.4KClaude Code +9
Signals
- Stars
- 11,356
- Forks
- 77
- Open issues
- 1
- Last commit (this folder)
- May 23, 2026 (5 months ago)
- Last release
- Sep 15, 2026 (1 month ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/spinabot/brigade
- Website
- www.brigade.spinabot.com
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from spinabot
- 0.788score
skill-creator
spinabot
Create, edit, improve, or audit AgentSkills.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
docx
spinabot
Create and edit Microsoft Word (.docx) documents to a professional standard — reports, proposals, contracts, letters, memos — with custom styles, multi-level…
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
pdf
spinabot
Create and edit PDFs to a professional standard — generate from content, draw vector/precise layouts, embed custom (incl.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
github
spinabot
GitHub operations via `gh` CLI: issues, PRs, CI runs, code review, API queries.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
slack
spinabot
Use when you need to control Slack from Brigade via the slack tool, including reacting to messages or pinning/unpinning items in Slack channels or DMs.
SkillBFreshness: B★ 11.4KClaude Code +9 - 0.786score
healthcheck
spinabot
Host security hardening and risk-tolerance configuration for Brigade deployments.
SkillBFreshness: B★ 11.4KClaude Code +9
Cite this page
canvas skill. Agent Mart. https://agentmart.dev/skills/spinabot-canvas (last updated 2026-10-24)