AI Skill

lark-minutes

open.feishu.cn

Lark Minutes: search, read, edit, and convert audio/video to meeting transcripts via Feishu Miaoji

What is lark-minutes?

lark-minutes is a skill for interacting with Feishu (Lark) Minutes (妙记). It covers searching minutes, reading basic info, downloading/uploading audio-video files, reading and editing AI-generated content (summaries, todos, chapters, transcripts, keywords), renaming minutes, and replacing speakers or keywords. It also handles the full pipeline for converting local audio/video files to transcripts via Feishu cloud—without using ffmpeg or Whisper locally.

  • Search minutes by keyword, owner, participant, or time range
  • Retrieve basic minute info: title, duration, cover, owner, URL
  • Download or upload audio/video media files linked to minutes
  • Read AI-generated content: summaries, todos, chapters, keywords, verbatim transcripts
  • Edit minutes: rename, replace AI summary, add/update/delete AI todos, replace speakers, batch-replace keywords
  • Convert local audio/video to Feishu Minutes and extract transcripts/summaries via drive upload pipeline

How to install lark-minutes

npx skills add null --skill lark-minutes
Prerequisites
  • lark-cli must be installed and available in PATH
  • User must be authenticated via lark-shared auth (read lark-shared/SKILL.md before use)
  • Feishu permissions: read access to the target minute; edit access for write operations
  • minute_token or minute URL required for most operations (extracted from URL path, e.g. obcnxxx)
  • For audio/video upload: a local file and Feishu Drive (cloud storage) access for file_token
Claude Code
Cursor
Windsurf
Cline

How to use lark-minutes

  1. 1.Install the skill: npx skills add null --skill lark-minutes
  2. 2.Read lark-shared/SKILL.md for authentication and permission setup before running any command
  3. 3.To search minutes: lark-cli minutes +search with keyword, owner, or time range flags
  4. 4.To get basic info: lark-cli minutes minutes get --minute-token <token>
  5. 5.To read AI content (summary, transcript, todos): lark-cli minutes +detail --minute-tokens <token> with explicit product flags (--summary, --transcript, --todo, etc.)
  6. 6.To convert a local audio/video file: run lark-cli drive +upload to get file_token, then lark-cli minutes +upload to get minute_url, then lark-cli minutes +detail to retrieve transcripts
  7. 7.To edit todos: use lark-cli minutes +todo with --operation add/update/delete; never use lark-task for in-minute todos
  8. 8.To replace a speaker: first GET /transcript/speakerlist to get speaker_id, then run lark-cli minutes +speaker-replace with --from-speaker-id

Use cases

Good for
  • Convert a local MP4/MP3 recording into a Feishu Minutes transcript or summary
  • Search for minutes from a specific meeting or time period
  • Edit or replace the AI-generated summary or todos inside a minute
  • Replace a misidentified speaker in a verbatim transcript
  • Retrieve the associated note document (纪要) linked to a minute
Who it's for
  • Teams using Feishu (Lark) video meetings who need to process recordings
  • Users who want to extract or edit AI-generated meeting artifacts
  • Developers automating meeting transcript workflows via lark-cli
  • Anyone needing to convert local audio/video files to structured meeting notes without local ASR tools

lark-minutes FAQ

Can I use ffmpeg or Whisper to transcribe a local audio file instead?

No. The standard path is drive +upload → minutes +upload → minutes +detail. Do not use local ASR tools like ffmpeg or Whisper.

What if I only have a natural language title and no minute_token?

This skill cannot locate a minute by title alone. Use lark-drive or lark-doc for document search instead.

How do I get the note document (纪要) linked to a minute?

Run minutes +detail --minute-tokens <token> and read the top-level note_id field, then pass it to lark-note +detail. If note_id is absent, no linked note exists.

What does error [2091005] permission deny mean?

The current user lacks read access to that minute. Contact the minute owner to request permission; do not re-run auth login.

How do I add multiple AI todos at once?

Use lark-cli minutes +todo --minute-token <token> --todos '[{"operation":"add","content":"...","is_done":false},...]' to batch-submit in one call.

Full instructions (SKILL.md)

Source of truth, from open.feishu.cn.


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,不读将导致命令使用、会议产物决策、领域边界职责判断错误:

  1. 了解日历 & VC、会议产物 & 文档的关联关系和职责划分
  2. 了解会议产物(妙记和纪要)之间的关联关系,例如:妙记和纪要产生条件相互独立
  3. 了解不同会议产物的组成部分,以便根据需求决策使用哪种产物的数据
  4. 了解会议总结、分析和信息提取的标准流程

身份

所有 minutes 命令默认使用 --as user

Shortcuts

