Markdown Article Formatter
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
The first Zoom CLI that joins your local desktop app, your on-disk recordings, and your cloud account into one...
$ npx skills add mvanhorn/printing-press-library --skill pp-zoom -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install mvanhorn/printing-press-library pp-zoom --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .claude/skills && cp -r skills-src/cli-skills/pp-zoom .claude/skills/pp-zoom && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pp-zoom" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoom into .claude/skills/pp-zoom/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-zoom", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoomType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add mvanhorn/printing-press-library --skill pp-zoom -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install mvanhorn/printing-press-library pp-zoom --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .agents/skills && cp -r skills-src/cli-skills/pp-zoom .agents/skills/pp-zoom && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pp-zoom" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoom into .agents/skills/pp-zoom/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-zoom", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-zoom -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install mvanhorn/printing-press-library pp-zoom --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/cli-skills/pp-zoom .cursor/skills/pp-zoom && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pp-zoom" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoom into .cursor/skills/pp-zoom/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-zoom", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/mvanhorn/printing-press-library.git --path cli-skills/pp-zoom--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add mvanhorn/printing-press-library --skill pp-zoom -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install mvanhorn/printing-press-library pp-zoom --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/cli-skills/pp-zoom .gemini/skills/pp-zoom && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pp-zoom" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoom into .gemini/skills/pp-zoom/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-zoom", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install mvanhorn/printing-press-library pp-zoomInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add mvanhorn/printing-press-library --skill pp-zoom -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .github/skills && cp -r skills-src/cli-skills/pp-zoom .github/skills/pp-zoom && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pp-zoom" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoom into .github/skills/pp-zoom/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-zoom", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add mvanhorn/printing-press-library --skill pp-zoom -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install mvanhorn/printing-press-library pp-zoom --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/mvanhorn/printing-press-library.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/cli-skills/pp-zoom .opencode/skills/pp-zoom && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pp-zoom" agent skill from https://github.com/mvanhorn/printing-press-library/tree/main/cli-skills/pp-zoom into .opencode/skills/pp-zoom/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pp-zoom", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pp-zoomThe first Zoom CLI that joins your local desktop app, your on-disk recordings, and your cloud account into one...
Pp Zoom is an agent skill from mvanhorn/printing-press-library. The first Zoom CLI that joins your local desktop app, your on-disk recordings, and your cloud account into one... Trigger phrases: join the zoom meeting, start my zoom, mute zoom, what zoom meetings do i have today, find that quote from last week's zoom, what's in my documents/zoom folder, schedule a zoom meeting, search my zoom recordings, use zoom, run zoom, extract todos from my zoom notes, search my zoom notes, ingest zoom notes pdf, open zoom notes.
Its SKILL.md is about 5.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Documents & Office. It works with Zoom. The repository describes itself as: Official library of CLIs generated by the CLI Printing Press. Endorsed, tested, and community-contributed. The licence is Apache-2.0.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 76de244. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadBashFrom allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
claudenpxgoFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
us02web.zoom.usAlso links to:
zoom.usFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pp Zoom loads about 5.8k tokens when it runs. Until then it costs about 124 tokens; SKILL.md has 2,547 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
allowed-tools: Read, BashAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from mvanhorn/printing-press-library at commit 76de244, republished under its Apache-2.0 licence (© mvanhorn). 2,547 words, ~5,815 tokens.
.claude/skills/pp-zoom/SKILL.md (or your agent's skills folder).<!-- GENERATED FILE — DO NOT EDIT.
This file is a verbatim mirror of library/productivity/zoom/SKILL.md,
regenerated post-merge by tools/generate-skills/. Hand-edits here are
silently overwritten on the next regen. Edit the library/ source instead.
See the repository agent guide, section "Generated artifacts: registry.json, cli-skills/". -->
This skill drives the zoom-pp-cli binary. You must verify the CLI is installed before invoking any command from this skill. If it is missing, install it first:
$HOME/.local/bin on macOS/Linux and %LOCALAPPDATA%\Programs\PrintingPress\bin on Windows:npx -y @mvanhorn/printing-press-library install zoom --cli-onlyzoom-pp-cli --version$PATH for the agent/runtime that will invoke this skill.If the npx install fails (no Node, offline, etc.), fall back to a direct Go install (requires Go 1.26.6 or newer):
go install github.com/mvanhorn/printing-press-library/library/productivity/zoom/cmd/zoom-pp-cli@latestIf --version reports "command not found" after install, the runtime cannot see the binary directory on $PATH. Do not proceed with skill commands until verification succeeds.
Use this CLI when an agent needs to reach across the user's Zoom surface holistically — joining the right meeting now, surfacing what's on the calendar today, finding what was said in a past meeting, or managing the cloud account. Particularly powerful when local desktop recordings and cloud-recorded meetings need to be queried together. Not the right pick for embedding live Zoom video into a custom app (use the Meeting SDK) or for hosting bot participants (use Recall.ai or the Meeting SDK).
These capabilities aren't available in any other tool for this API.
find — Search every locally-recorded and cloud-recorded Zoom transcript at once, with speaker filter, context windows, and a clickable deep link back to the exact second.
When you need to recover a specific commitment or decision from a meeting, you don't know in advance whether it was recorded locally or to the cloud. One search box.
zoom-pp-cli find "q2 pricing" --source both --speaker "Maya" --after 30 --jsonstorage — Group everything under ~/Documents/Zoom/ by month, topic, or partial-conversion status; cross-check against the cloud recordings list to flag duplicates safe to delete locally.
When the Documents folder is the biggest thing on the laptop, agents need to surface which gigabytes are safely reclaimable.
zoom-pp-cli storage --by month --also-in-cloud --jsonrecordings drift — Set-difference between local and cloud recordings; flags cloud recordings approaching the org retention deadline and local double_click_to_convert partials whose cloud version is already complete.
Cloud retention silently deletes recordings. Local partials silently fail. The agent needs to surface both before they bite.
zoom-pp-cli recordings drift --retention-days 90 --jsonrecordings analyze — Per-speaker total talk-seconds, longest monologue, and cue-overlap interruption count, computed from VTT cue timestamps and speaker labels.
When the agent is asked 'who dominated the meeting' or 'did everyone get a chance to speak,' it needs the answer without an LLM transcription pass.
zoom-pp-cli recordings analyze meeting-2026-05-12-1400 --json --select per_speaker.name,per_speaker.talk_seconds,per_speaker.longest_monologue_sectoday — One screen: every meeting on your calendar today, every saved bookmark scheduled for today, every recording made today, and any overlapping intervals flagged as conflicts.
When the agent is asked 'what's on my plate today and is anything double-booked,' it needs the answer in one call.
zoom-pp-cli today --with-recordings --json --select topic,start_time,join_url,conflict_withsaved add-from-url — Paste any Zoom URL shape (https://zoom.us/j/<id>?pwd=, zoommtg://, calendar-invite formats) and the CLI extracts ID + unencrypted password into a named saved bookmark in one step.
URLs land in Slack/email constantly. Closing the parse-it-yourself gap turns 'save this for later' into one command.
zoom-pp-cli saved add-from-url team-standup "https://us02web.zoom.us/j/85123456789?pwd=abc" --jsonschedule — Create a cloud meeting (POST /users/me/meetings) and immediately persist the resulting ID + password into local saved_meetings, so future zoom saved join <name> works offline.
Scheduling and joining are usually two separate tools. Pairing them lets agents create-then-recall meetings without re-querying the cloud.
zoom-pp-cli schedule "Q3 Planning" --when "2026-08-12T14:00:00Z" --duration 60 --save-as q3-planning --jsonrecordings export — Resolve a recording ID against local first, fall back to cloud (downloading if needed); package mp4 + vtt + chat.txt + a generated INDEX.md with timestamped table of contents into one folder.
When the agent is asked to 'pull together everything we have on Tuesday's planning call,' it needs one verb that doesn't care whether the source is local or cloud.
zoom-pp-cli recordings export meeting-2026-05-12-1400 --with-transcript --with-chat --out ~/Drive/q2-planning --jsonnotes web — Open https://zoom.us/notes (optionally scoped to a meeting) in the user's default browser — the only path to the live Notes UI since Zoom has no public REST endpoint for the My Notes feature.
When an agent needs to send the user to their notes, this is the single command that always works regardless of auth state.
zoom-pp-cli notes web --json --dry-runnotes summary — Fetches Zoom AI Companion's auto-generated meeting summary for a meeting UUID via the documented /meetings/{uuid}/meeting_summary endpoint (S2S OAuth gated).
When an agent needs the canonical post-meeting recap without manually exporting a PDF.
zoom-pp-cli notes summary abc123== --json --select summary_title,summary_overview,summary_detailsnotes transcript — Fetches the AI Companion full transcript for a meeting UUID via the documented /meetings/{uuid}/transcript endpoint (S2S OAuth gated).
Agents that need to verify a summary or quote can pull verbatim transcript without opening the web portal.
zoom-pp-cli notes transcript abc123== --jsonnotes ingest — Parses a Notes PDF or DOCX exported from the Zoom web portal, extracts text + meeting metadata + headings, indexes them in a local SQLite notes table (FTS5 enabled).
Lets agents build a searchable, persistent corpus of the user's meeting notes from manual exports.
zoom-pp-cli notes ingest ~/Downloads/zoom-notes-2026-05-12.pdf --json --select meeting_topic,note_count,word_countnotes search — FTS5 query across every Notes file that has been ingested, returns meeting_topic + note_excerpt + source_file + match_offset with optional --since / --meeting-id filters.
Agents asked 'what did I write down about X' can answer instantly from the ingested corpus.
zoom-pp-cli notes search "q2 launch plan" --since 30d --json --select meeting_topic,start_time,note_excerpt,source_filenotes todos — Scans ingested notes for action-item patterns (TODO:, Action:, [ ], - [ ], Action Item:, Next:, Follow up:, Owner:) and emits a structured to-do list with source meeting topic + date + checkbox state.
Turns the My Notes archive into a queryable backlog — the killer feature for agents that need to surface 'what do I still owe people from last week's meetings.'
zoom-pp-cli notes todos --since 7d --json --select text,meeting_topic,start_time,owner,checkedaccounts — Account operations
zoom-pp-cli accounts account — Retrieve a sub account under the master account. <aside>Your account must be a master account and have this...zoom-pp-cli accounts accounts — List all the sub accounts under the master accountzoom-pp-cli accounts create — Create a sub account under the master account. <aside>Your account must be a master account and have this privilege...zoom-pp-cli accounts disassociate — Disassociate a sub account from the master account. This will leave the account intact but the sub account will not...groups — Group operations
zoom-pp-cli groups create — Create a group under your accountzoom-pp-cli groups delete — Delete a group under your accountzoom-pp-cli groups group — Retrieve a group under your accountzoom-pp-cli groups groups — List groups under your accountzoom-pp-cli groups update — Update a group under your accounth323 — Manage h323
zoom-pp-cli h323 device-create — Create a H.323/SIP Device on your Zoom accountzoom-pp-cli h323 device-delete — Delete a H.323/SIP Device on your Zoom accountzoom-pp-cli h323 device-list — List H.323/SIP Devices on your Zoom account.zoom-pp-cli h323 device-update — Update a H.323/SIP Device on your Zoom accountim — Manage im
zoom-pp-cli im chat-messages — Retrieve IM Chat messages for a specified period <aside>This API only supports oauth2.</aside>zoom-pp-cli im chat-sessions — Retrieve IM Chat sessions for a specified period <aside>This API only supports oauth2.</aside>zoom-pp-cli im group — Retrieve an IM Group under your accountzoom-pp-cli im group-create — Create a IM Group under your accountzoom-pp-cli im group-delete — Delete an IM Group under your accountzoom-pp-cli im group-members — List an IM Group's members under your accountzoom-pp-cli im group-members-create — Add members to an IM Group under your accountzoom-pp-cli im group-members-delete — Delete a member from an IM Group under your accountzoom-pp-cli im group-update — Update an IM Group under your accountzoom-pp-cli im groups — List IM groups under your accountmeetings — Meeting operations
zoom-pp-cli meetings delete — Delete a meetingzoom-pp-cli meetings meeting — Retrieve a meeting's detailszoom-pp-cli meetings update — Update a meeting's detailsmetrics — Manage metrics
zoom-pp-cli metrics dashboard-crc — Get CRC Port usage hour by hour for a specified time period <aside class='notice'>We will report a maximum of one...zoom-pp-cli metrics dashboard-im — Retrieve metrics of Zoom IMzoom-pp-cli metrics dashboard-meeting-detail — Retrieve live or past meetings detailzoom-pp-cli metrics dashboard-meeting-participant-qos — Retrieve live or past meetings participant quality of servicezoom-pp-cli metrics dashboard-meeting-participant-share — Retrieve sharing/recording details of live or past meetings participantzoom-pp-cli metrics dashboard-meeting-participants — Retrieve live or past meetings participantszoom-pp-cli metrics dashboard-meeting-participants-qos — Retrieve list of live or past meetings participants quality of servicezoom-pp-cli metrics dashboard-meetings — List live meetings or past meetings for a specified periodzoom-pp-cli metrics dashboard-webinar-detail — Retrieve live or past webinars detailzoom-pp-cli metrics dashboard-webinar-participant-qos — Retrieve live or past webinar participant quality of servicezoom-pp-cli metrics dashboard-webinar-participant-share — Retrieve sharing/recording details of live or past webinar participantzoom-pp-cli metrics dashboard-webinar-participants — Retrieve live or past webinar participantszoom-pp-cli metrics dashboard-webinar-participants-qos — Retrieve list of live or past webinar participants quality of servicezoom-pp-cli metrics dashboard-webinars — List live webinars or past webinars for a specified periodzoom-pp-cli metrics dashboard-zoom-room — Retrieve zoom room on accountzoom-pp-cli metrics dashboard-zoom-rooms — List all zoom rooms on accountpast-meetings — Manage past meetings
zoom-pp-cli past-meetings <meetingUUID> — Retrieve ended meeting detailspast-webinars — Manage past webinars
report — Report operations
zoom-pp-cli report cloud-recording — Retrieve cloud recording usage report for a specified period. You can only get cloud recording reports for the most...zoom-pp-cli report daily — Retrieve daily report for one month, can only get daily report for recent 6 monthszoom-pp-cli report meeting-details — Retrieve ended meeting details reportzoom-pp-cli report meeting-participants — Retrieve ended meeting participants reportzoom-pp-cli report meeting-polls — Retrieve ended meeting polls reportzoom-pp-cli report meetings — Retrieve ended meetings report for a specified periodzoom-pp-cli report telephone — Retrieve telephone report for a specified period <aside>Toll Report option would be removed.</aside>.zoom-pp-cli report users — Retrieve active or inactive hosts report for a specified periodzoom-pp-cli report webinar-details — Retrieve ended webinar details reportzoom-pp-cli report webinar-participants — Retrieve ended webinar participants reportzoom-pp-cli report webinar-polls — Retrieve ended webinar polls reportzoom-pp-cli report webinar-qa — Retrieve ended webinar Q&A reporttracking-fields — Tracking Field operations
zoom-pp-cli tracking-fields create — Create a Tracking Field on your Zoom accountzoom-pp-cli tracking-fields delete — Delete a Tracking Field on your Zoom accountzoom-pp-cli tracking-fields get — Retrieve a tracking fieldzoom-pp-cli tracking-fields list — List Tracking Fields on your Zoom account.zoom-pp-cli tracking-fields update — Update a Tracking Field on your Zoom accounttsp — TSP operations
zoom-pp-cli tsp tsp — Retrieve TSP information on account levelzoom-pp-cli tsp update — Update TSP information on account levelusers — User operations
zoom-pp-cli users create — Create a user on your accountzoom-pp-cli users delete — Delete a user on your accountzoom-pp-cli users email — Check if the user email existszoom-pp-cli users update — Update a user on your accountzoom-pp-cli users user — Retrieve a user on your accountzoom-pp-cli users users — List users on your accountzoom-pp-cli users vanity-name — Check if the user's personal meeting room name existszoom-pp-cli users zpk — Check if the zpk is expired. The zpk is used to authenticate a user.webhooks — Webhook operations
zoom-pp-cli webhooks create — Create a webhook for a accountzoom-pp-cli webhooks delete — Delete a webhookzoom-pp-cli webhooks switch — Switch webhook versionzoom-pp-cli webhooks update — Update a webhookzoom-pp-cli webhooks webhook — Retrieve a webhookzoom-pp-cli webhooks webhooks — List webhooks for a accountwebinars — Webinar operations
zoom-pp-cli webinars delete — Delete a webinarzoom-pp-cli webinars update — Update a webinarzoom-pp-cli webinars webinar — Retrieve a webinarWhen you know what you want to do but not which command does it, ask the CLI directly:
zoom-pp-cli which "<capability in your own words>"which resolves a natural-language capability query to the best matching command from this CLI's curated feature index. Exit code 0 means at least one match; exit code 2 means no confident match — fall back to --help or use a narrower query.
zoom-pp-cli find "customer churn" --source both --speaker "Riley" --after 45 --json --select recording_path,start_ms,speaker,text,deep_linkSearches every local + cloud transcript for the phrase, scoped to one speaker, with 45 seconds of follow-up context per match — and returns a clickable timestamped deep link.
zoom-pp-cli today --with-recordings --since 7d --json --select topic,start_time,join_url,conflict_with,recording_pathPulls the last week of meetings + today's calendar + today's recordings in one query, flags any back-to-back overlaps, and gives the agent everything it needs to draft a weekly recap.
zoom-pp-cli storage --by month --also-in-cloud --json --select month,total_gb,safe_to_delete_gbGroups local recordings by month and flags which are also in the cloud (and therefore safe to delete locally) — agents can recommend reclaimable disk without risking the only copy.
zoom-pp-cli schedule "Sprint planning" --when 2026-05-21T15:00:00Z --duration 60 --save-as sprint --jsonCreates the cloud meeting and immediately writes a local bookmark, so a later zoom-pp-cli saved join sprint works without re-hitting the API.
zoom-pp-cli recordings analyze offsite-2026-05-18 --json --select per_speakerComputes per-speaker talk-time, longest monologue, and interruption count from the VTT cues without an LLM call.
zoom-pp-cli notes ingest ~/Downloads/notes-q2-planning.pdf && zoom-pp-cli notes todos --since 14d --json --select text,meeting_topic,owner,checkedIngest an exported Notes PDF, then extract every action-item pattern across the last two weeks of ingested notes — Zoom has no public API for My Notes, so manual export plus this pipeline is the only path.
No authentication required.
Run zoom-pp-cli doctor to verify setup.
Add --agent to any command. Expands to: --json --compact --no-input --no-color --yes.
Pipeable — JSON on stdout, errors on stderr
Filterable — --select keeps a subset of fields. Dotted paths descend into nested structures; arrays traverse element-wise. Critical for keeping context small on verbose APIs:
zoom-pp-cli tracking-fields list --agent --select id,name,statusPreviewable — --dry-run shows the request without sending
Offline-friendly — sync/search commands can use the local SQLite store when available
Non-interactive — never prompts, every input is a flag
Explicit retries — use --idempotent only when an already-existing create should count as success, and --ignore-missing only when a missing delete target should count as success
Commands that read from the local store or the API wrap output in a provenance envelope:
{
"meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
"results": <data>
}Parse .results for data and .meta.source to know whether it's live or local. A human-readable N results (live) summary is printed to stderr only when stdout is a terminal AND no machine-format flag (--json, --csv, --compact, --quiet, --plain, --select) is set — piped/agent consumers and explicit-format runs get pure JSON on stdout.
When you (or the agent) notice something off about this CLI, record it:
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 10Entries are stored locally at ~/.zoom-pp-cli/feedback.jsonl. They are never POSTed unless ZOOM_FEEDBACK_ENDPOINT is set AND either --send is passed or ZOOM_FEEDBACK_AUTO_SEND=true. Default behavior is local-only.
Write what surprised you, not a bug report. Short, specific, one line: that is the part that compounds.
Every command accepts --deliver <sink>. The output goes to the named sink in addition to (or instead of) stdout, so agents can route command results without hand-piping. Three sinks are supported:
| Sink | Effect |
|---|---|
stdout | Default; write to stdout only |
file:<path> | Atomically write output to <path> (tmp + rename) |
webhook:<url> | POST the output body to the URL (application/json or application/x-ndjson when --compact) |
Unknown schemes are refused with a structured error naming the supported set. Webhook failures return non-zero and log the URL + HTTP status on stderr.
A profile is a saved set of flag values, reused across invocations. Use it when a scheduled agent calls the same command every run with the same configuration - HeyGen's "Beacon" pattern.
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 --yesExplicit flags always win over profile values; profile values win over defaults. agent-context lists all available profiles under available_profiles so introspecting agents discover them at runtime.
| Code | Meaning |
|---|---|
| 0 | Success |
| 2 | Usage error (wrong arguments) |
| 3 | Resource not found |
| 5 | API error (upstream issue) |
| 7 | Rate limited (wait and retry) |
| 10 | Config error |
Parse $ARGUMENTS:
help, or --help → show zoom-pp-cli --help outputinstall → ends with mcp → MCP installation; otherwise → see Prerequisites above--agent)Install the MCP binary from this CLI's published public-library entry or pre-built release, then register it:
claude mcp add zoom-pp-mcp -- zoom-pp-mcpVerify: claude mcp list
which zoom-pp-cli
If not found, offer to install (see Prerequisites at the top of this skill).--agent flag:zoom-pp-cli <command> [subcommand] [args] --agentzoom-pp-cli <command> --help.© mvanhorn, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in cli-skills/pp-zoom of mvanhorn/printing-press-library.
Open the folder on GitHubat commit 76de244
Pp Zoom next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pp Zoom this skillmvanhorn/printing-press-library | 2.1k | — | ~5.8k | Automated safety check: Notes | Apache-2.0 | |
| Markdown Article FormatterJimLiu/baoyu-skills | 26k | 6 repos | ~3.5k | Automated safety check: Pass | MIT | |
| MarkitdownImCa0/just-laws | 782 | 14 repos | ~3.2k | Automated safety check: Notes | MIT | |
| Obsidian MarkdownAtmosphere/atmosphere | 3.8k | 20 repos | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| DOCXrvdbreemen/OTGW-firmware | 207 | 33 repos | ~4.3k | Automated safety check: Pass | Proprietary | |
| Gzh Designisjiamu/gzh-design-skill | 3.9k | 1 repos | ~2.2k | Automated safety check: Pass | AGPL-3.0 |
JimLiu/baoyu-skills
Reformats plain text or Markdown articles with frontmatter, a title, a summary, headings, bold, lists and code blocks, and saves a separate formatted copy.
ImCa0/just-laws
Convert files and office documents to Markdown. An agent skill from ImCa0/just-laws.
Atmosphere/atmosphere
Create and edit Obsidian Flavored Markdown with wikilinks, embeds, callouts, properties, and other Obsidian-specific syntax.
rvdbreemen/OTGW-firmware
A skill your agent uses whenever the user wants to create, read, edit, or manipulate Word documents (.docx files).
isjiamu/gzh-design-skill
微信公众号文章排版引擎,将 Markdown 转换为可直接粘贴到公众号编辑器的 HTML。主题风格从 references/theme-index.md 注册的自定义主题库中选取,自动章节编号、关键词下划线标记、引言卡片、目录导航、代码块、图片/GIF、作者签名。支持 Markdown / Word(.docx) / PDF / 纯文本输入(非 Markdown…
HKUDS/DeepTutor
Reads, creates and edits Word .docx files with python-docx, and drops to raw OOXML for tracked changes, comments and byte-exact edits.
mvanhorn/printing-press-library
Desktop automation through the real Rust agent-desktop CLI, published in Printing Press through a small bridge.
mvanhorn/printing-press-library
Search, browse, and download Google Fonts from the terminal via the gfonts CLI.
mvanhorn/printing-press-library
The free, offline Trigger phrases: search 1688 for, find a factory on 1688 for, wholesale price on 1688 for, who is the cheapest supplier on 1688 for, compare 1688 suppliers for, use 1688, run 1688.
mvanhorn/printing-press-library
Inspect known Activity Japan plan IDs or URLs, compare dated prices and sessions, check language-sitemap coverage, and hand off to canonical booking pages.
mvanhorn/printing-press-library
Every Admin By Request portal action, plus a local SQLite mirror of audit, events, inventory and requests for ad-hoc...
mvanhorn/printing-press-library
macOS screen capture, window recording, GIF conversion, and agent evidence bundles from the terminal.
Works with
Categories
The first Zoom CLI that joins your local desktop app, your on-disk recordings, and your cloud account into one... Pp Zoom is an agent skill from mvanhorn/printing-press-library. The first Zoom CLI that joins your local desktop app, your on-disk recordings, and your cloud account into one...
Pp Zoom fits situations like: phrases: join the zoom meeting; what zoom meetings do i have today; find that quote from last weeks zoom; whats in my documents/zoom folder.
Run `npx skills add mvanhorn/printing-press-library --skill pp-zoom -a claude-code`. Or copy the skill folder (cli-skills/pp-zoom in mvanhorn/printing-press-library) into .claude/skills/pp-zoom in your project. Claude Code loads it when a task matches its description.
Run `npx skills add mvanhorn/printing-press-library --skill pp-zoom -a codex`. Or copy the skill folder (cli-skills/pp-zoom in mvanhorn/printing-press-library) into .agents/skills/pp-zoom in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mvanhorn/printing-press-library --skill pp-zoom -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pp-zoom, .gemini/skills/pp-zoom, .github/skills/pp-zoom and .opencode/skills/pp-zoom in your project.
Going by SKILL.md and its folder, Pp Zoom needs the command-line tools its instructions call (claude, npx and go). Our summary lists: Node.js. Its frontmatter pre-approves these tools: Read, Bash.
SKILL.md names 2 domains. In commands or code: us02web.zoom.us; the agent is likely to contact it when it follows the instructions. As links in the text: zoom.us. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
Pp Zoom is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.8k tokens (SKILL.md is roughly 23k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pp Zoom: Markdown Article Formatter (JimLiu/baoyu-skills, 26k stars), Markitdown (ImCa0/just-laws, 782 stars), Obsidian Markdown (Atmosphere/atmosphere, 3.8k stars) and DOCX (rvdbreemen/OTGW-firmware, 207 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
mvanhorn (a GitHub user) maintains it in mvanhorn/printing-press-library, which has 2,056 GitHub stars. The repository holds 506 skills in this directory. The repository was last updated on October 9, 2026.
Source: mvanhorn/printing-press-library on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.