🖥️ Canvas-OS

🖥️ Canvas上的视觉应用平台

在OpenClaw Canvas上构建、存储和运行富视觉应用,支持HTML/CSS/JS完整交互界面,实现Agent到UI的动态数据注入与双向通信。

收藏
9.9k
安装
2.8k
版本
1.0.1
CLS 安全性认证2026-05-19
点击查看完整报告 >

使用说明

核心用法

Canvas OS将OpenClaw Canvas转化为应用平台,允许用户构建并运行富视觉交互应用。核心工作流分为三步:

1. 应用构建 — 创建HTML/CSS/JS文件构成的自包含应用,存放于~/.openclaw/workspace/apps/[app-name]/,需暴露window.app API供Agent调用。

2. 应用加载 — 三种方式:

  • Localhost服务器(推荐):Python启动http.server,Canvas导航至http://localhost:[PORT]/
  • 直接HTML注入:通过canvas eval执行document.write(),适合快速展示
  • Data URL:小内容自包含,但部分系统不稳定

3. 数据注入 — 使用openclaw nodes canvas eval --js实时更新界面,或通过openclaw://agent深链实现应用向Agent回传指令。

内置模板包括Dashboard(9876端口)、Tracker(9877端口)等,支持A2UI快速文本推送。

显著优点

  • 完整Web技术栈:非纯文本,支持动画、实时数据、复杂交互
  • Agent原生集成:JS eval注入实现毫秒级UI更新,深链支持双向通信
  • 自包含部署:单HTML文件即可运行,便于版本控制和分发
  • 暗色主题设计系统:与OpenClaw aesthetic一致

潜在局限

  • 安全沙箱限制file:///路径被完全阻断,必须走localhost或注入
  • 端口管理负担:多应用需手动分配端口(9876+),存在冲突风险
  • 平台依赖:仅支持OpenClaw macOS应用,需配对Canvas-capable节点
  • URL scheme缺陷openclaw-canvas://当前版本存在问题

适合人群

  • 需要可视化Agent工作流的开发者
  • 构建个人仪表板、习惯追踪等工具的用户
  • 追求"对话+界面"混合交互体验的早期采用者

常规风险

  • XSS隐患canvas eval执行任意JS,注入内容需严格净化
  • 端口暴露:localhost服务器可能被本机其他进程探测
  • 持久化薄弱:data.json状态管理简单,无备份机制

安全解读

核心用法

Canvas OS 是一套将 OpenClaw Canvas 面板转化为应用运行平台的工具集。用户可通过自然语言指令(如"打开仪表盘"、"构建任务追踪器")快速启动和管理可视化应用。核心工作流包含三种 Canvas 加载方式:localhost 服务器(复杂应用推荐)、直接 HTML 注入(快速展示)、Data URLs(小型内容),同时明确排除了因安全沙箱而被禁止的 file:/// 路径访问。

应用采用标准 Web 技术栈(HTML/CSS/JS)开发,存放于 ~/.openclaw/workspace/apps/ 目录,通过 python3 -m http.server 提供本地服务,再由 Agent 执行 openclaw nodes canvas navigate 导航至 Canvas 面板,最后通过 canvas eval 注入 JavaScript 实现数据动态更新。应用需暴露 window.app API 供 Agent 调用,支持双向通信(应用通过 openclaw://agent 深度链接回调 Agent)。

显著优点

1. 原生可视化能力:突破纯文本交互限制,支持图表、动画、实时数据等富 UI 表达
2. 低门槛开发:无需构建工具,单文件 HTML 即可运行,内置 Dashboard、Tracker 等模板

3. Agent 原生集成:自然语言指令直接映射到 Canvas 操作,形成"对话即界面"的流畅体验

4. 安全隔离设计:应用运行于 Canvas 沙箱而非系统浏览器,配合 localhost 白名单机制降低风险

5. 状态持久化:通过 JSON 文件实现应用数据本地存储

潜在缺点与局限性

1. 平台绑定:深度依赖 OpenClaw 生态(Canvas 面板、openclaw CLI、Node 系统),无法独立运行或迁移至其他 Agent 框架
2. 网络架构限制:复杂应用需自行管理端口(9876+),存在端口冲突风险;file:/// 路径被禁止导致无法直接读取本地文件

3. 调试体验割裂:Canvas 内应用无法使用常规浏览器 DevTools,JS 错误排查依赖 canvas eval 手动注入调试代码

4. eval 注入争议:虽经过转义处理,但 document.write + canvas eval 模式本质属于代码注入,对极端安全敏感场景可能存疑

5. URL Scheme 不稳定openclaw-canvas:// 存在已知问题,需降级使用 http://localhost 方案

适合人群

  • OpenClaw 深度用户,希望突破纯文本交互边界
  • 需要快速搭建个人数据看板、习惯追踪器等工具的效率爱好者
  • 熟悉前端基础(HTML/CSS/JS)的 Agent 应用开发者
  • 追求"对话驱动界面"体验的早期采用者

常规风险

| 风险点 | 说明 | 缓解措施 |
|--------|------|----------|
| 端口占用冲突 | 默认 9876-9880 范围可能与系统服务冲突 | 启动前 `lsof` 检测并清理,支持自定义端口 |
| 强制进程终止 | `kill -9` 可能导致数据丢失 | 建议改进为 SIGTERM 优雅关闭 |
| HTML 注入风险 | `canvas eval` 执行用户提供的 HTML | 确保内容来源可信,避免直接注入外部输入 |
| 本地服务暴露 | `http.server` 虽仅监听 localhost | 确认无端口转发或代理配置错误 |
| 平台版本依赖 | Canvas API 和 URL Scheme 可能变动 | 关注 OpenClaw 更新日志,及时适配 |

🖥️ Canvas-OS 内容

templates文件夹
dashboard文件夹
tracker文件夹
手动下载zip · 13.2 kB
index.htmltext/plain
请选择文件