App Canvas
简体中文 ▾

App Canvas · 开源 · 为 Coding Agent 而设计 · v0.12.0

为什么我创建 App Canvas

与 coding agent 一起创建和维护可缩放画布,同时查看真实页面、状态和交互流程。

合成数据 Demo · 无 App backend · 无需登录 · 无需 API key

App Canvas Cloud →

TL;DR

为什么我创建 App Canvas

AI 让创建新页面变得容易,却未让整个 App 更容易理解。我想一次看到实际页面和失败状态,无需逐页点击,也无需另外维护一份设计文件。

App Canvas 将审查变成可导航的画布。Coding agent 负责各 Repo 的集成;共享工具提供画布、真实代码 web previews、跟随流程的镜头和可检查播放。

StoolSense 是公开的虚构示例,没有生产会话、真实健康记录或 AI 请求。可选的匿名工具使用事件与 App 数据分开。

真实 StoolSense UI 状态排列在 App Canvas 画布中
公开 Demo 真实画面:77 个已编写状态、44 条流程、121 个可播放项目。队列包含独立 case,并非 121 条端到端流程。

看全貌、直接操作、播放流程

缩小,看清整个 App

按页面分组查看完整画面,搜索、筛选或收起侧栏。点击流程链接后,镜头会移动到目标画面。

放大,操作真实 UI

Browse 锁定控件,便于拖动画布。选中画面后点击 Interact,即可用合成数据操作原有 App 代码。

点击 Demo,展示完整旅程

在持续运行的 App session 中播放成功、失败和恢复流程,附操作提示、字幕、暂停、速度和步骤时间轴。

保存失败、保留草稿和重试成功的真实状态图
选择流程即可看到完整画面和命名转换。点击流程链接,镜头会移动到目标画面。
真实 Demo 在离线保存失败后保留草稿,等待重试
实际失败和恢复画面。播放会执行已编写操作与检查;画一条连线本身不等于测试。

从现有 Repo 到完整交互画布

交给能读写 Repo 并执行命令的 coding agent。无需事先准备 Storybook 或手写画面清单;仅安装包不会自动填满画布。

粘贴给你的 Coding Agent

Read https://github.com/tombelieber/app-canvas/blob/v0.12.0/AGENT_GUIDE.md and add a completely populated App Canvas to this repository. Discover all screens, components, variants, states and navigation from the whole application source. Use original UI code. Create the missing synthetic fixtures and render harnesses. Reconcile an independent source inventory with rendered cases and source-linked runtime checks. Add checked happy, failure and recovery journeys. Run --complete against the original source root. Continue until the full landscape is populated and verified; report genuine blockers as incomplete. Keep production sessions, credentials and real user data out of previews.
  1. 安装共享工具

    使用 Node.js 22+,沿用项目的包管理器与 lockfile。安装固定版本的 GitHub release,再安装浏览器。npm 12 若阻止此直接 Git 依赖,才添加 --allow-git=root;无需更改全局设置。

    npm install --save-dev github:tombelieber/app-canvas#v0.12.0
    npx app-canvas browsers
  2. 先盘点,再选择 Case

    从整个 App 根目录运行 discover。Agent 逐一检查源代码区域和候选项,解决 pending,独立列出语义状态,不能反过来由 catalog 决定范围。未解决的 blocker 必须保留。

    npx app-canvas discover --source-root . --out .artifacts/app-canvas/inventory.json
    npx app-canvas pending --inventory .artifacts/app-canvas/inventory.json
  3. 用 Fixtures 渲染原有 UI

    Agent 创建 ui-review/canvas.config.mjs、catalog、合成 fixtures、preview entry 和可检查 journeys。Web adapter 导入原有页面、providers 与样式;fixtures 只替代数据和依赖,不能重写 UI。拒绝未知网络请求。

    ui-review/
      canvas.config.mjs
      catalog.json
      frame.jsx
      fixtures.js
      README.md
    .artifacts/app-canvas/inventory.json
    // package.json → scripts
    "ui:review": "app-canvas --config ui-review/canvas.config.mjs"

    React/Vite · Agent 指南

  4. 验证状态和交互

    覆盖已实现的正常、空白、加载、错误、拒绝访问、对话框和恢复状态。检查每个 case,流程要操作真实控件。核对 inventory、关联源码的 assertions 和 routes,再对同一 App 根目录通过 --complete。

    npx app-canvas --config ui-review/canvas.config.mjs --check
    npx app-canvas --config ui-review/canvas.config.mjs --verify
    npx app-canvas --config ui-review/canvas.config.mjs --complete --source-root .
  5. 从源代码维护和检查

    运行 ui:review,查看总览和状态图,再播放流程。让 Agent 修改真正的 App 源码;既有 preview 会重新构建。新 route 或状态需要更新 inventory、fixture 和 journey,交付前必须通过完整检查。

    npm run ui:review

哪些文件留在你的 App Repo

共享包维护 viewer、CLI 和 skill;各 Repo 维护自己的 adapter、fixtures、独立 inventory、catalog 和交互检查。从可运行的 React/Vite 示例开始;其他技术栈使用专属 adapter。

可选的 Agent Skill

Codex 和 Claude Code 可以安装附带的 skill,其他 coding agent 可直接阅读 AGENT_GUIDE.md。Canvas runtime 不调用模型,也无需模型 API key;你选择的 Agent 有自己的费用和权限。

npx app-canvas install --target both

App Canvas Cloud · 候补名单

想要托管工作区?登记兴趣。Cloud 尚未推出;MIT 工具与公开 Demo 现已可用。

退出候补名单

隐私与遥测

可选地经 Cloudflare 发送少量使用事件到 PostHog。不会将页面内容、代码、姓名、文件路径、email 或 IP 地址转交 PostHog,可随时关闭。

隐私与遥测 ↗

这个版本能证明什么,有哪些限制

App Canvas 在实体 iPhone Safari 中运行
实体 iPhone Safari 截图。从崩溃到可运行的过程和测量限制,详见技术文章。

Safari 优化实录

实体 iPhone Safari 截图。从崩溃到可运行的过程和测量限制,详见技术文章。

Safari 优化实录 →