Caricamento in corso...
Caricamento in corso...
Last synced: Today, 22:00
Technical reference for the OpenClaw framework. Real-time synchronization with the official documentation engine.
Use this file to discover all available pages before exploring further.
The macOS app embeds an agent‑controlled Canvas panel using
WKWebViewCanvas state is stored under Application Support:
~/Library/Application Support/OpenClaw/canvas/<session>/...The Canvas panel serves those files via a custom URL scheme:
openclaw-canvas://<session>/<path>Examples:
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.htmlIf no
index.htmlCanvas can be disabled from Settings → Allow Canvas. When disabled, canvas node commands return
CANVAS_DISABLEDCanvas is exposed via the Gateway WebSocket, so the agent can:
CLI examples:
bashopenclaw nodes canvas present --node <id> openclaw nodes canvas navigate --node <id> --url "/" openclaw nodes canvas eval --node <id> --js "document.title" openclaw nodes canvas snapshot --node <id>
Notes:
canvas.navigatehttp(s)file://"/"index.htmlA2UI is hosted by the Gateway canvas host and rendered inside the Canvas panel. When the Gateway advertises a Canvas host, the macOS app auto‑navigates to the A2UI host page on first open.
Default A2UI host URL:
texthttp://<gateway-host>:18789/__openclaw__/a2ui/
Canvas currently accepts A2UI v0.8 server→client messages:
beginRenderingsurfaceUpdatedataModelUpdatedeleteSurfacecreateSurfaceCLI example:
bashcat > /tmp/a2ui-v0.8.jsonl <<'EOFA2' {"surfaceUpdate":{"surfaceId":"main","components":[{"id":"root","component":{"Column":{"children":{"explicitList":["title","content"]}}}},{"id":"title","component":{"Text":{"text":{"literalString":"Canvas (A2UI v0.8)"},"usageHint":"h1"}}},{"id":"content","component":{"Text":{"text":{"literalString":"If you can read this, A2UI push works."},"usageHint":"body"}}}]}} {"beginRendering":{"surfaceId":"main","root":"root"}} EOFA2 openclaw nodes canvas a2ui push --jsonl /tmp/a2ui-v0.8.jsonl --node <id>
Quick smoke:
bashopenclaw nodes canvas a2ui push --node <id> --text "Hello from A2UI"
Canvas can trigger new agent runs via deep links:
openclaw://agent?...Example (in JS):
jswindow.location.href = "openclaw://agent?message=Review%20this%20design";
The app prompts for confirmation unless a valid key is provided.
http(s)© 2024 TaskFlow Mirror
Powered by TaskFlow Sync Engine