Shortcut说明
+search按关键词、所有者、参与者、时间范围搜索妙记
+detail查询妙记详情(标题和关联的纪要note_id),按需获取 AI 产物(总结、待办、章节、逐字稿、关键词)
+download下载妙记音视频媒体文件
+upload上传 file_token 生成妙记
+update更新妙记标题
+speaker-replace替换妙记逐字稿中的说话人(须先 lark-cli api GET .../speakerlistspeaker_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_idnote +detail --note-id
把本地音视频转纪要 / 逐字稿 / 文字稿drive +uploadfile_token+upload 生成 minute_url+detail 拿产物
在妙记里增加 / 更改 / 删除 AI 待办+todo禁止走 lark-task
替换妙记的AI 总结+summary
重命名妙记/改妙记标题+update
替换说话人/把 A 的发言改成 B/重新归属发言人/把外部(非飞书)说话人改成飞书用户"lark-cli api GET .../transcript/speakerlistspeaker_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. 搜索妙记

  1. 如果是会议的妙记,应优先通过 lark-vc 定位会议并获取 minute_token
  2. 会议场景的妙记路由,以及"参与的妙记"如何解释,统一以 minutes +search 为准。

2. 查看妙记基础信息

  1. 当用户只需要确认某条妙记的标题、封面、时长、所有者、URL 等基础信息时,使用 minutes minutes get
  2. 如果是会议 / 日程上下文中的妙记基础信息,先通过 VC/Calendar 链路拿到 minute_token,再调用 minutes minutes get
  3. 用户意图不明确时,默认先给基础元信息,帮助确认是否命中目标妙记。

3. 上传音视频文件生成妙记(并可继续获取纪要 / 逐字稿)

  1. 当用户说"把音视频文件转成纪要""把录音转成逐字稿/文字稿/撰写文字""把 mp4/mp3 转成总结/待办/章节"时,也先走这个入口。
  2. 处理流程
    • 上传音视频获取 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 才能进行转换。

不要误走本地转写工具:当用户目标是把本地音视频文件转成纪要、逐字稿、文字稿、撰写文字时,不要改用 ffmpegwhisper 或其他本地 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):

  1. 确认 minute_token
  2. lark-cli api GET "/open-apis/minutes/v1/minutes/<token>/transcript/speakerlist" 查说话人列表(内部 HTTP,无 shortcut、无公开 OpenAPI 文档页)。
  3. 根据用户描述的原说话人展示名,在返回的 data.speakers[] 中匹配 name → 得到 speaker_id;同名多人时结合 vc +notes 逐字稿请用户确认,不要擅自挑选
  4. 新说话人姓名用 lark-contact 解析为 ou_ open_id。
  5. 调用 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_tokennote_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 open.feishu.cn and the wider catalog.

LA

lark-approval

open.feishu.cn

飞书审批:查询和处理审批待办/已办/实例,搜索可发起审批定义、查看定义详情并发起原生审批实例。当用户要处理审批任务、查看审批实例、搜索或发起审批时使用。审批待办不是飞书任务;非审批类待办走 lark-task。不负责创建审批定义;三方审批定义不走原生提单。

320k installs
LA

lark-doc

open.feishu.cn

飞书云文档(Docx / Wiki 文档):读取和编辑飞书文档内容。当用户给出文档 URL 或 token,或需要查看、创建、编辑文档、插入或下载文档图片附件时使用。文档中嵌入的电子表格、多维表格、画板,先用本 skill 提取 token 再切到对应 skill。当用户给出 doubao.com 的 /docx/ 或 /wiki/ URL/token 时,也应直接使用本 skill;路由依据是 URL 路径模式和 token,而不是域名。不负责文档评论管理,也不负责表格或 Base 的数据操作。

320k installs
LA

lark-base

open.feishu.cn

飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、workflow、角色权限;遇到 Base/多维表格/bitable 或 /base/ 链接时使用。文件导入转 lark-drive,认证/授权转 lark-shared。

320k installs
LA

lark-calendar

open.feishu.cn

飞书日历:管理日历日程和会议室。查看/搜索日程、创建/更新日程、管理参会人、查询忙闲和推荐时段、预定会议室。当用户需要查看日程安排、创建/修改会议、查询/预定会议室时使用。不负责:查询过去的视频会议记录(走 lark-vc)、待办任务(走 lark-task)。

320k installs
LA

lark-drive

open.feishu.cn

飞书云空间(云盘/云存储):管理 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)。

320k installs
LA

lark-contact

open.feishu.cn

飞书 / Lark 通讯录:按姓名 / 邮箱解析成 open_id,或按 open_id 反查姓名 / 部门 / 邮箱 / 联系方式 / 个人状态 / 签名。当用户提到某人姓名要下一步发消息 / 排日程,或拿到 open_id 想查具体信息时使用。不负责部门树遍历、按部门列员工、组织架构图,这类需求走原生 OpenAPI。

320k installs