在网页画布上显示并控制已连接 Mac、iOS 或 Android 节点的 HTML 内容,支持实时重载和远程操作。
Canvas Skill.是一项面向实际任务的技能,主要用于Display HTML 内容在连接的 OpenClaw 节点(Mac app, iOS, Android)上.;Overview. cause 工具允许您在任何连接的节点的cause 视图上显示网页内容. . great for:.Displa。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;
涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。
在已连接的 OpenClaw 节点(Mac 应用、iOS、Android)上显示 HTML 内容。
Canvas 工具允许你在任意已连接节点的 Canvas 视图中呈现网页内容。适用于以下场景:
┌─────────────────┐ ┌──────────────────┐ ┌─────────────┐
│ Canvas Host │────▶│ Node Bridge │────▶│ Node App │
│ (HTTP Server) │ │ (TCP Server) │ │ (Mac/iOS/ │
│ Port 18793 │ │ Port 18790 │ │ Android) │
└─────────────────┘ └──────────────────┘ └─────────────┘
canvasHost.root 目录提供静态 HTML/CSS/JS 文件Canvas Host 服务器根据 gateway.bind 配置项决定绑定地址:
| 绑定模式 | 服务器绑定地址 | Canvas URL 使用地址 |
|---|---|---|
loopback |
127.0.0.1 | localhost(仅限本地访问) |
lan |
局域网接口 | 局域网 IP 地址 |
tailnet |
Tailscale 接口 | Tailscale 主机名 |
auto |
自动选择最优可用地址 | Tailscale > LAN > loopback |
关键说明:canvasHostHostForBridge 的值由 bridgeHost 推导得出。当服务器绑定至 Tailscale 时,节点接收到的 URL 形如:
http://:18793/__openclaw__/canvas/.html
因此 localhost 类 URL 无法正常工作——因为节点从 Bridge 收到的是 Tailscale 主机名!
| 操作 | 说明 |
|---|---|
present |
显示 Canvas,可选指定目标 URL |
hide |
隐藏 Canvas |
navigate |
跳转至新 URL |
eval |
在 Canvas 中执行 JavaScript |
snapshot |
截取 Canvas 屏幕截图 |
位于 ~/.openclaw/openclaw.json 中:
{
"canvasHost": {
"enabled": true,
"port": 18793,
"root": "/Users/you/clawd/canvas",
"liveReload": true
},
"gateway": {
"bind": "auto"
}
}
当 liveReload: true(默认启用)时,Canvas Host 将:
开发体验极佳!
将文件置于 Canvas 根目录(默认为 ~/clawd/canvas/):
cat > ~/clawd/canvas/my-game.html << 'HTML'
My Game
Hello Canvas!
HTML
检查 gateway 当前绑定模式:
cat ~/.openclaw/openclaw.json | jq '.gateway.bind'
据此构造 URL:
http://127.0.0.1:18793/__openclaw__/canvas/.html http://:18793/__openclaw__/canvas/.html 获取你的 Tailscale 主机名:
tailscale status --json | jq -r '.Self.DNSName' | sed 's/.$//'
openclaw nodes list
查找具备 Canvas 能力的 Mac/iOS/Android 节点。
canvas action:present node: target:
示例:
canvas action:present node:mac-63599bc4-b54d-4392-9048-b97abd58343a target:http://peters-mac-studio-1.sheep-coho.ts.net:18793/__openclaw__/canvas/snake.html
canvas action:navigate node: url:
canvas action:snapshot node:
canvas action:hide node:
原因:服务器实际绑定地址与节点预期的 URL 不匹配。
调试步骤:
cat ~/.openclaw/openclaw.json | jq '.gateway.bind'lsof -i :18793curl http://:18793/__openclaw__/canvas/.html 解决方案:务必使用与绑定模式完全匹配的完整主机名,而非 localhost。
必须始终显式指定 node: 参数。
节点当前离线。请使用 openclaw nodes list 查询在线节点。
若实时重载(Live Reload)未生效,请检查:
liveReload: true 是否已启用Canvas Host 服务路径以 /__openclaw__/canvas/ 为前缀:
http://:18793/__openclaw__/canvas/index.html → ~/clawd/canvas/index.html
http://:18793/__openclaw__/canvas/games/snake.html → ~/clawd/canvas/games/snake.html
该前缀由常量 CANVAS_HOST_PATH 定义。
index.html 作为测试页(内置 Bridge 诊断功能)hide 或导航至其他页面