my-mionote について
my-mionote は、妙記の会議メモを検索・処理するコマンドラインスキルです。グループや日付で記録を絞り込み、AI による要約や話者情報付きの文字起こしを扱えます。
主な機能
- 01グループ・日付・タイトルでメモを絞り込み
- 02AI 要約・要点・結論の確認
- 03分割形式またはテキスト形式で文字起こしを出力
- 04話者と時刻から発言を特定
活用シーン
- 01特定グループの月次会議を要約
- 02期間を指定して会議を検索
- 03文字起こしからアクション項目や決定事項を抽出
- 04会議中の発言を検索して引用
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mionote/ my-mionote --skill my-mionoteインストール後、Claude Code で/my-mionoteを入力して読み込まれたか確認します。
同梱ファイルscripts/my-mionote.mjs
詳細
プロジェクトの README より前置检查
运行前确认以下两项:
- 已安装 Node.js 18+(
node --version) - 已设置环境变量
MIONOTE_API_KEY
先执行 echo $MIONOTE_API_KEY 检查是否已设置。如果为空,询问用户:
请提供您的妙记 API Key(在 App「我的 → 妙记 Skill」页面生成并复制,msk- 开头),我来帮您配置。
用户提供后,在当前 shell 执行:
export MIONOTE_API_KEY=<key>
保密要求:API Key 等同于用户的纪要数据访问凭证,任何回复中都不要展示完整 Key(只可展示 msk-**** 掩码),也不要写入日志或文件。
命令总览
node scripts/my-mionote.mjs groups [--pretty]
node scripts/my-mionote.mjs list [--page <n>] [--page-size <n>] [--keyword <词>] [--group-id <id>] \
[--start-date <YYYY-MM-DD>] [--end-date <YYYY-MM-DD>] [--all] [--max <n>] [--pretty]
node scripts/my-mionote.mjs detail <纪要id> [--pretty]
node scripts/my-mionote.mjs transcript <纪要id> [--format segments|text] [--output <文件>] [--pretty]
默认输出单行 JSON,--pretty 缩进。所有数据均为当前 Key 对应用户本人可见的纪要(本人创建 + 他人分享)。
groups — 分组列表
返回 [{id, name, meetingCount}]。用户提到"XX 分组/分类"时,先用它把名称解析成 --group-id;meetingCount=0 的分组直接告知为空,不用再查列表。
list — 纪要列表
- 默认第 1 页、每页 20 条,
--page-size上限 100;--all自动翻页(--max上限,默认 500) --keyword只按标题模糊匹配,不搜正文内容(内容级检索见下方菜谱)--group-id按分组过滤,传-1表示"未分组"--start-date/--end-date按创建时间(≈会议时间)过滤,含首尾两端
记录字段:id / title / voiceStartTime / voiceEndTime / duration / createTime / groupId / groupName / isShared,
aiStatus:0-待处理 1-处理中 2-说话人分离完成 3-AI 纪要生成完成。
detail — 纪要详情(速读首选)
返回基本信息 + AI 纪要(aiSummary 摘要、aiKeyPoint 要点、aiConclusion 结论,仅 aiStatus=3 时完整)+ 用户笔记(userMeetingNoteTitle / userMeetingNote)+ 发言人名单(speakers 逗号分隔,speakerCount)。不含转写原文——需要原文时用 transcript。
transcript — 转录原文(深加工用)
--format segments(默认):segments: [{startTime, speakerId, text}],适合精确引用原话、按发言人分析--format text:text为完整纯文本("发言人1:\n..."),适合整体重新总结--output <文件>:把内容落盘(text 存纯文本,segments 存 JSON),stdout 只回摘要(含 chars/segments 数)。转写可能非常长(1 小时会议可达数万字),拿不准长度时一律先 --output 落盘,再分段读取文件,不要直接吃进上下文- 转写未生成时报错(退出码 3,提示含 aiStatus),如实告知用户"该纪要转写尚未完成"
场景菜谱
「我上周开了哪些会」 → list --start-date <周一> --end-date <周日>,按天整理标题+时长回复。
「总结一下 XX 分组这个月的会」 → groups 解析分组名 → list --group-id <id> --start-date ... --end-date ... → 逐条 detail 取 AI 纪要 → 汇总成一份结构化总结。detail 的 AI 纪要通常足够,不要为"总结"场景拉 transcript。
「帮我重新提取这场会的行动项/决策/风险」(用户对固定口径的 AI 纪要不满足时)→ 定位纪要 id → transcript <id> --format text --output <临时文件> → 读文件按用户要求的口径重新提取。
「会上关于 X 的原话是什么」 → 定位纪要 → transcript <id> --format segments --output <临时文件> → 在文件中检索关键词,引用命中段落(带 speakerId 和 startTime)。
「哪场会提到了预算」(内容级搜索) → --keyword 搜不到正文。正确做法:先用时间/分组/标题把候选缩小到少量几场 → 逐场 transcript 落盘检索 → 汇报命中的会议与上下文。候选太多时,先向用户确认大致时间范围,不要盲目全量拉转写。
Token 经济原则
- 回答顺序永远是:list(定位)→ detail(AI 纪要速读)→ transcript(仅在需要原文时)
- transcript 默认
--output落盘 + 分段读,除非确认是短会(duration 很小) --all全量拉取仅用于"统计所有会议"类需求,总结类需求先收窄范围- 批量 detail 时逐条串行即可,接口限流 120 次/分钟;命中限流(提示"触发限流")稍等再试
注意事项
- 鉴权失败(退出码 2)通常是 Key 被重置——引导用户去 App「妙记 Skill」页面查看或重新生成,不要反复重试。
aiStatus != 3的纪要没有完整 AI 纪要;转写以实际有无为准(接口有数据就返回,没有则报"尚未生成")。- segments 的
startTime可能为 null(历史数据未记录时间戳),引用原话时以 speakerId + 文本为准。