mcpField
P
pp-zoom

pp-zoom

github.com/mvanhorn生产力2.1k52 次安装今天更新
代码仓库

关于 pp-zoom

pp-zoom 是面向会议工作的 Zoom 命令行技能,可跨本地和云端录制内容检索会议,并整合日程、录制与会议笔记。也提供账户管理及会议分析命令。

主要功能

  1. 01跨本地和云端录制搜索转录
  2. 02汇总当天会议并标记时间冲突
  3. 03分析发言时长与打断情况
  4. 04导出录制、转录和聊天记录
  5. 05导入、搜索会议笔记并提取待办

适用场景

  1. 01查找会议中的决定或承诺
  2. 02查看当天日程及冲突
  3. 03比较本地和云端录制并检查保留期限
  4. 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 已安装。**如果未安装,请先安装:

  1. 通过 Printing Press 安装程序安装。默认情况下,二进制文件会安装到 macOS/Linux 上的 $HOME/.local/bin,以及 Windows 上的 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install zoom --cli-only
    
  2. 验证:zoom-pp-cli --version
  3. 确保报告的安装目录位于将调用此技能的 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,提取文本、会议元数据和标题,并将其编入本地 SQLite notes 表(已启用 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/SIP
  • zoom-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 Room
  • zoom-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 Field
  • zoom-pp-cli tracking-fields delete — 删除你的 Zoom 账户上的 Tracking Field
  • zoom-pp-cli tracking-fields get — 检索一个 tracking field
  • zoom-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 — 为账户创建 webhook
  • zoom-pp-cli webhooks delete — 删除 webhook
  • zoom-pp-cli webhooks switch — 切换 webhook 版本
  • zoom-pp-cli webhooks update — 更新 webhook
  • zoom-pp-cli webhooks webhook — 检索 webhook
  • zoom-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未找到资源
5API 错误(上游问题)
7触发速率限制(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、为 help 或 --help → 显示 zoom-pp-cli --help 的输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的先决条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并附加 --agent)

MCP 服务安装

从此 CLI 发布的公共库条目或预构建版本安装 MCP 二进制文件,然后进行注册:

claude mcp add zoom-pp-mcp -- zoom-pp-mcp

验证:claude mcp list

直接使用

  1. 检查是否已安装:which zoom-pp-cli 如果未找到,请提供安装选项(参见本技能顶部的“先决条件”)。
  2. 根据“独特功能”和“命令参考”中的说明,将用户查询匹配到最合适的命令。
  3. 使用 --agent 标志执行:
    zoom-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果有歧义,请查看子命令帮助:zoom-pp-cli <command> --help。

评论

支持 Markdown