Canvas (app macOS)
L’app macOS incorpora un pannello Canvas controllato dall’agente usandoWKWebView. È
un workspace visivo leggero per HTML/CSS/JS, A2UI e piccole superfici UI
interattive.
Dove si trova Canvas
Lo stato di Canvas viene archiviato sotto Application Support:~/Library/Application Support/OpenClaw/canvas/<session>/...
openclaw-canvas://<session>/<path>
openclaw-canvas://main/→<canvasRoot>/main/index.htmlopenclaw-canvas://main/assets/app.css→<canvasRoot>/main/assets/app.cssopenclaw-canvas://main/widgets/todo/→<canvasRoot>/main/widgets/todo/index.html
index.html, l’app mostra una pagina scaffold integrata.
Comportamento del pannello
- Pannello senza bordi, ridimensionabile, ancorato vicino alla barra dei menu (o al cursore del mouse).
- Ricorda dimensione/posizione per sessione.
- Si ricarica automaticamente quando i file Canvas locali cambiano.
- È visibile un solo pannello Canvas alla volta (la sessione viene cambiata secondo necessità).
CANVAS_DISABLED.
Superficie API dell’agente
Canvas è esposto tramite il WebSocket Gateway, quindi l’agente può:- mostrare/nascondere il pannello
- navigare verso un percorso o un URL
- valutare JavaScript
- acquisire un’immagine snapshot
canvas.navigateaccetta percorsi Canvas locali, URLhttp(s)e URLfile://.- Se passi
"/", Canvas mostra lo scaffold locale oindex.html.
A2UI in Canvas
A2UI è ospitato dall’host Canvas del Gateway e renderizzato all’interno del pannello Canvas. Quando il Gateway pubblicizza un host Canvas, l’app macOS naviga automaticamente alla pagina host A2UI alla prima apertura. URL host A2UI predefinito:Comandi A2UI (v0.8)
Canvas attualmente accetta messaggi server→client A2UI v0.8:beginRenderingsurfaceUpdatedataModelUpdatedeleteSurface
createSurface (v0.9) non è supportato.
Esempio CLI:
Attivare esecuzioni dell’agente da Canvas
Canvas può attivare nuove esecuzioni dell’agente tramite deep link:openclaw://agent?...
Note di sicurezza
- Lo schema Canvas blocca l’attraversamento delle directory; i file devono trovarsi sotto la root della sessione.
- Il contenuto Canvas locale usa uno schema personalizzato (non serve alcun server loopback locale).
- Gli URL esterni
http(s)sono consentiti solo quando la navigazione avviene esplicitamente.