关于 pp-zoom
pp-zoom 是面向会议工作的 Zoom 命令行技能,可跨本地和云端录制内容检索会议,并整合日程、录制与会议笔记。也提供账户管理及会议分析命令。
主要功能
- 01跨本地和云端录制搜索转录
- 02汇总当天会议并标记时间冲突
- 03分析发言时长与打断情况
- 04导出录制、转录和聊天记录
- 05导入、搜索会议笔记并提取待办
适用场景
- 01查找会议中的决定或承诺
- 02查看当天日程及冲突
- 03比较本地和云端录制并检查保留期限
- 04从笔记中整理待办事项
MCP 相关
输入的 README 未说明 MCP 相关功能。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mvanhorn/ printing-press-library --skill pp-zoom安装后在 Claude Code 中输入/pp-zoom确认已加载。
详细介绍
Zoom — Printing Press CLI
前置条件:安装 CLI
此技能通过 zoom-pp-cli 二进制文件运行。**调用此技能中的任何命令之前,必须确认 CLI 已安装。**如果未安装,请先安装:
- 通过 Printing Press 安装程序安装。默认情况下,二进制文件会安装到 macOS/Linux 上的
$HOME/.local/bin,以及 Windows 上的%LOCALAPPDATA%\Programs\PrintingPress\bin:npx -y @mvanhorn/printing-press-library install zoom --cli-only - 验证:
zoom-pp-cli --version - 确保报告的安装目录位于将调用此技能的 Agent/运行时的
$PATH中。
如果 npx 安装失败(没有 Node、处于离线状态等),请改用直接 Go 安装(需要 Go 1.26.6 或更高版本):
go install github.com/mvanhorn/printing-press-library/library/productivity/zoom/cmd/zoom-pp-cli@latest
如果安装后 --version 报告“command not found”,说明运行时无法在 $PATH 中找到二进制文件目录。验证成功之前,请勿继续执行技能命令。
何时使用此 CLI
当 Agent 需要全面掌握用户的 Zoom 使用情况时,请使用此 CLI——例如立即加入合适的会议、查看今天的日历安排、查找过往会议中说过的话,或管理云账户。当需要同时查询本地桌面录制和云端录制的会议时,它尤其强大。如果要将实时 Zoom 视频嵌入自定义应用(请使用 Meeting SDK),或托管机器人参会者(请使用 Recall.ai 或 Meeting SDK),则不适合使用此 CLI。
独特功能
这些功能在此 API 的其他工具中均不可用。
可持续积累的本地状态
-
find— 一次搜索所有本地录制和云端录制的 Zoom 转录文本,支持按发言者筛选、查看上下文窗口,并提供可点击的深层链接,直达对应秒数。当你需要从会议中找回某项具体承诺或决定时,事先无法确定录制文件保存在本地还是云端。一个搜索框即可搞定。
zoom-pp-cli find "q2 pricing" --source both --speaker "Maya" --after 30 --json -
storage— 按月份、主题或转换未完成状态整理 ~/Documents/Zoom/ 下的所有内容;并与云端录制列表交叉核对,标记可安全从本地删除的重复文件。当 Documents 文件夹占用了笔记本电脑上最多的空间时,Agent 需要找出哪些 GB 的文件可以安全清理。
zoom-pp-cli storage --by month --also-in-cloud --json -
recordings drift— 对比本地和云端录制的差异;标记即将达到组织保留期限的云端录制,以及云端版本已完成但本地仍为 double_click_to_convert 未完成状态的文件。云端保留策略会悄无声息地删除录制文件。本地未完成的文件也可能悄无声息地失败。Agent 需要在问题造成影响之前发现这两种情况。
zoom-pp-cli recordings drift --retention-days 90 --json -
recordings analyze— 根据 VTT 提示时间戳和发言者标签,统计每位发言者的总发言秒数、最长独白时长和提示重叠导致的打断次数。当 Agent 被问到“谁主导了会议”或“每个人都有机会发言吗”时,无需经过大模型转录即可给出答案。
zoom-pp-cli recordings analyze meeting-2026-05-12-1400 --json --select per_speaker.name,per_speaker.talk_seconds,per_speaker.longest_monologue_sec
原生支持 Agent 组合调用
-
today— 一屏显示今天日历上的所有会议、安排在今天的所有已保存书签、今天录制的所有内容,并标记时间重叠的冲突。当 Agent 被问到“我今天有哪些安排,有没有日程冲突”时,一次调用即可给出答案。
zoom-pp-cli today --with-recordings --json --select topic,start_time,join_url,conflict_with -
saved add-from-url— 粘贴任意格式的 Zoom URL(https://zoom.us/j/?pwd=、zoommtg://、日历邀请格式),CLI 会一步提取 ID 和未加密密码,并将其保存为命名书签。URL 经常出现在 Slack/邮件中。消除手动解析的麻烦,让“先保存这个,之后再看”只需一条命令。
zoom-pp-cli saved add-from-url team-standup "https://us02web.zoom.us/j/85123456789?pwd=abc" --json
跨来源往返
-
schedule— 创建云端会议(POST /users/me/meetings),并立即将生成的 ID + 密码保存到本地的 saved_meetings 中,以便今后离线使用zoom saved join <name>。安排会议和加入会议通常是两个独立的工具。将它们配对后,Agent 就能先创建、再调用会议,而无需重新查询云端。
zoom-pp-cli schedule "Q3 Planning" --when "2026-08-12T14:00:00Z" --duration 60 --save-as q3-planning --json -
recordings export— 先在本地查找录制 ID,找不到时再查云端(如有需要则下载);将 mp4 + vtt + chat.txt 以及生成的 INDEX.md(含带时间戳的目录)打包到一个文件夹中。当 Agent 被要求“整理我们周二规划会议的所有资料”时,需要一个不区分来源是本地还是云端的动词。
zoom-pp-cli recordings export meeting-2026-05-12-1400 --with-transcript --with-chat --out ~/Drive/q2-planning --json
My Notes 集成
-
notes web— 在用户的默认浏览器中打开 https://zoom.us/notes(可选指定会议范围)——这是访问实时 Notes UI 的唯一途径,因为 Zoom 没有为 My Notes 功能提供公开的 REST 端点。当 Agent 需要引导用户查看笔记时,这是无论身份验证状态如何都始终有效的唯一命令。
zoom-pp-cli notes web --json --dry-run -
notes summary— 通过文档说明的/meetings/{uuid}/meeting_summary端点获取 Zoom AI Companion 为会议自动生成的摘要(需要 S2S OAuth)。当 Agent 需要获取权威的会后摘要,而不想手动导出 PDF 时使用。
zoom-pp-cli notes summary abc123== --json --select summary_title,summary_overview,summary_details -
notes transcript— 通过文档说明的/meetings/{uuid}/transcript端点获取 AI Companion 为会议生成的完整转录文本(需要 S2S OAuth)。需要核实摘要或引用内容的 Agent 无需打开 Web 门户,即可获取逐字转录文本。
zoom-pp-cli notes transcript abc123== --json -
notes ingest— 解析从 Zoom Web 门户导出的 Notes PDF 或 DOCX,提取文本、会议元数据和标题,并将其编入本地 SQLitenotes表(已启用 FTS5)。让 Agent 能够根据手动导出内容,构建可搜索、持久保存的用户会议笔记语料库。
zoom-pp-cli notes ingest ~/Downloads/zoom-notes-2026-05-12.pdf --json --select meeting_topic,note_count,word_count -
notes search— 对所有已导入的 Notes 文件执行 FTS5 查询,返回meeting_topic + note_excerpt + source_file + match_offset,并支持可选的--since/--meeting-id筛选条件。当 Agent 被问到“我记下了关于 X 的什么内容”时,可以立即从已导入的语料库中找到答案。
zoom-pp-cli notes search "q2 launch plan" --since 30d --json --select meeting_topic,start_time,note_excerpt,source_file -
notes todos— 扫描已导入的笔记,查找行动项模式(TODO:、Action:、[ ]、- [ ]、Action Item:、Next:、Follow up:、Owner:),并生成结构化待办列表,其中包含来源会议主题、日期和复选框状态。将 My Notes 存档转化为可查询的待办列表——这是 Agent 的关键功能,可用于提取“我上周的会议中还有哪些事情欠别人”。
zoom-pp-cli notes todos --since 7d --json --select text,meeting_topic,start_time,owner,checked
命令参考
accounts — 账户操作
zoom-pp-cli accounts account— 获取主账户下的子账户。你的账户必须是主账户,并且拥有此...zoom-pp-cli accounts accounts— 列出主账户下的所有子账户zoom-pp-cli accounts create— 在主账户下创建子账户。你的账户必须是主账户,并且拥有此权限...zoom-pp-cli accounts disassociate— 将子账户与主账户解除关联。这不会删除账户,但子账户将不再...
groups — 群组操作
zoom-pp-cli groups create— 在你的账户下创建群组zoom-pp-cli groups delete— 删除你账户下的群组zoom-pp-cli groups group— 获取你账户下的群组zoom-pp-cli groups groups— 列出你账户下的群组zoom-pp-cli groups update— 更新你账户下的群组
h323 — 管理 h323
zoom-pp-cli h323 device-create— 在 Zoom 账户中创建设备 H.323/SIPzoom-pp-cli h323 device-delete— 删除 Zoom 账户中的 H.323/SIP 设备zoom-pp-cli h323 device-list— 列出 Zoom 账户中的 H.323/SIP 设备。zoom-pp-cli h323 device-update— 更新 Zoom 账户中的 H.323/SIP 设备
im — 管理 IM
zoom-pp-cli im chat-messages— 获取指定时间段内的 IM 聊天消息 此 API 仅支持 oauth2。zoom-pp-cli im chat-sessions— 获取指定时间段内的 IM 聊天会话 此 API 仅支持 oauth2。zoom-pp-cli im group— 获取账户下的 IM 群组zoom-pp-cli im group-create— 在账户下创建 IM 群组zoom-pp-cli im group-delete— 删除账户下的 IM 群组zoom-pp-cli im group-members— 列出账户下 IM 群组的成员zoom-pp-cli im group-members-create— 向账户下的 IM 群组添加成员zoom-pp-cli im group-members-delete— 从账户下的 IM 群组中删除成员zoom-pp-cli im group-update— 更新账户下的 IM 群组zoom-pp-cli im groups— 列出账户下的 IM 群组
meetings — 会议操作
zoom-pp-cli meetings delete— 删除会议zoom-pp-cli meetings meeting— 获取会议详情zoom-pp-cli meetings update— 更新会议详情
metrics — 管理指标
zoom-pp-cli metrics dashboard-crc— 获取指定时间段内逐小时的 CRC 端口使用情况 我们最多会报告一个...zoom-pp-cli metrics dashboard-im— 获取 Zoom IM 指标zoom-pp-cli metrics dashboard-meeting-detail— 获取实时或已结束会议的详情zoom-pp-cli metrics dashboard-meeting-participant-qos— 获取实时或已结束会议的参会者服务质量zoom-pp-cli metrics dashboard-meeting-participant-share— 获取实时或已结束会议参会者的共享/录制详情zoom-pp-cli metrics dashboard-meeting-participants— 获取实时或已结束会议的参会者zoom-pp-cli metrics dashboard-meeting-participants-qos— 获取实时或已结束会议参会者服务质量列表zoom-pp-cli metrics dashboard-meetings— 列出实时会议或指定时间段内已结束的会议zoom-pp-cli metrics dashboard-webinar-detail— 获取实时或已结束网络研讨会的详情zoom-pp-cli metrics dashboard-webinar-participant-qos— 获取实时或已结束网络研讨会参会者的服务质量zoom-pp-cli metrics dashboard-webinar-participant-share— 获取实时或已结束网络研讨会参会者的共享/录制详情zoom-pp-cli metrics dashboard-webinar-participants— 获取实时或已结束网络研讨会的参会者zoom-pp-cli metrics dashboard-webinar-participants-qos— 获取实时或已结束网络研讨会参会者服务质量列表zoom-pp-cli metrics dashboard-webinars— 列出实时网络研讨会或指定时间段内已结束的网络研讨会zoom-pp-cli metrics dashboard-zoom-room— 获取账户中的 Zoom Roomzoom-pp-cli metrics dashboard-zoom-rooms— 列出账户中的所有 Zoom Room
past-meetings — 管理已结束的会议
zoom-pp-cli past-meetings <meetingUUID>— 获取已结束会议的详情
past-webinars — 管理已结束的网络研讨会
report — 报告操作
zoom-pp-cli report cloud-recording— 检索指定时间段的云录制使用情况报告。你只能获取最近……的云录制报告zoom-pp-cli report daily— 检索某个月的每日报告,只能获取最近 6 个月的每日报告zoom-pp-cli report meeting-details— 检索已结束会议的详情报告zoom-pp-cli report meeting-participants— 检索已结束会议的参会者报告zoom-pp-cli report meeting-polls— 检索已结束会议的投票报告zoom-pp-cli report meetings— 检索指定时间段的已结束会议报告zoom-pp-cli report telephone— 检索指定时间段的电话报告 Toll Report 选项将被移除。。zoom-pp-cli report users— 检索指定时间段的活跃或非活跃主持人报告zoom-pp-cli report webinar-details— 检索已结束网络研讨会的详情报告zoom-pp-cli report webinar-participants— 检索已结束网络研讨会的参会者报告zoom-pp-cli report webinar-polls— 检索已结束网络研讨会的投票报告zoom-pp-cli report webinar-qa— 检索已结束网络研讨会的问答报告
tracking-fields — Tracking Field 操作
zoom-pp-cli tracking-fields create— 在你的 Zoom 账户上创建 Tracking Fieldzoom-pp-cli tracking-fields delete— 删除你的 Zoom 账户上的 Tracking Fieldzoom-pp-cli tracking-fields get— 检索一个 tracking fieldzoom-pp-cli tracking-fields list— 列出你的 Zoom 账户上的 Tracking Field。zoom-pp-cli tracking-fields update— 更新你的 Zoom 账户上的 Tracking Field
tsp — TSP 操作
zoom-pp-cli tsp tsp— 检索账户级别的 TSP 信息zoom-pp-cli tsp update— 更新账户级别的 TSP 信息
users — 用户操作
zoom-pp-cli users create— 在你的账户上创建用户zoom-pp-cli users delete— 删除你账户上的用户zoom-pp-cli users email— 检查用户邮箱是否存在zoom-pp-cli users update— 更新你账户上的用户zoom-pp-cli users user— 检索你账户上的用户zoom-pp-cli users users— 列出你账户上的用户zoom-pp-cli users vanity-name— 检查用户的个人会议室名称是否存在zoom-pp-cli users zpk— 检查 zpk 是否已过期。zpk 用于对用户进行身份验证。
webhooks — Webhook 操作
zoom-pp-cli webhooks create— 为账户创建 webhookzoom-pp-cli webhooks delete— 删除 webhookzoom-pp-cli webhooks switch— 切换 webhook 版本zoom-pp-cli webhooks update— 更新 webhookzoom-pp-cli webhooks webhook— 检索 webhookzoom-pp-cli webhooks webhooks— 列出账户的 webhook
webinars — 网络研讨会操作
zoom-pp-cli webinars delete— 删除网络研讨会zoom-pp-cli webinars update— 更新网络研讨会zoom-pp-cli webinars webinar— 检索网络研讨会
找到合适的命令
当你知道想做什么,但不知道哪个命令能实现时,直接询问 CLI:
zoom-pp-cli which "<capability in your own words>"
which 会将自然语言的能力查询解析为该 CLI 精心整理的功能索引中最匹配的命令。退出码 0 表示至少有一个匹配项;退出码 2 表示没有可信的匹配项——请改用 --help 或使用更精确的查询。
实用示例
从任何过往会议中找到一句话
zoom-pp-cli find "customer churn" --source both --speaker "Riley" --after 45 --json --select recording_path,start_ms,speaker,text,deep_link
在本地和云端的每份转录文本中搜索该短语,可限定到某一位发言者,每个匹配项附带 45 秒的后续上下文——并返回可点击的带时间戳的深度链接。
周一早晨分诊
zoom-pp-cli today --with-recordings --since 7d --json --select topic,start_time,join_url,conflict_with,recording_path
在一次查询中获取上周的会议 + 今天的日历 + 今天的录制,标记任何连续重叠,并为 Agent 提供起草每周回顾所需的一切。
安全清理 Documents/Zoom
zoom-pp-cli storage --by month --also-in-cloud --json --select month,total_gb,safe_to_delete_gb
按月对本地录制进行分组,并标记哪些同时存在于云端(因此可以安全地在本地删除)——Agent 可以建议可回收的磁盘空间,而不必冒着丢失唯一副本的风险。
安排会议并保存书签
zoom-pp-cli schedule "Sprint planning" --when 2026-05-21T15:00:00Z --duration 60 --save-as sprint --json
创建云端会议并立即写入本地书签,这样稍后运行 zoom-pp-cli saved join sprint 时就无需再次调用 API。
审核昨天外出活动的发言时长
zoom-pp-cli recordings analyze offsite-2026-05-18 --json --select per_speaker
根据 VTT 字幕计算每位发言者的发言时长、最长独白时长和打断次数,无需调用大模型。
从会议笔记中创建待办事项列表
zoom-pp-cli notes ingest ~/Downloads/notes-q2-planning.pdf && zoom-pp-cli notes todos --since 14d --json --select text,meeting_topic,owner,checked
导入导出的 Notes PDF,然后从过去两周导入的笔记中提取所有符合行动事项模式的内容——Zoom 没有 My Notes 的公开 API,因此手动导出加上此流程是唯一可行的方法。
身份验证设置
无需身份验证。
运行 zoom-pp-cli doctor 以验证设置。
Agent 模式
在任何命令后添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。
-
可通过管道传递——JSON 输出到 stdout,错误输出到 stderr
-
可筛选——
--select用于保留部分字段。点分路径可深入嵌套结构;数组会逐元素遍历。对于内容冗长的 API,这对于控制上下文大小至关重要:zoom-pp-cli tracking-fields list --agent --select id,name,status -
可预览——
--dry-run显示请求,但不会发送 -
支持离线——在本地 SQLite 存储可用时,同步和搜索命令可以使用它
-
非交互式——绝不提示输入,所有输入都通过标志传入
-
显式重试——仅当已存在的创建应视为成功时使用
--idempotent;仅当目标不存在的删除应视为成功时使用--ignore-missing
响应信封
从本地存储或 API 读取数据的命令会将输出封装在溯源信封中:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}
解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时源还是本地源。只有当 stdout 连接到终端,且未设置机器格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将易读的 N results (live) 摘要输出到 stderr——通过管道调用的消费者、Agent 消费者以及显式指定格式的运行都会在 stdout 上获得纯 JSON。
Agent 反馈
当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:
zoom-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
zoom-pp-cli feedback --stdin < notes.txt
zoom-pp-cli feedback list --json --limit 10
条目会存储在本地的 ~/.zoom-pp-cli/feedback.jsonl 中。除非设置了 ZOOM_FEEDBACK_ENDPOINT,且传入了 --send 或设置了 ZOOM_FEEDBACK_AUTO_SEND=true,否则绝不会执行 POST。默认行为仅限本地存储。
记录让你感到意外的地方,而不是提交错误报告。简短、具体,写成一行:真正能不断积累价值的就是这一点。
输出交付
每条命令都接受 --deliver <sink>。输出除了(或替代)stdout 外,还会发送到指定目标,因此 Agent 无需手动通过管道传递,就能路由命令结果。支持三种目标:
| 目标 | 效果 |
|---|---|
stdout | 默认;仅写入 stdout |
file:<path> | 原子地将输出写入 <path>(临时文件 + 重命名) |
webhook:<url> | 将输出正文 POST 到 URL(使用 --compact 时,内容类型为 application/json 或 application/x-ndjson) |
不支持的方案会被拒绝,并返回结构化错误,指出支持的方案。Webhook 请求失败时会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态码。
命名配置
配置文件是保存的一组标志值,可在多次调用中重复使用。当定时运行的 Agent 每次都以相同配置调用同一命令时,可使用它——这就是 HeyGen 的“Beacon”模式。
zoom-pp-cli profile save briefing --json
zoom-pp-cli --profile briefing tracking-fields list
zoom-pp-cli profile list --json
zoom-pp-cli profile show briefing
zoom-pp-cli profile delete briefing --yes
显式标志始终优先于配置文件值;配置文件值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,方便内省型 Agent 在运行时发现它们。
退出代码
| 代码 | 含义 |
|---|---|
| 0 | 成功 |
| 2 | 用法错误(参数错误) |
| 3 | 未找到资源 |
| 5 | API 错误(上游问题) |
| 7 | 触发速率限制(等待后重试) |
| 10 | 配置错误 |
参数解析
解析 $ARGUMENTS:
- 为空、为
help或--help→ 显示zoom-pp-cli --help的输出 - 以
install开头 → 以mcp结尾 → 安装 MCP;否则 → 参见上文的先决条件 - 其他任何内容 → 直接使用(作为 CLI 命令执行,并附加
--agent)
MCP 服务安装
从此 CLI 发布的公共库条目或预构建版本安装 MCP 二进制文件,然后进行注册:
claude mcp add zoom-pp-mcp -- zoom-pp-mcp
验证:claude mcp list
直接使用
- 检查是否已安装:
which zoom-pp-cli如果未找到,请提供安装选项(参见本技能顶部的“先决条件”)。 - 根据“独特功能”和“命令参考”中的说明,将用户查询匹配到最合适的命令。
- 使用
--agent标志执行:zoom-pp-cli <command> [subcommand] [args] --agent - 如果有歧义,请查看子命令帮助:
zoom-pp-cli <command> --help。