用途:Canvas 技能把 HTML 内容呈现在已连接 Otto 节点的 canvas 视图中,适合展示游戏、可视化、仪表盘、生成的 HTML 内容以及交互式演示。
主要能力:支持 present(显示 canvas,可带目标 URL)、hide(隐藏)、navigate(导航到新 URL)、eval(在 canvas 中执行 JavaScript)、snapshot(截取 canvas 截图)等操作。内容由 Canvas Host(HTTP 服务器,默认端口 18793)提供静态 HTML/CSS/JS,经 Node Bridge(TCP 服务器,端口 18790)把 canvas URL 传给节点,节点应用在 WebView 中渲染。
使用方式:在 ~/.otto/otto.json 中配置 canvasHost(enabled、port、root、liveReload)与 gateway.bind。把 HTML 文件放入 canvas 根目录(默认 ~/clawd/canvas/),通过 /otto/canvas/ 前缀访问,例如 http://<host>:18793/otto/canvas/index.html。用 otto nodes list 查找具备 canvas 能力的节点,再执行 canvas action:present node:<node-id> target:<full-url>,也可用 navigate、snapshot、hide。
适用场景:展示游戏、可视化、仪表盘、生成内容与交互式演示;liveReload 开启时(默认)会监视根目录变化并自动重载,适合开发调试。
限制:需指定 node:<node-id>,否则报 node required;节点离线会报 node not connected。URL 需与 gateway.bind 模式匹配(loopback 用 127.0.0.1,lan/tailnet/auto 用对应主机名),使用 localhost 可能导致白屏。建议 HTML 自包含(内联 CSS/JS)。canvas 会持续显示直到隐藏或导航离开。其他收费、平台细节暂未提供。