canvas

Display and control HTML content on connected Otto nodes across Mac, iOS, and Android devices.

1|Updated Aug 5, 2026
One-click install
npx skills add https://github.com/Solizardking/Solana-Robotics-Kit --skill canvas-solizardking
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: canvas
Source: https://github.com/Solizardking/Solana-Robotics-Kit/tree/main/eliza/packages/skills/skills/canvas
Command: npx skills add https://github.com/Solizardking/Solana-Robotics-Kit --skill canvas-solizardking

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Presenting web content like games, dashboards, and visualizations on remote devices requires manual URL sharing and screen management. This Skill lets you push HTML content directly to any connected Otto node's canvas view and control it remotely. ## Core Features & Use Cases - Present and Navigate: Show HTML files on a connected node's canvas, navigate to new URLs, or hide the canvas when done. - Live Reload Development: Automatically refresh displayed content when files in the canvas root directory change, ideal for iterative development. - Remote Control: Execute JavaScript in the canvas and capture screenshots of rendered content on Mac, iOS, and Android nodes. - Use Case: Build an HTML snake game in your canvas root directory, then present it on your iPhone over Tailscale with a single command and watch it live-reload as you edit. ## Quick Start Present the file snake.html from my canvas root directory on my connected Mac node using the canvas present action.

Frequently Asked Questions about canvas

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I display HTML content on a connected device?

Place your HTML file in the canvas root directory, then run the canvas present action with the node ID and full URL. Use 'otto nodes list' to find connected nodes with canvas capability before presenting.

How to show a web page on my phone from my computer?

Serve the HTML file through the canvas host server on port 18793, then present it to your iOS or Android node using its node ID. The node renders the content in a WebView canvas that persists until hidden.

Why does the canvas show a white screen on my device?

A white screen usually means a URL mismatch between the server bind mode and the node's expected hostname. Check your gateway.bind setting and use the full Tailscale or LAN hostname instead of localhost in the target URL.

Does the canvas support live reload during development?

Yes, when liveReload is enabled in the configuration, the canvas host watches the root directory with chokidar and injects a WebSocket client into HTML files. Connected canvases automatically reload when files change.

Can I take a screenshot of content displayed on a remote node?

Yes, use the canvas snapshot action with the target node ID to capture a screenshot of the currently displayed canvas content. You can also execute JavaScript in the canvas using the eval action.