像白板一样自由编辑,像思维导图一样快速组织,像代码一样保存和比较。
PlainBoard 是一个 Local-first、Git-native、AI-editable 的语义无限画板。Markdown 保存内容,显式关系保存语义,View 文件保存空间布局;Web、CLI 与 Agent 共享同一个 operation kernel。
[done]v0.1.2 Beta:M0–M3 设计范围已实现,并通过单元、CLI integration、生产构建和 Chromium 回归。[plan]真实使用验证:以研究构思、系统架构和 AI synthesis 三类画板收集问题;触发条件是开始日常使用,下一动作是记录首批 10 个摩擦点。[drop]多人实时协作、云端账户、CRDT、自由笔迹和完整 Visio 图形库不进入 v0.1;本地单人格式稳定且有真实需求后才能重开。
权威产品范围、格式、架构决策与验收标准见 PlainBoard_产品与系统设计文档_v0.1.md。
- 无限画布、矩形/套索选择、实时拖动、节点缩放、多 View、Frame 和语义 Group;
Enter/Tab快速思维导图输入、新建后原位输入、双击内联编辑、局部布局、pin、Undo/Redo 和命令面板;- Markdown 节点、8 种可切换形状、卡片/仅标题展示、3 种连接线、语义 relation type、四边连接点、专用
L连线工具、拖入/粘贴图片与三套主题; - 本地目录直接读写、自动保存、OPFS 恢复、外部文件冲突保护与 ZIP fallback;
- JSON Canvas 导入导出,以及 SVG、PNG、PDF 渲染;
- canonical JSON、稳定 ID、结构化 validation issue、原子 operation batch 和精确 changed paths;
- provenance-aware synthesis、source hash、stale 检测、人工 dry-run/确认;
@plainboard/agent局部上下文与 Agent operation preview;plainboardCLI 的init、inspect、validate、apply、layout和render。
要求 Node.js 22 或更高版本。
npm install
npm run dev
npm run verifynpm run verify 依次运行 TypeScript project references、Vitest、生产构建、真实 CLI integration 和 Playwright Chromium 回归。若本机没有 Chromium,先执行:
npx playwright install chromiumnode packages/cli/dist/cli.js init ./my-board --title "My research board"
node packages/cli/dist/cli.js inspect ./my-board --json
node packages/cli/dist/cli.js validate ./my-board --json
node packages/cli/dist/cli.js apply ./my-board --ops operations.json --dry-run --json
node packages/cli/dist/cli.js apply ./my-board --ops operations.json --history --json
node packages/cli/dist/cli.js layout ./my-board --direction right
node packages/cli/dist/cli.js render ./my-board --format pdf --output ./board.pdf安装发布包后,可把 node packages/cli/dist/cli.js 换成 plainboard。--ops - 支持从 stdin 读取 operation 数组。
my-board/
├── project.json
├── graph.json
├── theme.json
├── nodes/*.md
├── views/*.json
└── assets/images/*
修改正文只触及对应 Markdown;移动节点只触及当前 View;语义关系只写入 graph.json。Web、CLI 和 Agent 都调用 @plainboard/core,不存在第二套保存逻辑。
关系可从节点上、右、下、左任一连接点拖到另一个节点的任一边。连接边以 fromHandle / toHandle 写入 graph.json,因此 Web、CLI、Agent、SVG 与 JSON Canvas 导出看到的是同一条确定连接;旧项目缺少这两个字段时继续按右出左入渲染。
packages/core:schema、migration、validation、operations、layout、serialization、互操作和 SVG renderer;packages/agent:局部 Agent context、synthesis plan 与安全 preview;packages/cli:Node storage、CLI 和 Chromium PNG/PDF renderer;apps/web:React Flow 编辑器、本地目录/ZIP/OPFS 与人工 operation review。
MIT