@@ -117,16 +117,19 @@ app_secret: "xxx"
117117
118118** 前置条件** :在飞书开放平台 → 应用详情 → 安全设置 → 重定向 URL 中添加 ` http://127.0.0.1:9768/callback `
119119
120- ** 两种模式 ** :
120+ ** 三种模式 ** :
121121- 本地桌面环境(默认):自动启动本地 HTTP 服务器,打开浏览器完成授权回调
122122- 远程 SSH 环境(` --manual ` 或自动检测):打印授权 URL,用户在本机浏览器打开后粘贴回调 URL
123+ - ** 非交互模式(AI Agent 推荐)** :` auth login --print-url ` 输出 JSON → 用户浏览器授权 → ` auth callback "<回调URL>" --state "<state>" ` 完成换 token,全程无 stdin 阻塞
124+
125+ ** 重要** :登录时需包含 ` offline_access ` scope 才会返回 Refresh Token(有效期 30 天),否则仅有 Access Token(2 小时)
123126
124127### Markdown ↔ 飞书文档双向转换
125128
126129** 导入** :` feishu-cli doc import doc.md --title "文档" --verbose `
127130** 导出** :` feishu-cli doc export <doc_id> -o output.md `
128131
129- 支持的语法:标题、段落、列表(无限深度嵌套)、任务列表、代码块、引用(QuoteContainer)、Callout(6 种类型)、表格、分割线、图片(占位块,Open API 暂不支持插入实际图片 )、链接、公式(块级/行内)、粗体/斜体/删除线/下划线/行内代码/高亮
132+ 支持的语法:标题、段落、列表(无限深度嵌套)、任务列表、代码块、引用(QuoteContainer)、Callout(6 种类型)、表格、分割线、图片(默认通过 ` --upload-images ` 上传本地和网络图片 )、链接、公式(块级/行内)、粗体/斜体/删除线/下划线/行内代码/高亮
130133
131134### Mermaid / PlantUML 图表转画板
132135
@@ -166,7 +169,7 @@ PlantUML 支持:时序图、活动图、类图、用例图、组件图、ER
1661692 . ** 阶段二(并发)** :图表 worker 池 + 表格 worker 池并发处理
1671703 . ** 阶段三(逆序)** :处理失败图表,降级为代码块
168171
169- CLI flags:` --diagram-workers ` (默认 5)、` --table-workers ` (默认 3)、` --diagram-retries ` (默认 10)
172+ CLI flags:` --diagram-workers ` (默认 5)、` --table-workers ` (默认 3)、` --diagram-retries ` (默认 10)、 ` --upload-images ` (默认开启)、 ` --image-workers ` (默认 2,API 限制 5 QPS)
170173
171174## 常用命令
172175
@@ -175,16 +178,19 @@ CLI flags:`--diagram-workers`(默认 5)、`--table-workers`(默认 3)
175178feishu-cli auth login # OAuth 登录(自动打开浏览器)
176179feishu-cli auth login --manual # 手动模式(SSH 远程环境)
177180feishu-cli auth login --port 8080 # 指定回调端口
178- feishu-cli auth login --scopes " search:docs:read" # 指定 OAuth scope
181+ feishu-cli auth login --scopes " search:docs:read search:message offline_access" # 指定 OAuth scope(建议带 offline_access)
182+ feishu-cli auth login --print-url # 非交互模式步骤 1:输出授权 URL 和 state(AI Agent 推荐)
183+ feishu-cli auth callback " <回调URL>" --state " <state>" # 非交互模式步骤 2:用回调 URL 换 token
179184feishu-cli auth status # 查看授权状态
185+ feishu-cli auth status -o json # JSON 格式输出授权状态
180186feishu-cli auth logout # 退出登录
181187
182188# === 文档操作 ===
183189feishu-cli doc create --title " 测试"
184190feishu-cli doc get < doc_id>
185191feishu-cli doc blocks < doc_id> --all
186192feishu-cli doc export < doc_id> -o output.md
187- feishu-cli doc import input.md --title " 文档" --diagram-workers 5 --table-workers 3 --verbose
193+ feishu-cli doc import input.md --title " 文档" --upload-images -- diagram-workers 5 --table-workers 3 --verbose
188194feishu-cli doc add < doc_id> -c ' <JSON>' # JSON 格式添加块
189195feishu-cli doc add < doc_id> README.md --content-type markdown # Markdown 格式
190196feishu-cli doc add-callout < doc_id> " 内容" --callout-type info
@@ -290,7 +296,10 @@ feishu-cli user search --email user@example.com
290296feishu-cli user list --department-id DEPT_ID
291297feishu-cli dept get < department_id>
292298feishu-cli dept children < department_id>
293- feishu-cli board image < whiteboard_id> output.png
299+ feishu-cli board create-notes < whiteboard_id> nodes.json -o json # 精排绘图(JSON 控制坐标/颜色/连线)
300+ feishu-cli board import < whiteboard_id> --source-type content -c " graph TD; A-->B" --syntax mermaid
301+ feishu-cli board nodes < whiteboard_id> # 获取画板所有节点
302+ feishu-cli board image < whiteboard_id> output.png # 下载画板截图
294303feishu-cli media upload image.png --parent-type docx_image --parent-node < doc_id>
295304feishu-cli comment list < file_token> --type docx
296305feishu-cli comment resolve < file_token> < comment_id> --type docx
@@ -385,12 +394,12 @@ feishu-cli search docs "产品需求" --user-access-token <token>
385394| Mermaid 复杂度 | 10+ participant + 2+ alt + 30+ 长标签 | 重试后降级为代码块 |
386395| sheet filter | 需要完整 col+condition 参数 | API 限制 |
387396| sheet protect | V2 API 返回 "invalid operation" | 待修复 |
388- | 图片插入 | DocX Open API 不支持通过 API 插入图片 | 创建空 Image 占位块,导入报告显示跳过数 |
397+ | 图片插入 | 通过素材上传 API + Image 块引用实现 | 默认 ` --upload-images ` 上传,失败时创建占位块 |
389398| shell 转义 | zsh 中 ` ! ` 被转义为 ` \! ` | 已在代码中处理 |
390399
391400## Claude Code 技能
392401
393- 本项目提供以下 Claude Code 技能,位于 ` skills/ ` 目录(8 个技能):
402+ 本项目提供以下 Claude Code 技能,位于 ` skills/ ` 目录(11 个技能):
394403
395404| 技能 | 说明 | 用法 |
396405| ------| ------| ------|
@@ -400,7 +409,10 @@ feishu-cli search docs "产品需求" --user-access-token <token>
400409| ` /feishu-cli-export ` | 导出为 Markdown/PDF/Word,或从 DOCX 导入 | ` /feishu-cli-export <doc_id> [path] ` |
401410| ` /feishu-cli-perm ` | 权限管理 | ` /feishu-cli-perm <doc_token> ` |
402411| ` /feishu-cli-msg ` | 消息全功能管理(发送/回复/转发/Reaction/Pin) | ` /feishu-cli-msg <receive_id> ` |
403- | ` /feishu-cli-toolkit ` | 综合工具箱(表格/日历/任务/群聊/画板/文件/素材/评论/知识库/搜索/通讯录/** 附件下载** ) | ` /feishu-cli-toolkit ` |
412+ | ` /feishu-cli-toolkit ` | 综合工具箱(表格/日历/任务/群聊/文件/素材/评论/知识库/搜索/通讯录/** 附件下载** ) | ` /feishu-cli-toolkit ` |
413+ | ` /feishu-cli-board ` | 画板操作(精排绘图/Mermaid 导入/截图/节点管理) | ` /feishu-cli-board ` |
414+ | ` /feishu-cli-auth ` | OAuth 认证、Token 管理、scope 配置、搜索权限排错 | ` /feishu-cli-auth ` |
415+ | ` /feishu-cli-search ` | 搜索飞书文档/消息/应用(含 Token 前置检查流程) | ` /feishu-cli-search ` |
404416| ` feishu-cli-doc-guide ` | 飞书文档创建规范(内部参考,不可直接调用) | — |
405417
406418### 支持的 URL 格式
@@ -416,22 +428,22 @@ feishu-cli search docs "产品需求" --user-access-token <token>
416428| ---------| ---------| ------|
417429| 文档操作 | ` docx:document ` | 文档读写 |
418430| 知识库 | ` wiki:wiki:readonly ` | 知识库读取 |
419- | 知识库成员 | ` wiki:wiki ` | 空间成员管理 |
431+ | 知识库成员 | ` wiki:member ` | 空间成员管理 |
420432| 云空间文件 | ` drive:drive ` , ` drive:drive:readonly ` | 文件管理 |
421- | 素材管理 | ` drive:drive ` | 上传下载 |
422- | 评论 | ` drive:drive .comment:write ` | 评论读写 |
423- | 权限管理 | ` drive :permission: member:create` | 添加协作者 |
433+ | 素材管理 | ` subscriptions:image ` | 上传下载,需单独申请 |
434+ | 评论 | ` docs:document .comment` | 评论读写 |
435+ | 权限管理 | ` docs :permission. member:create` | 添加协作者 |
424436| 消息 | ` im:message ` , ` im:message:send_as_bot ` | 发送消息 |
425- | 消息增强 | ` im:message ` , ` im:message:send_as_bot ` | Pin/Reaction/转发 |
426- | 群聊搜索 | ` im:chat:readonly ` | 搜索群聊 |
427- | 群聊管理 | ` im:chat ` , ` im:chat:readonly ` | 群聊 CRUD |
428- | 群成员管理 | ` im:chat:member ` | 群成员操作 |
437+ | 消息增强 | ` im:message.pins ` , ` im:message.reactions ` | Pin/Reaction/转发 |
438+ | 群聊管理 | ` im:chat ` | 群聊 CRUD |
439+ | 群成员管理 | ` im:chat.members ` | 群成员操作 |
429440| 会话历史 | ` im:message:readonly ` | 获取历史消息 |
430- | 用户信息 | ` contact:user.base:readonly ` | 获取用户信息 |
431- | 通讯录 | ` contact:user.base:readonly ` , ` contact:department.base:readonly ` | 用户搜索/部门查询 |
432- | 画板操作 | ` board:board ` | 画板读写 |
441+ | 用户信息 | ` contact:user.base:readonly ` | 获取用户信息,需单独申请 |
442+ | 通讯录 | ` contact:contact.base:readonly ` | 需单独申请 |
443+ | 部分搜索 | ` directory:department:search ` | 需单独申请 |
444+ | 画板操作 | ` board:whiteboard ` | 画板读写 |
433445| 电子表格 | ` sheets:spreadsheet ` | 电子表格读写 |
434- | 日历 | ` calendar:calendar:readonly ` , ` calendar:calendar ` | 需单独申请 |
446+ | 日历 | ` calendar:calendar ` | 需单独申请 |
435447| 任务 | ` task:task:read ` , ` task:task:write ` | 需单独申请 |
436448| 任务列表 | ` task:tasklist:read ` , ` task:tasklist:write ` | 任务列表管理 |
437449| 搜索消息/应用 | 需要 User Access Token | 通过 ` auth login ` 或手动获取 |
@@ -561,7 +573,7 @@ feishu-cli perm add <DOC_ID> --doc-type docx --member-type email --member-id use
561573- Mermaid 图表:禁止花括号 ` {} ` (flowchart 标签)、禁止 ` par...and...end ` 、方括号冒号加双引号、sequenceDiagram 参与者 ≤ 8
562574- PlantUML 图表:无行首缩进、无 ` skinparam ` 、类图无可见性标记(` + - # ~ ` )
563575- 表格:超过 9 行会自动拆分,无需手动处理
564- - 图片:Open API 不支持插入,仅创建占位块
576+ - 图片:默认通过 ` --upload-images ` 上传本地和网络图片,关闭时创建占位块
565577- 公式:行内 ` $...$ ` 、块级 ` $$...$$ ` (块级降级为行内)
566578- Callout:仅 6 种类型(NOTE/WARNING/TIP/CAUTION/IMPORTANT/SUCCESS)
567579
@@ -595,4 +607,5 @@ feishu-cli perm add <DOC_ID> --doc-type docx --member-type email --member-id use
595607✅ Mermaid 图表导入(8 种类型全部验证,88 个图表 93.2% 成功率)
596608✅ PlantUML 图表导入(时序图、活动图已验证)
597609✅ 大规模导入:10,000+ 行 / 127 个图表 / 170+ 个表格
610+ ✅ doc import --upload-images(本地图片 + HTTP 图片上传)
598611```
0 commit comments