canvas

Apresenta HTML em canvases de nós OpenClaw conectados, navega/avalia/captura instantâneos e depura URLs de host de canvas.

O que é canvas?

A skill **Canvas** permite que um agente de IA (como Claude Code, Cursor ou Codex) exiba conteúdo HTML interativo diretamente em dispositivos conectados — Mac, iOS ou Android — que estejam executando um nó OpenClaw. Ela é útil para prototipação visual, testes de interface, depuração remota e verificação de renderização em tempo real. Compatível com nós locais e remotos (via LAN ou Tailscale), a skill gerencia um servidor de arquivos estáticos que serve HTML/CSS/JS a partir de um diretório configurável. As ações incluem apresentar, ocultar, navegar para URLs, executar JavaScript arbitrário no canvas atual e capturar screenshots. A rotação de URLs segue o padrão `/__openclaw__/canvas/<arquivo>.html`, mapeando diretamente para arquivos no diretório raiz do host. A skill também oferece suporte a live reload para desenvolvimento iterativo, e lida com roteamento inteligente baseado no `gateway.bind`, escolhendo automaticamente entre loopback, IP local e host do Tailscale para garantir conectividade com o nó alvo. Em caso de falhas, fornece orientações de troubleshooting para problemas comuns como páginas em branco, nós remotos sem acesso ou live reload inoperante.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/clawdbot/clawdbot/tree/main/skills/canvas

Installed? Explore more Programação e Desenvolvimento skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

O que canvas faz?

Use o canvas para mostrar HTML em nós Mac/iOS/Android conectados.

Modelo

  • O host do canvas serve arquivos de plugins.entries.canvas.config.host.root.
  • As rotas do canvas ficam na porta HTTP do Gateway (gateway.port, padrão 18789).
  • A ponte do nó envia URLs do canvas para os aplicativos dos nós conectados.
  • Os aplicativos dos nós renderizam as URLs em uma WebView.
  • O nome do host segue gateway.bind: apenas loopback local para localhost, IP da LAN para LAN, host do Tailscale para tailnet, escolhe automaticamente a melhor rota.
  • URLs localhost funcionam apenas para um nó na mesma máquina.
  • Nós pareados normalmente recebem URLs de capacidade pluginSurfaceUrls.canvas com escopo de nó; prefira estas quando disponíveis.

Configuração

Config ativa: $OPENCLAW_CONFIG_PATH ou ~/.openclaw/openclaw.json.

{
  "plugins": {
    "entries": {
      "canvas": {
        "config": {
          "host": {
            "enabled": true,
            "root": "~/.openclaw/canvas",
            "liveReload": true
          }
        }
      }
    }
  },
  "gateway": { "bind": "auto" }
}

Ações

  • present: mostra o canvas, URL opcional.
  • hide: oculta o canvas.
  • navigate: abre uma nova URL.
  • eval: executa JavaScript no canvas atual.
  • snapshot: captura uma screenshot.

Fluxo de trabalho

  1. Certifique-se de que o host do plugin Canvas está ativado.
  2. Coloque HTML/CSS/JS em plugins.entries.canvas.config.host.root ou no diretório padrão de canvas.
  3. Use uma rota acessível pelo nó de destino.
  4. Apresente a URL hospedada: /__openclaw__/canvas/<arquivo>.html.
  5. Use snapshot quando o usuário precisar de uma prova visual.

Formato da URL

http://<gateway-host>:<gateway.port>/__openclaw__/canvas/index.html
http://<gateway-host>:<gateway.port>/__openclaw__/canvas/games/snake.html

Mapeamento de caminhos:

  • /__openclaw__/canvas/index.html -> <raiz do host canvas>/index.html
  • /__openclaw__/canvas/games/snake.html -> <raiz do host canvas>/games/snake.html

Solução de problemas

  • Nó vê localhost mas está remoto: corrija gateway.bind ou a URL pública, regenere a URL.
  • Nó na LAN não consegue carregar: verifique mesma rede, firewall, porta do Gateway e URL de capacidade/autenticação.
  • Nó no tailnet não consegue carregar: verifique status do Tailscale e host anunciado.
  • Página em branco: abra a URL localmente, verifique o console do navegador, depois faça snapshot no nó.
  • Live reload ausente: verifique liveReload e se os arquivos foram escritos dentro da raiz.

Individual skills in this repo

This repo contains 20 individual skills — each has its own dedicated page.

1password

Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.

acp-router

Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Grok Build, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.

add-model-provider

Add and live-prove a model provider with non-interactive config one-liners, without exposing credentials.

agent-transcript

Requested GitHub PR/issue agent transcripts: redact, trim, preview, and insert safely.

apple-notes

Create, view, edit, delete, search, move, or export Apple Notes via the memo CLI on macOS.

apple-reminders

List, add, edit, complete, or delete Apple Reminders and reminder lists via remindctl.

auto-qa

Run OpenClaw-wide autonomous QA and live/stress campaigns across independent subsystem lanes, with verified fixes and a resumable evidence report.

autoreview

Structured code review through the shared OpenClaw agent-skills installation.

bear-notes

Create, search, and manage Bear notes via grizzly CLI.

blacksmith-testbox

Run Blacksmith Testbox for CI-parity checks, secrets, hosted services, migrations, or builds local cannot reproduce.

block-kit

Use proactively for structured or interactive Slack replies, and when asked to author or validate native Slack Block Kit JSON.

blogwatcher

Monitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.

blucli

BluOS CLI (blu) for discovery, playback, grouping, and volume.

bluebubbles

Send and manage iMessages via BlueBubbles, including attachments, tapbacks, edits, replies, and groups.

browser-automation

Use when controlling web pages with the OpenClaw browser tool, especially multi-step flows, login checks, tab management, or recovery from stale refs/timeouts.

camsnap

Capture frames or clips from RTSP/ONVIF cameras and local webcams, including USB pan/tilt/zoom control.

channel-message-flows

Use when running QA Lab channel message flow evidence.

clawdtributor

Clawtributor PRs here, last week or another window: discover conversation refs, recheck GitHub, rank by impact.

clawhub

Search ClawHub for plugins by default, or skills and agent Templates when requested; add Templates; install, verify, update, uninstall, publish, or sync skills.

claw-score

Audit or refresh OpenClaw maturity scorecard docs from root taxonomy, maturity scores, and QA evidence artifacts without using maintainer discrawl data or committed inventory reports.

Habilidades Relacionadas