lark-whiteboard
[!IMPORTANT]
- 运行
lark-cli --version,确认可用,无需询问用户。- 运行
npx -y @larksuite/whiteboard-cli@^0.2.10 -v,确认可用,无需询问用户。
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
快速决策
| 用户需求 | 行动 |
|---|---|
| 查看画板内容 / 导出图片 | +query --output_as image |
| 获取画板的 Mermaid/PlantUML 代码 | +query --output_as code |
| 检查画板是否由代码绘制 | +query --output_as code |
| 修改节点文字/颜色(简单改动) | +query --output_as raw → 手动改 JSON → +update --input_format raw |
| 用户已提供 Mermaid/PlantUML 代码,或明确指定用该格式 | 自己生成/使用代码 → +update --input_format mermaid/plantuml |
| 绘制复杂图表(架构/流程/组织等) | → § 创作 Workflow |
| 修改/重绘已有复杂画板 | → § 修改 Workflow |
⚠️ 强制规范(通过 stdin 更新): 数据来源于本地文件时,必须使用
--source - --input_format <格式>。 例:cat chart.mmd | lark-cli whiteboard +update <token> --source - --input_format mermaid
Shortcuts
| Shortcut | 说明 |
|---|---|
+query |
查询画板,导出为预览图片、代码或原始节点结构 |
+update |
更新画板,支持 PlantUML、Mermaid 或 OpenAPI 原生格式 |
创作 Workflow
此 workflow 用于独立创作一个画板。 需要在文档中批量创建多个画板时,由 lark-doc 负责调度,见
lark-doc技能的references/lark-doc-whiteboard.md。
Step 1:获取 board_token
| 用户给了什么 | 怎么获取 |
|---|---|
直接给了 whiteboard token(wbcnXXX) |
直接使用 |
| 文档 URL 或 doc_id,文档中已有画板 | lark-cli docs +fetch --doc <URL> --as user,从返回的 <whiteboard token="xxx"/> 提取 |
| 文档 URL 或 doc_id,需要新建画板 | lark-cli docs +update --api-version v2 --doc <doc_id> --command append --content '<whiteboard type="blank"></whiteboard>' --as user,从响应 data.new_blocks[0].block_token 取得(block_type == "whiteboard" 的那条;参数详见 lark-doc SKILL.md) |
Step 2:渲染 & 写入
→ 进入 § 渲染 & 写入画板 章节,按流程完成后直接返回结果给用户。
修改 Workflow
Step 1:获取 board_token(同创作 Workflow Step 1)
Step 2:判断修改策略
+query --output_as code
├─ 返回 Mermaid/PlantUML 代码
│ → 在原代码上修改 → +update --input_format mermaid/plantuml
├─ 无代码(DSL 或其他方式绘制的画板)
│ ├─ 只改文字/颜色 → +query --output_as raw → 手动改 JSON → +update --input_format raw
│ └─ 重绘/结构调整 → +query --output_as image → 看图后进入 [§ 渲染 & 写入画板]
└─ 用户有明确要求 → 以用户要求优先
渲染 & 写入画板
渲染路由
先自报身份:按训练来源,你属于哪一家?Claude / Gemini / GPT / GLM / Doubao 或 Seed / Other。身份决定 SVG / DSL 分流(不同家族对这两种表达语言的能力不均衡),不要跳过这一步。
然后按图表类型 × 身份选路径,读对应文件按其完整 workflow 执行(含读 scene 指南、生成内容、渲染审查、交付):
| 图表类型 | 身份 | 路径 |
|---|---|---|
| 思维导图、时序图、类图、饼图、甘特图 | 任何身份 | routes/mermaid.md |
| 其他图表 | Claude / Gemini / GPT / GLM |
routes/svg.md |
| 其他图表 | Doubao / Seed / Other |
routes/dsl.md |
⚠️ SVG 路径失败回退:走
routes/svg.md时,碰到以下情况之一 → 丢弃当前 SVG,改读routes/dsl.md从零重画,不要逐行修补:
- 渲染命令直接报错(语法级崩溃,不是
--check的 warn/error)- 两轮改写仍无法消除
--check的text-overflowerror- 目测 PNG 视觉严重错乱(文字大面积溢出、元素重叠压住关键信息、布局整体崩溃)
SVG 源码修补常常引入新 bug,换 DSL 从零重画往往更稳。这是 SVG 路径自由发挥的硬兜底,不要侵入
routes/svg.md的创作流程。
产物规范
产物目录:./diagrams/YYYY-MM-DDTHHMMSS/(本地时间,不含冒号和时区后缀)。如用户指定路径,以用户为准。
目录内固定文件名:
diagram.svg ← SVG 源码(SVG 路径)
diagram.mmd ← Mermaid 源码(Mermaid 路径)
diagram.json ← DSL 源文件(DSL 路径) / OpenAPI JSON(SVG 路径从 diagram.svg 导出)
diagram.gen.cjs ← 坐标计算脚本(仅 DSL 脚本构建方式)
diagram.png ← 渲染结果
写入画板
[!CAUTION] 写入前强制 dry-run:向已有内容的画板写入时,必须先加
--overwrite --dry-run探测。 输出含XX whiteboard nodes will be deleted→ 必须向用户确认后才能执行。
# 第一步:dry-run 探测
npx -y @larksuite/whiteboard-cli@^0.2.10 -i <产物文件> --to openapi --format json \
| lark-cli whiteboard +update \
--whiteboard-token <Token> \
--source - --input_format raw \
--idempotent-token <10+字符唯一串> \
--overwrite --dry-run --as user
# 第二步:确认后执行
npx -y @larksuite/whiteboard-cli@^0.2.10 -i <产物文件> --to openapi --format json \
| lark-cli whiteboard +update \
--whiteboard-token <Token> \
--source - --input_format raw \
--idempotent-token <10+字符唯一串> \
--overwrite --as user
--idempotent-token最少 10 字符,建议用时间戳+标识拼接(如1744800000-board-1),避免重试导致重复写入。 如需应用身份上传,将--as user替换为--as bot。
More from larksuite/cli
lark-doc
飞书云文档(v2):创建和编辑飞书文档。使用本 skill 时,docs +create、docs +fetch、docs +update 必须携带 --api-version v2;默认使用 DocxXML 格式(也支持 Markdown)。创建文档、获取文档内容(支持 simple/with-ids/full 三种导出详细度,以及 full/outline/range/keyword/section 五种局部读取模式,可按目录、block id 区间、关键词或标题自动成节只拉部分内容以节省上下文)、更新文档(八种指令:str_replace/block_insert_after/block_copy_insert_after/block_replace/block_delete/block_move_after/overwrite/append)、上传和下载文档中的图片和文件、搜索云空间文档。当用户需要创建或编辑飞书文档、读取文档内容、在文档中插入图片、搜索云空间文档时使用;如果用户是想按名称或关键词先定位电子表格、报表等云空间对象,也优先使用本 skill 的 docs +search 做资源发现。
118.1Klark-base
当需要用 lark-cli 操作飞书多维表格(Base)时调用:搜索 Base、建表、字段管理、记录读写、记录分享链接、视图配置、历史查询,以及角色/表单/仪表盘管理/工作流;也适用于把旧的 +table / +field / +record 写法改成当前命令写法。涉及字段设计、公式字段、查找引用、跨表计算、行级派生指标、数据分析需求时也必须使用本 skill。
118.0Klark-im
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员时使用。
117.7Klark-drive
飞书云空间:管理云空间中的文件和文件夹。上传和下载文件、创建文件夹、复制/移动/删除文件、查看文件元数据、管理文档评论、管理文档权限、订阅用户评论变更事件、修改文件标题(docx、sheet、bitable、file、folder、wiki);也负责把本地 Word/Markdown/Excel/CSV 以及 Base 快照(.base)导入为飞书在线云文档(docx、sheet、bitable)。当用户需要上传或下载文件、整理云空间目录、查看文件详情、管理评论、管理文档权限、修改文件标题、订阅用户评论变更事件,或要把本地文件导入成新版文档、电子表格、多维表格/Base 时使用。
117.6Klark-calendar
飞书日历(calendar):提供日历与日程(会议)的全面管理能力。核心场景包括:查看/搜索日程、创建/更新日程、管理参会人、查询忙闲状态及推荐空闲时段、查询/搜索与预定会议室。注意:涉及【预约日程/会议】或【查询/预定会议室】时,必须先读取 references/lark-calendar-schedule-meeting.md 工作流!高频操作请优先使用 Shortcuts:+agenda(快速概览今日/近期行程)、+create(创建日程并按需邀请参会人及预定会议室)、+update(更新既有日程字段,或独立增删参会人/会议室)、+freebusy(查询用户主日历的忙闲信息和rsvp的状态)、+rsvp(回复日程邀请)
117.5Klark-shared
飞书/Lark CLI 共享基础:应用配置初始化、认证登录(auth login)、身份切换(--as user/bot)、权限与 scope 管理、Permission denied 错误处理、安全规则。当用户需要第一次配置(`lark-cli config init`)、使用登录授权(`lark-cli auth login`)、遇到权限不足、切换 user/bot 身份、配置 scope、或首次使用 lark-cli 时触发。
117.3K