核心用法
Canvas OS 将 Canvas 窗口转化为本地应用运行平台,通过 Python HTTP 服务器托管 HTML/CSS/JS 应用,实现超越纯文本的富交互 UI。用户可通过自然语言命令快速打开应用、构建模板或注入实时数据。
工作流程
1. 应用构建:在 ~/.openclaw/workspace/apps/ 下创建自包含 HTML 文件,暴露 window.app API
2. 本地服务:使用 python3 -m http.server 启动端口(9876-9880+)
3. Canvas 导航:通过 openclaw nodes canvas navigate 加载 localhost
4. 数据注入:通过 openclaw nodes canvas eval --js 实时更新 UI
5. 双向通信:应用通过 openclaw://agent 深链接回调代理
显著优点
- 富交互体验:动画、实时数据、完整 CSS/JS 能力,远超传统终端输出
- 快速原型:内置 Dashboard、Tracker、Timer 等模板,一键生成
- 动态更新:无需刷新页面,代理可直接注入 JavaScript 修改元素
- A2UI 速显:临时数据展示无需完整应用架构
- 设计一致性:内置暗黑主题配色,匹配 OpenClaw 视觉风格
潜在局限
- 平台依赖:需 OpenClaw macOS 应用及已配对节点,Linux/Windows 不可用
- 本地网络限制:仅 localhost 访问,无法直接对外暴露
- 端口管理:硬编码默认端口(9876-9880),多应用并发需手动协调
- 安全边界模糊:
canvas eval执行任意 JS,lsof -ti:$PORT | xargs kill -9强制终止端口占用,缺乏沙箱隔离 - 持久化薄弱:
data.json仅建议存在,无强制存储机制
适合人群
- 需要可视化工作台的 OpenClaw 重度用户
- 习惯快速搭建本地工具前端的开发者
- 追求暗黑美学、实时数据看板的效率型用户
常规风险
- 命令注入:
eval --js参数若拼接用户输入可导致代码执行 - 端口冲突:强制
kill -9可能误杀系统服务 - 深链接劫持:
openclaw://agent回调若未校验消息源,可能被恶意页面利用 - 无 HTTPS:localhost 明文传输,敏感数据暴露风险