用途:将飞书 Wiki 的一个子树递归复制/同步到另一位置,保留全部内容与块级样式(标题背景、标注、文字颜色、表格单元格颜色、公式、代码块语言、嵌套列表缩进等)。
主要能力:通过 wiki +node-create 创建目标节点,用 docx block API 拉取源文档块,按 BFS 批量(每批 10 块)重建块树;超过 9 行的表格先建 9 行再用 insert_table_row 扩展;图片经 Playwright 浏览器会话从飞书内部 CDN 下载后上传并关联。支持增量同步、--dry-run 预览、--check 只读差异检查(报告 new/modified/missing/retry/rename/orphan,退出码 0 表示一致、1 表示有漂移,可用于 CI)、--status 离线查看状态。状态按子节点持久化于 ~/.config/lark-hirono/sync-state/<hash>.json,中断后可安全重跑。
使用方式:全局安装后运行 lark-hirono sync --from <源URL或token> --to <目标URL或token> [选项];本地开发仓库用 npx tsx bin/lark-hirono.ts sync [选项]。常用选项:--no-numbers、--browser-state <path>、--dry-run、--check、--status、--force、-v。首次使用需完成主 lark-hirono 技能的安装与认证(lark-hirono auth login --domain docs),并安装 Playwright 与 Chromium(npm install playwright && npx playwright install chromium),首次同步图片时需在可见浏览器中手动登录飞书,会话保存后后续可无头运行。
适用场景:跨空间或跨位置复制飞书 Wiki 子树、保持块级样式一致、以 --check 作为发布前或 CI 一致性检查。
限制:跨空间图片下载 API 常返回 403,需 Playwright 浏览器会话;首次登录需要显示环境(桌面或 X11 转发),纯 SSH 或 CI 无显示环境不可用;未知/内部块类型(如 type 999)与快捷方式会被跳过,非 docx 节点(表格、多维表格)仅创建占位 docx 节点;--force 会丢弃状态并全量重拷,仅在状态文件损坏或用户明确要求重建时使用;退出码 1 表示本次有图片失败,并非致命错误,默认恢复方式是原样重跑。