lark-minutes
larksuite/cli
Search, view, edit, and transcribe Feishu Minutes (妙记) recordings and AI-generated content.
What is lark-minutes?
Feishu Minutes skill handles operations on meeting recordings and uploaded audio/video files. Use it when you have a minute_token or local media file and need to search minutes, view details, download/upload media, edit transcripts, replace speakers, or manage AI-generated summaries and todos. For local audio/video conversion to transcripts or meeting notes, use this skill instead of local tools like ffmpeg or whisper.
- Search minutes by keywords, owners, participants, and time ranges
- View minute details including title, duration, cover, and associated meeting notes
- Download minute audio/video media files
- Upload local audio/video files to generate minutes
- Update minute titles and edit AI-generated content
- Replace speakers in transcripts and batch-replace keywords
How to install lark-minutes
npx skills add null --skill lark-minutes- lark-cli installed and configured
- Authentication via lark-shared skill (read ../lark-shared/SKILL.md first)
- Understanding of vc-domain-boundaries.md for meeting product relationships
- minute_token or local audio/video file for most operations
How to use lark-minutes
- 1.Read ../lark-shared/SKILL.md for authentication and permission handling
- 2.Read ../lark-vc/references/vc-domain-boundaries.md to understand meeting product relationships
- 3.For searching minutes: use `lark-cli minutes +search` with keywords, owner, participants, or time range
- 4.For viewing minute details: use `lark-cli minutes +detail --minute-tokens <token>` with explicit flags (--summary, --transcript, --todo, etc.)
- 5.For uploading local media: use `lark-cli drive +upload` to get file_token, then `lark-cli minutes +upload` to generate minute, then `+detail` to extract content
- 6.For editing content: use `+update` for titles, `+speaker-replace` for speakers (after fetching speaker_id via API), `+word-replace` for keywords, `+todo` for todos, `+summary` for AI summary
- 7.For downloading media: use `lark-cli minutes +download` to get media files only (use `+detail` for minute content)
Use cases
- Search for meeting minutes from a specific time period or by participant
- Convert a local audio or video file to a meeting transcript or summary
- Replace incorrectly identified speakers in a minute's transcript with correct Feishu users
- Add, update, or delete AI-generated todos within a specific minute
- Extract and review the full transcript of a meeting to independently analyze key decisions
- Meeting participants needing to search or review recorded meetings
- Users uploading local audio/video files for transcription and analysis
- Meeting organizers managing minute metadata, speakers, and AI-generated content
- Teams extracting meeting insights from transcripts rather than AI summaries
lark-minutes FAQ
Use `minutes +todo` exclusively for AI-generated todos within a specific minute. Use lark-task only for personal Todo lists or shared task lists outside of minutes.
Upload the file using `lark-cli drive +upload` to get file_token, then call `lark-cli minutes +upload` to generate a minute, then use `lark-cli minutes +detail --minute-tokens <token> --transcript` to extract the transcript. Do not use ffmpeg or whisper.
This means you lack edit permission on that specific minute. Contact the minute owner to request permission. Do not attempt to change authentication scopes.
Use `lark-cli api GET /open-apis/minutes/v1/minutes/<token>/transcript/speakerlist` to retrieve the speaker list, then match the original speaker's display name to get their speaker_id. Pass only the speaker_id to `+speaker-replace`, not the display name.
Use `lark-cli minutes +detail --minute-tokens <token>` to retrieve the top-level note_id (if the minute has associated notes), then call `lark-cli note +detail --note-id <note_id>` to access the meeting notes document.
Full instructions (SKILL.md)
Source of truth, from larksuite/cli.
name: lark-minutes version: 1.0.0 description: "飞书妙记:搜索妙记、查看妙记基础信息、下载/上传音视频、读取或编辑妙记的产物内容、改标题、替换说话人/关键词。当给出minute_token、本地音视频文件,要查/改/转妙记产物时使用;本地音视频转纪要/逐字稿优先走本 skill,不要用 ffmpeg/whisper 本地转写。不负责:获取会议关联妙记,或仅按自然语言标题定位纪要" metadata: requires: bins: ["lark-cli"] cliHelp: "lark-cli minutes --help"
minutes (v1)
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-shared/SKILL.md,其中包含认证、权限处理
CRITICAL — 开始前 MUST 先用 Read 工具读取 ../lark-vc/references/vc-domain-boundaries.md,不读将导致命令使用、会议产物决策、领域边界职责判断错误:
- 了解日历 & VC、会议产物 & 文档的关联关系和职责划分
- 了解会议产物(妙记和纪要)之间的关联关系,例如:妙记和纪要产生条件相互独立
- 了解不同会议产物的组成部分,以便根据需求决策使用哪种产物的数据
- 了解会议总结、分析和信息提取的标准流程
身份
所有 minutes 命令默认使用 --as user。
Shortcuts
| Shortcut | 说明 |
|---|---|
+search | 按关键词、所有者、参与者、时间范围搜索妙记 |
+detail | 查询妙记详情(标题和关联的纪要note_id),按需获取 AI 产物(总结、待办、章节、逐字稿、关键词) |
+download | 下载妙记音视频媒体文件 |
+upload | 上传 file_token 生成妙记 |
+update | 更新妙记标题 |
+speaker-replace | 替换妙记逐字稿中的说话人(须先 lark-cli api GET .../speakerlist 取 speaker_id) |
+word-replace | 批量替换逐字稿关键词(详见 lark-cli minutes +word-replace --help) |
+summary | 替换妙记 AI 总结全文 |
+todo | 新建/更新/删除妙记 AI 待办(单条或 --todos 批量;不是 lark-task) |
- 使用任何 Shortcut 前,必须先读其对应 reference 文档。
意图路由
| 用户意图 | 命令 |
|---|---|
| 我的妙记 / 搜索妙记 / 某段时间的妙记 | +search |
| 妙记基础信息:标题 / 时长 / 封面 / 链接 | minutes get |
| 下载妙记音视频文件、获取媒体下载链接 | +download(仅媒体;要妙记内容用 +detail) |
| 妙记总结 / 章节 / 待办 / 关键词 / 逐字稿 | +detail --minute-tokens <token> + 显式产物 flag |
| 基于妙记提炼/总结/分析/回顾会议 | +detail --minute-tokens <token> --transcript,再独立分析(禁止照搬 AI 总结) |
拿这条妙记关联的纪要文档(note_doc_token / verbatim_doc_token / shared_doc_tokens) | +detail 取顶层 note_id → note +detail --note-id |
| 把本地音视频转纪要 / 逐字稿 / 文字稿 | drive +upload 取 file_token → +upload 生成 minute_url → +detail 拿产物 |
| 在妙记里增加 / 更改 / 删除 AI 待办 | +todo(禁止走 lark-task) |
| 替换妙记的AI 总结 | +summary |
| 重命名妙记/改妙记标题 | +update |
| 替换说话人/把 A 的发言改成 B/重新归属发言人/把外部(非飞书)说话人改成飞书用户" | 先 lark-cli api GET .../transcript/speakerlist 取 speaker_id,再 minutes +speaker-replace;--from-speaker-id 只传 id,不传展示名 |
| 批量替换逐字稿关键词 | +word-replace |
| 用户同时提到"会议/开会"和"妙记" | 先 lark-vc(+search → +recording)获取 minute_token,再本 skill |
核心概念
- 妙记(Minutes):来源于飞书视频会议的录制产物或用户上传的音视频文件,通过
minute_token标识。 - 妙记 Token(minute_token):妙记的唯一标识符,可从妙记 URL 末尾提取(如
https://*.feishu.cn/minutes/obcnxxx中的obcnxxx)。如果 URL 中包含额外参数(如?xxx),截取路径最后一段。
核心场景
1. 搜索妙记
- 如果是会议的妙记,应优先通过 lark-vc 定位会议并获取
minute_token。 - 会议场景的妙记路由,以及"参与的妙记"如何解释,统一以 minutes +search 为准。
2. 查看妙记基础信息
- 当用户只需要确认某条妙记的标题、封面、时长、所有者、URL 等基础信息时,使用
minutes minutes get。 - 如果是会议 / 日程上下文中的妙记基础信息,先通过 VC/Calendar 链路拿到
minute_token,再调用minutes minutes get。 - 用户意图不明确时,默认先给基础元信息,帮助确认是否命中目标妙记。
3. 上传音视频文件生成妙记(并可继续获取纪要 / 逐字稿)
- 当用户说"把音视频文件转成纪要""把录音转成逐字稿/文字稿/撰写文字""把 mp4/mp3 转成总结/待办/章节"时,也先走这个入口。
- 处理流程:
- 上传音视频获取
file_token:使用lark-cli drive +upload上传本地文件到云空间(云盘/云存储)并获取file_token。 - 生成妙记:获取到
file_token后,调用lark-cli minutes +upload将文件转换为妙记并获取minute_url链接。 - 继续获取纪要 / 逐字稿(按需):如果用户目标不是只要妙记链接,而是要纪要、逐字稿、总结、待办或章节,则从
minute_url中提取minute_token,再调用lark-cli minutes +detail --minute-tokens获取对应产物。
- 上传音视频获取
注意:必须先获取飞书云空间(云盘/云存储)的
file_token才能进行转换。不要误走本地转写工具:当用户目标是把本地音视频文件转成纪要、逐字稿、文字稿、撰写文字时,不要改用
ffmpeg、whisper或其他本地 ASR/转码命令;标准路径就是drive +upload -> minutes +upload -> minutes +detail --minute-tokens。
5. 编辑妙记的 AI 待办与 AI 总结(写入)
当用户要在某条妙记内操作 AI 待办或 AI 总结时使用本节。不是飞书任务(Task)清单里的待办。
触发信号(任一命中即走本 skill,禁止走 lark-task):
- "在(某条)妙记里新建 / 添加 / 修改 / 删除待办"
- "把妙记 A 的待办改成已完成 / 未完成"
- "妙记里的任务1 / 任务2"(上下文已明确是妙记)
- 已给出
minute_token或妙记 URL,且要改待办 / 总结
妙记 AI 待办 vs 飞书任务 Task:
| 用户意图 | 正确命令 | 错误命令 |
|---|---|---|
| 妙记里加待办 | minutes +todo --operation add 或 --todos '[...]' | task +create / task tasklists list |
| 妙记里改待办 | minutes +todo --operation update --todo-id ... | task +update |
| 妙记里删待办 | minutes +todo --operation delete --todo-id ... | task tasks delete |
| 我的任务清单 | — | 走 lark-task |
新建多条待办:优先用 --todos 一次提交;单条则用多次 --operation add:
# 批量:任务1 已完成 + 任务2 未完成
lark-cli minutes +todo --minute-token <token> --as user --todos '[
{"operation":"add","content":"晚上好1","is_done":true},
{"operation":"add","content":"晚上好2","is_done":false}
]'
更新 / 删除前:先用 minutes +detail --minute-tokens <token> --todo 读取 todos[].todo_id(按 content 匹配目标条目;列表顺序不保证稳定,不要用"第 2 条"代替 todo_id)。
无编辑权限:若 CLI 返回 error.type=no_edit_permission,表示对这条妙记没有编辑权,应请所有者授权;不要误走 auth login --scope。
逐字稿关键词替换无命中:minutes +word-replace 时,若 CLI 返回 error.type=words_not_found,表示传入的 source_word 在该妙记逐字稿中一个都没匹配到,未做任何替换。这是参数问题不是权限问题:先用 minutes +detail --minute-tokens <token> --transcript 读取当前逐字稿,核对 source_word 的精确写法与大小写后重试。
替换 AI 总结全文:见 minutes +summary。
使用
+todo前必须阅读 references/lark-minutes-todo.md;使用+summary前必须阅读 references/lark-minutes-summary.md。
7. 替换妙记逐字稿说话人
当用户要把妙记里某说话人的发言改绑到另一位飞书用户时使用。
触发信号:「替换说话人」「把 A 的发言改成 B」「说话人识别错了」「把外部说话人改成飞书用户」等。
Agent 必读流程(详见 minutes +speaker-replace):
- 确认
minute_token。 - 先用
lark-cli api GET "/open-apis/minutes/v1/minutes/<token>/transcript/speakerlist"查说话人列表(内部 HTTP,无 shortcut、无公开 OpenAPI 文档页)。 - 根据用户描述的原说话人展示名,在返回的
data.speakers[]中匹配name→ 得到speaker_id;同名多人时结合vc +notes逐字稿请用户确认,不要擅自挑选。 - 新说话人姓名用 lark-contact 解析为
ou_open_id。 - 调用
minutes +speaker-replace,--from-speaker-id只传步骤 3 的speaker_id,禁止传展示名。
行为规则
1. +detail 必须显式声明产物 flag
不传 --summary / --todo / --chapter / --keyword / --transcript 时只返回基础信息(含顶层 note_id),AI 产物字段一律不返回。即使产物为空也会返回空值字段,便于程序化处理。
# 拿全产物
lark-cli minutes +detail --minute-tokens <token> --summary --todo --chapter --keyword --transcript
2. "提炼 / 总结"必须基于 Transcript,不要照搬 AI 总结
AI 总结是模型对会议的二次压缩,可能遗漏争论过程和隐含决策。用户要求"提炼"或"重新总结"时,期望基于原始发言独立分析,而非搬运 AI 产物。优先 --transcript,再独立写结论。
3. 从妙记反查纪要:不绕 lark-vc
minutes +detail 顶层直接返回 note_id(仅在该妙记关联纪要时存在)。不需要绕回 lark-vc,直接:
# 1) 取 note_id(顶层 .minutes[0].note_id)
lark-cli minutes +detail --minute-tokens <minute_token> --format json
# 2) 用上一步拿到的 note_id 读纪要 token
lark-cli note +detail --note-id <note_id> # 拿 note_doc_token / verbatim_doc_token / shared_doc_tokens
顶层无 note_id 字段即代表无关联纪要,到此为止——不要继续尝试用 minute_token 当 note_id。
API Resources
lark-cli minutes <resource> <method> [flags]
minutes
get— 获取妙记信息
权限错误:如果返回
[2091005] permission deny,表示用户没有对应妙记文件的阅读权限,需提示用户联系妙记 owner 申请权限。
不在本 skill 范围
- 搜索历史会议记录、查参会人快照 → lark-vc
- 未来日程 / 日历查询 → lark-calendar
- 已知
note_id直接读纪要详情 → lark-note - 飞书任务清单(个人 Todo / 共享清单) → lark-task
- 只有自然语言纪要标题、没有
minute_token/ 妙记 URL / 本地音视频时定位逐字稿 → 文档搜索(lark-drive / lark-doc)
Related skills
More from larksuite/cli and the wider catalog.
lark-doc
飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。
lark-base
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。
lark-im
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件(支持大文件分片下载)、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。
lark-drive
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、评论/权限/订阅、标题、版本和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling _notice JSON.
lark-calendar
飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。