Canvas Skill
Present interactive HTML, visualizations, dashboards, and generated interfaces on connected Cybara nodes.
Skill by metaspartan
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/metaspartan-canvas-skill
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
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 and code. 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-skill
What's inside
- Skill name
Canvas Skill- Description
- Present interactive HTML, visualizations, dashboards, and generated interfaces on connected Cybara nodes.
- License
- MIT
- Instructions
- 191 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- name: only lowercase letters, digits and single hyphens allowed
- name: "Canvas Skill" does not match folder "canvas"
Files (1)
- SKILL.md
SKILL.md (first lines)
# Canvas Skill
Display HTML content on connected Cybara 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/__cybara__/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 `~/.cybara/config.json`:
```json
{
"canvasHost": {
"enabled": true,
"port": 18793,
"root": "~/cybara/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 `~/cybara/canvas/`):
```bash
cat > ~/cybara/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 ~/.cybara/config.json | jq '.gateway.bind'
```
Then construct the URL:
- **loopback**: `http://127.0.0.1:18793/__cybara__/canvas/<file>.html`
- **lan/tailnet/auto**: `http://<hostname>:18793/__cybara__/canvas/<file>.html`
Find your Tailscale hostname:
```bash
tailscale status --json | jq -r '.Self.DNSName' | sed 's/\.$//'
```
### 3. Find connected nodes
```bashFrom metaspartan/cybara, MIT.
More from metaspartan/cybara
- 0.652score
bevy
metaspartan
Build, test, debug, and optimize Rust games and tools using the Bevy engine, ECS scheduling, assets, rendering, and platform features.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
code-review
metaspartan
Review code changes for correctness, security, performance, and maintainability before merging.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
comfyui
metaspartan
Drive ComfyUI (local Stable Diffusion / image-gen pipeline) via its HTTP API to generate and edit images.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
game-asset-pipeline
metaspartan
Prepare, import, validate, and optimize game models, textures, materials, rigs, animation, audio, collision, and level assets across engines.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
diagram-maker
metaspartan
Generate clean SVG/HTML diagrams for architecture, flows, sequences, ER diagrams, and whiteboards.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
game-development
metaspartan
Route and execute game project work across Unreal Engine, Unity, Godot, Bevy, browser engines, assets, performance, builds, and playtesting.
SkillAFreshness: A★ 32Claude Code +9 - 0.649score
unreal-engine
metaspartan
Build, debug, test, package, and optimize Unreal Engine projects using C++, Blueprints, Automation Tests, Unreal Build Tool, and Automation Tool.
SkillAFreshness: A★ 32Claude Code +9 - 0.649score
blender-headless
metaspartan
Build, render, and visually verify 3D models with Blender's Python API in headless mode, using the image tool to inspect renders and iterate.
SkillAFreshness: A★ 32Claude Code +9 - 0.649score
godot
metaspartan
Build, debug, test, export, and optimize Godot projects using GDScript or C#, scenes, resources, headless workflows, and engine-native diagnostics.
SkillAFreshness: A★ 32Claude Code +9 - 0.649score
web-game-development
metaspartan
Implement and optimize browser games using Phaser, Three.js, React Three Fiber, Babylon.js, or PlayCanvas with responsive input, asset loading, rendering, and…
SkillAFreshness: A★ 32Claude Code +9 - 0.649score
game-playtesting
metaspartan
Test a game end to end like a player across boot, controls, gameplay loops, UI, save state, failure recovery, rendering, audio, performance, and platform…
SkillAFreshness: A★ 32Claude Code +9 - 0.649score
authorized-web-pentest
metaspartan
Run an authorized, scoped web application security test with evidence-based findings and strict active-testing guardrails.
SkillAFreshness: A★ 32Claude Code +9
Signals
- Stars
- 32
- Forks
- 9
- Open issues
- 0
- Last commit (this folder)
- Jul 17, 2026 (3 months ago)
- Last release
- Oct 24, 2026 (5 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/metaspartan/cybara
- Website
- cybara.ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from metaspartan
- 0.652score
code-review
metaspartan
Review code changes for correctness, security, performance, and maintainability before merging.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
comfyui
metaspartan
Drive ComfyUI (local Stable Diffusion / image-gen pipeline) via its HTTP API to generate and edit images.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
game-asset-pipeline
metaspartan
Prepare, import, validate, and optimize game models, textures, materials, rigs, animation, audio, collision, and level assets across engines.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
game-development
metaspartan
Route and execute game project work across Unreal Engine, Unity, Godot, Bevy, browser engines, assets, performance, builds, and playtesting.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
bevy
metaspartan
Build, test, debug, and optimize Rust games and tools using the Bevy engine, ECS scheduling, assets, rendering, and platform features.
SkillAFreshness: A★ 32Claude Code +9 - 0.652score
diagram-maker
metaspartan
Generate clean SVG/HTML diagrams for architecture, flows, sequences, ER diagrams, and whiteboards.
SkillAFreshness: A★ 32Claude Code +9
Cite this page
Canvas Skill. Agent Mart. https://agentmart.dev/skills/metaspartan-canvas-skill (last updated 2026-10-24)