<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Meeting on Top AI Skills</title><link>https://topaiskills.com/tags/meeting/</link><description>Recent content in Meeting on Top AI Skills</description><generator>Hugo</generator><language>en</language><lastBuildDate>Sat, 26 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://topaiskills.com/tags/meeting/index.xml" rel="self" type="application/rss+xml"/><item><title>Lark-Meeting Skill FAQ: Meeting IDs, Notes, and Minutes</title><link>https://topaiskills.com/tutorials/guides/lark-meeting-skill-faq/</link><pubDate>Sat, 26 Sep 2026 00:00:00 +0000</pubDate><guid>https://topaiskills.com/tutorials/guides/lark-meeting-skill-faq/</guid><description>&lt;script type="application/ld+json"&gt;{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"It is the unified entry point for Feishu video-meeting data: past meeting records, live meeting content, Minutes (妙记), and AI smart notes (智能纪要). One command tree — `lark-cli vc`, `lark-cli minutes`, `lark-cli note` — covers search, detail, transcript download, live interaction, and bot attendance. Scheduling, busy-time, and room management do not live here; those go to lark-calendar."},"name":"What does the lark-meeting skill actually do?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Four different objects that never substitute for each other. meeting_id is the long digit ID of one actual meeting. meeting_no is the 9-digit number users read aloud — the CLI calls the parameter --meeting-number. note_id points to an AI smart-note collection. minute_token points to a Minutes recording (taken from a URL like /minutes/obcxxx). Mismatching them across domains is the most common failure mode."},"name":"What's the difference between meeting_id, meeting_no, note_id, and minute_token?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Two independent pipelines. Note (智能纪要) comes from AI summarization when a meeting has AI summary enabled. Minutes (妙记) comes from recording — either a recorded meeting or a local audio/video file uploaded afterward. A meeting may have both, only one, or neither, and you cannot infer one from the other. This is the file's central domain invariant."},"name":"What's the difference between Note and Minutes?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Yes. Minutes can be generated directly from a local audio/video file via upload, so a minute_token is not guaranteed to map back to any meeting_id or calendar event_id. The skill's domain model is explicit: Minutes are independent of the meeting they might be linked to."},"name":"Can Minutes exist without a meeting?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"User identity covers what the logged-in user can see and do — meetings they attend, their own notes. Bot identity (--as bot) requires a target --user-id and only returns meetings where the target user is in the meeting *and* the bot is also in it. The skill's rule: once you pull an ID with one identity, keep using that identity for the rest of the chain. Switching silently is forbidden."},"name":"When do I use --as user vs --as bot?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Empty from bot identity does not mean the user is in no meeting — it means no meeting exists where the target user and the bot are together. The bot must actually be in the meeting to see it. The skill also forbids inferring 'user is idle' from that empty list, and warns against re-running auth checks when the real cause is permissions on the bot app."},"name":"Why did the bot return an empty meeting list?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Two routes. From Minutes: `lark-cli minutes +detail --minute-tokens obcxxx --transcript` writes a transcript file, by default to ./minutes/{minute_token}/transcript.txt — combine with --output-dir to redirect. From a unified smart note: `note +transcript`, but it only works with user identity; a bot that receives note_display_type=unified must not silently switch identity to fetch it."},"name":"How do I get a transcript out?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"You get base info only — the title — and none of the AI artifacts. The --summary, --todo, --chapter, --keyword, and --transcript flags are opt-in and must be passed explicitly. Request everything at once with the full flag list; batch up to 50 minute tokens comma-separated."},"name":"What happens if I call minutes +detail without flags?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"[lark-vc-agent](/skills/automation/lark-vc-agent/) is a tiny compatibility shim that routes straight into lark-meeting; lark-meeting carries the actual domain model, hard rules, and scene manuals. If you installed the family, you already have lark-meeting under the hood. Install lark-meeting directly for the full routing and the six workflow manuals."},"name":"How is lark-meeting different from lark-vc-agent?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"No — one of the few lark-cli skills that does not mandate the pre-read. It says to touch lark-shared/SKILL.md only when you hit an auth, token, identity, or scope error. The skill ships a progressive-loading rule instead: run quick actions first, read one scene manual only when the task matches, and consult command references only when parameters are missing."},"name":"Does it require reading lark-shared first?"},{"@type":"Question","acceptedAnswer":{"@type":"Answer","text":"Yes — skills.sh on 2026-09-26 shows 126,900 all-time installs on the open.feishu.cn counter with a weekly series of 0, 0, 0, 4,845, 27,641, 27,011, 25,324, 25,744, plus 35.2K on the larksuite/cli counter (0, 0, 0, 1,413, 6,988, 7,460, 6,671, 6,602). Three zero weeks, then a launch spike to a steady ~27K/week — a newborn skill that hit the board around 2026-08-20."},"name":"Is the 126.9K install number real?"}]}&lt;/script&gt;
&lt;div class="space-y-6 mt-8"&gt;
 &lt;h2 class="text-xl font-bold text-foreground mb-6"&gt;Frequently Asked Questions&lt;/h2&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;What does the lark-meeting skill actually do?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 It is the unified entry point for Feishu video-meeting data: past meeting records, live meeting content, Minutes (妙记), and AI smart notes (智能纪要). One command tree — &lt;code&gt;lark-cli vc&lt;/code&gt;, &lt;code&gt;lark-cli minutes&lt;/code&gt;, &lt;code&gt;lark-cli note&lt;/code&gt; — covers search, detail, transcript download, live interaction, and bot attendance. Scheduling, busy-time, and room management do not live here; those go to lark-calendar.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;What&amp;#39;s the difference between meeting_id, meeting_no, note_id, and minute_token?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 Four different objects that never substitute for each other. meeting_id is the long digit ID of one actual meeting. meeting_no is the 9-digit number users read aloud — the CLI calls the parameter &amp;ndash;meeting-number. note_id points to an AI smart-note collection. minute_token points to a Minutes recording (taken from a URL like /minutes/obcxxx). Mismatching them across domains is the most common failure mode.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;What&amp;#39;s the difference between Note and Minutes?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 Two independent pipelines. Note (智能纪要) comes from AI summarization when a meeting has AI summary enabled. Minutes (妙记) comes from recording — either a recorded meeting or a local audio/video file uploaded afterward. A meeting may have both, only one, or neither, and you cannot infer one from the other. This is the file&amp;rsquo;s central domain invariant.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;Can Minutes exist without a meeting?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 Yes. Minutes can be generated directly from a local audio/video file via upload, so a minute_token is not guaranteed to map back to any meeting_id or calendar event_id. The skill&amp;rsquo;s domain model is explicit: Minutes are independent of the meeting they might be linked to.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;When do I use --as user vs --as bot?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 User identity covers what the logged-in user can see and do — meetings they attend, their own notes. Bot identity (&amp;ndash;as bot) requires a target &amp;ndash;user-id and only returns meetings where the target user is in the meeting &lt;em&gt;and&lt;/em&gt; the bot is also in it. The skill&amp;rsquo;s rule: once you pull an ID with one identity, keep using that identity for the rest of the chain. Switching silently is forbidden.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;Why did the bot return an empty meeting list?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 Empty from bot identity does not mean the user is in no meeting — it means no meeting exists where the target user and the bot are together. The bot must actually be in the meeting to see it. The skill also forbids inferring &amp;lsquo;user is idle&amp;rsquo; from that empty list, and warns against re-running auth checks when the real cause is permissions on the bot app.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;How do I get a transcript out?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 Two routes. From Minutes: &lt;code&gt;lark-cli minutes +detail --minute-tokens obcxxx --transcript&lt;/code&gt; writes a transcript file, by default to ./minutes/{minute_token}/transcript.txt — combine with &amp;ndash;output-dir to redirect. From a unified smart note: &lt;code&gt;note +transcript&lt;/code&gt;, but it only works with user identity; a bot that receives note_display_type=unified must not silently switch identity to fetch it.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;What happens if I call minutes &amp;#43;detail without flags?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 You get base info only — the title — and none of the AI artifacts. The &amp;ndash;summary, &amp;ndash;todo, &amp;ndash;chapter, &amp;ndash;keyword, and &amp;ndash;transcript flags are opt-in and must be passed explicitly. Request everything at once with the full flag list; batch up to 50 minute tokens comma-separated.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;How is lark-meeting different from lark-vc-agent?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 &lt;a href="https://topaiskills.com/skills/automation/lark-vc-agent/"&gt;lark-vc-agent&lt;/a&gt; is a tiny compatibility shim that routes straight into lark-meeting; lark-meeting carries the actual domain model, hard rules, and scene manuals. If you installed the family, you already have lark-meeting under the hood. Install lark-meeting directly for the full routing and the six workflow manuals.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;Does it require reading lark-shared first?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 No — one of the few lark-cli skills that does not mandate the pre-read. It says to touch lark-shared/SKILL.md only when you hit an auth, token, identity, or scope error. The skill ships a progressive-loading rule instead: run quick actions first, read one scene manual only when the task matches, and consult command references only when parameters are missing.
 &lt;/div&gt;
 &lt;/details&gt;&lt;details class="group rounded-xl border border-border/40 bg-card/30 backdrop-blur-sm transition-all duration-200 hover:border-primary/30 hover:bg-card/40"&gt;
 &lt;summary class="flex cursor-pointer items-center justify-between gap-4 px-5 py-4 text-sm font-semibold text-foreground"&gt;
 &lt;span&gt;Is the 126.9K install number real?&lt;/span&gt;
 &lt;svg class="h-4 w-4 shrink-0 text-muted-foreground transition-transform duration-200 group-open:rotate-45" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"&gt;&lt;line x1="12" y1="5" x2="12" y2="19"&gt;&lt;/line&gt;&lt;line x1="5" y1="12" x2="19" y2="12"&gt;&lt;/line&gt;&lt;/svg&gt;
 &lt;/summary&gt;
 &lt;div class="px-5 pb-5 pt-0 text-sm leading-relaxed text-muted-foreground border-t border-border/30 mt-0 pt-4"&gt;
 Yes — skills.sh on 2026-09-26 shows 126,900 all-time installs on the open.feishu.cn counter with a weekly series of 0, 0, 0, 4,845, 27,641, 27,011, 25,324, 25,744, plus 35.2K on the larksuite/cli counter (0, 0, 0, 1,413, 6,988, 7,460, 6,671, 6,602). Three zero weeks, then a launch spike to a steady ~27K/week — a newborn skill that hit the board around 2026-08-20.
 &lt;/div&gt;
 &lt;/details&gt;&lt;/div&gt;
&lt;h2 id="why-a-lark-meeting-faq-exists"&gt;Why a Lark-Meeting FAQ Exists&lt;/h2&gt;
&lt;p&gt;Feishu&amp;rsquo;s meeting data comes in four identifier shapes, and every support thread I read boils down to someone mixing them up. &lt;code&gt;lark-meeting&lt;/code&gt; (v1.0.0, inside &lt;a href="https://github.com/larksuite/cli" rel="nofollow" target="_blank"&gt;larksuite/cli&lt;/a&gt;, 17.4K stars) exists to route those correctly — its 12,141-byte SKILL.md is a domain model plus a routing table across three command namespaces. I read the SKILL.md and its five key references (&lt;code&gt;vc +detail&lt;/code&gt;, &lt;code&gt;vc +meeting-list-active&lt;/code&gt;, &lt;code&gt;minutes +detail&lt;/code&gt;, &lt;code&gt;note +detail&lt;/code&gt;, &lt;code&gt;vc +meeting-events&lt;/code&gt;) on 2026-09-26, and scraped skills.sh the same day. Every answer below traces to one of those files.&lt;/p&gt;</description></item></channel></rss>