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/x402agent-canvas-60181a
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
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
canvas- Description
- None
- License
- MIT
- Instructions
- 199 lines in SKILL.md · view on GitHub
Before installing
- Instructions call the network
Agent Skills spec issues
- missing YAML frontmatter
- name: missing
- description: missing
- 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 NanoClawd 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/__nanoclawd__/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 `~/.nanoclawd/nanoclawd.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 ~/.nanoclawd/nanoclawd.json | jq '.gateway.bind'
```
Then construct the URL:
- **loopback**: `http://127.0.0.1:18793/__nanoclawd__/canvas/<file>.html`
- **lan/tailnet/auto**: `http://<hostname>:18793/__nanoclawd__/canvas/<file>.html`
Find your Tailscale hostname:
```bash
tailscale status --json | jq -r '.Self.DNSName' | sed 's/\.$//'From x402agent/NanoSolana, MIT.
More from x402agent/NanoSolana
- 0.451score
tokenized-agents
pump-fun
Use when the user wants to charge users for actions.
SkillCFreshness: CClaude Code +9 - 0.411score
acp-router
x402agent
Route plain-language requests for Pi, Clawd Code, Codex, OpenCode, Gemini CLI, or ACP harness work into either NanoClawd ACP runtime sessions or direct…
SkillCFreshness: CClaude Code +9 - 0.394score
1password
x402agent
Set up and use 1Password CLI (op).
SkillCFreshness: CClaude Code +9 - 0.390score
bluebubbles
x402agent
Use when you need to send or manage iMessages via BlueBubbles (recommended iMessage integration).
SkillCFreshness: CClaude Code +9 - 0.390score
apple-notes
x402agent
Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes).
SkillCFreshness: CClaude Code +9 - 0.387score
prose
x402agent
OpenProse VM skill pack.
SkillCFreshness: CClaude Code +9 - 0.384score
blucli
x402agent
BluOS CLI (blu) for discovery, playback, grouping, and volume.
SkillCFreshness: CClaude Code +9 - 0.384score
blogwatcher
x402agent
Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
SkillCFreshness: CClaude Code +9 - 0.382score
bear-notes
x402agent
Create, search, and manage Bear notes via grizzly CLI.
SkillCFreshness: CClaude Code +9 - 0.382score
camsnap
x402agent
Capture frames or clips from RTSP/ONVIF cameras.
SkillCFreshness: CClaude Code +9
Signals
- Stars
- 0
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- May 15, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/x402agent/NanoSolana
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from x402agent
- 0.487score
dex-screener-scanner
x402agent
Automate DexScreener Solana token discovery and screening via browser automation.
SkillCFreshness: C★ 25Claude Code +9 - 0.483score
dflow-kalshi-trading
x402agent
Buy, sell, or redeem YES/NO outcome tokens on Kalshi prediction markets via DFlow.
SkillCFreshness: C★ 25Claude Code +9 - 0.483score
dflow-kalshi-market-data
x402agent
Read market data for a known Kalshi prediction market on DFlow — orderbook, trades, top-of-book prices, candlesticks, forecast-percentile history, and Kalshi…
SkillCFreshness: C★ 25Claude Code +9 - 0.483score
dflow-kalshi-market-scanner
x402agent
Find Kalshi prediction markets on DFlow that match a criterion — arbitrage (YES+NO<$1), cheap long-shots, near-certain short-dated plays, biggest movers…
SkillCFreshness: C★ 25Claude Code +9 - 0.483score
dflow-kalshi-portfolio
x402agent
View what a wallet holds on DFlow's Kalshi prediction markets — current positions, unrealized mark-to-market, realized P&L, activity history, and redeemable…
SkillCFreshness: C★ 25Claude Code +9 - 0.483score
dflow-platform-fees
x402agent
Monetize a DFlow integration by collecting a builder-defined fee on trades your app routes through the Trade API — either a fixed percentage (spot + PM) via…
SkillCFreshness: C★ 25Claude Code +9
Cite this page
canvas skill. Agent Mart. https://agentmart.dev/skills/x402agent-canvas-60181a (last updated 2026-10-24)