
WireCat Zoom
dev.wirecatPublished by wirecat.devv0.67.0Updated Nov 5, 2026
Zoom cloud recordings and transcripts for agents, kept on your computer. Sign in with zm first.
The publisher's own server: Wire Cash: bank wire fees and transfer costs
Overview
Local-first Zoom meeting, transcript and recording tool that gives an AI assistant searchable, cited access to your past calls.
- What you can do
- Search and read stored meetings, transcripts, AI summaries and passages with exact citations
- Prepare for calls: find scheduled series, past meetings with the same people, and cited context
- Archive cloud recordings with checksummed manifests, and search or import archived WebVTT transcripts offline
- Transcribe local audio with a downloaded speech model, and generate embeddings for meaning-based search
- Preview follow-up task proposals and link meetings to people or projects
- List, create, update and cancel Zoom meetings and look up contacts
- When to use it
- Useful when you want an assistant to recall what was said, agreed or promised in Zoom calls, to prepare for an upcoming meeting, or to keep a local searchable archive of recordings and transcripts.
- Requirements
- Runs locally via npx (Node 22.16+ within 22.x, or 24+) and needs a user-managed Zoom app with Public Client OAuth, its Public Client ID set as zoom.client_id or ZM_ZOOM_CLIENT_ID, and browser approval at login. A system keyring is recommended; ffmpeg and a downloaded model are needed for local transcription. Network access to Zoom's API.
Installation
In SourceWeft
- Open WireCat Zoom in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
[Zoom meetings and transcripts for your AI agent]
zoom-cli
Zoom meetings and transcripts for your AI agent. Know the context before the call. Remember the commitments after it.
zm keeps your Zoom meetings, transcripts and AI summaries in a local database and gives them to
Claude Code, Codex, Gemini CLI or any MCP client. Ask what you discussed with someone last time, or
what you promised in yesterday's call, and get the answer with a reference to the exact passage.
Documentation · Commands · WireCat
[npm] [Node] [License: Apache 2.0]
Example — invented people, illustrative output:
You: I have a call with Bob Sample at three. What did we agree last time, and what do I owe him?
Agent: You last spoke on 2 October in "Pricing review". You promised Bob a revised quote by Friday (
meeting:1/42/57/118), and he asked whether the annual plan includes onboarding (meeting:1/42/57/131). I found no later update in the stored meetings I searched; missing history may change that.
Quick start
You need Node 22.16+ (22.x) or 24+ and a configured user-managed Zoom app; a system keyring is best. Reuse one you already created or one your team has made available to your user; otherwise create your own. Use its Public Client ID, not its regular Client ID or secret. The installation guide walks through app settings, browser approval and callback completion.
Check Zoom's transcript generation and retention settings first: the API reads available hosted
meeting text, and permission does not create a transcript. For an attended meeting, obtain a VTT
file from the host or download one if allowed, then run zm personal meetings import <folder>. Full guide:
installation.
More: installation · your Zoom app · Zoom on wirecat.dev
What you can do
Prepare for a call. "I meet Bob Sample tomorrow. What did we talk about last time?"
meetings scheduled finds candidate series; meetings prepare <series-id> checks the selected
series’ next occurrence and gathers cited context. meetings people, search meetings (word
search that also matches English, Spanish and Russian word forms) and meetings context person:<id>
bring back past meetings with the same people. Inventory date hints alone do not prove the next call.
Participant discovery accepts --limit, --scan-limit, --max-read-bytes and --cursor;
follow item.page.next_cursor even after an empty scan page. It returns observed identity_id candidates,
never inferred person links. Stored meeting lists accept metadata queries, for example
zm personal meetings list 'started_at:[2026-09-01 TO 2026-10-01]' --json.
Find the project behind a call. "Which of my saved projects might this meeting concern?"
meetings projects scan <ref> compares one bounded page of local meeting evidence with existing
project names, keys and aliases. It returns cited suggestions and ambiguity for review, saving no
project link. The agent can check proposed labels against Memo's existing vocabulary too.
Follow up after it. "What did I promise in today's call?" The agent reads
meetings transcript and meetings summary, cites passages with meetings evidence, and
meetings task-proposal --type promise previews a follow-up task tied to that passage.
Keep the whole history. "Back up every recording since January."
recordings download --since-time 2026-01-01 --until-time 2026-10-10 --output-dir ./zoom-archive --jsonl downloads
video, audio, transcripts and chat with SHA-256 manifests; recordings schedule runs it daily.
More: the local archive · search and evidence · Zoom on wirecat.dev
Built for AI agents
- Command line + skill.
zm skill installadds the packaged guide for Claude Code, Codex and Gemini CLI. Every command speaks--jsonor--jsonl, andzm commands --jsondescribes them all. - MCP.
zm personal mcp serveserves zm's commands to Claude Desktop, Cursor and other MCP clients, as far as the profile's permissions allow;zm mcp serve --profiles allserves every profile from one server, and--httpserves browser apps behind your tunnel. Connecting a client.
Your agent. Your meetings. Your rules.
More: MCP and skills · connect your AI agent
Why zm
- Context across meetings. Search available hosted meetings and imported transcripts in the shared store. Read archived transcripts separately or import them before searching them together.
- Local-first. Meetings live in a SQLite database on your machine. Archived transcripts can be read and searched offline, without login.
- Every answer has a source. References such as
meeting:1/42/57/118point to one passage of one transcript revision, and corrected transcripts keep their history. - Made for agents. JSON output, bounded reads with explicit completeness, a skill and an MCP server.
- Safe by default. Your own Zoom app, tokens only in the keyring, permissions per profile, and every
change to Zoom asks first at the terminal. Over MCP there is no terminal, so
askruns without a question; usedenyorreadonlyto stop a change.
More: security · Zoom on wirecat.dev
What works today, and what does not yet
zm is at version 0.x; commands may still change. Today it reads hosted meetings, participants,
transcripts and AI summaries available to the account through Zoom's official API, imports downloaded
WebVTT files, archives cloud recordings, transcribes local audio with an installed speech model,
links meetings to events and people, and creates, changes or cancels simple meetings.
- It does not find commitments on its own. Your agent finds them in transcripts;
task-proposalonly previews a task and creates nothing. - People are linked by hand.
zmnever guesses a person from a speaker name; person context covers participants already linked to a person, for example withmeetings link. - Local transcription needs
ffmpegfor anything but a ready WAV, and a model you download withzm models download; speakers stay unknown. - Attended meetings need a manual download from your Zoom portal, then
zm personal meetings import. - A company-managed Zoom account may need an admin to approve your app.
- Daily archive jobs install only on Linux. Other platforms can preview them.
- Zoom only, for now. Google Meet and Microsoft Teams are on the roadmap.
More: what is planned · Zoom on wirecat.dev
More: compared with other tools · on wirecat.dev
Commands by task
Zoom meeting changes, links, transcription, schedules, explicit meetings embeddings generation and
lock recovery preview by default and run once with --yes; --dry-run keeps the preview. Word search
updates its index automatically. Search with --model generates missing vectors before ranking; an
explicitly selected remote embedding endpoint receives those transcript passages and the query.
More: usage · every command and option · Zoom on wirecat.dev
Your Zoom app and login
zm reads your meetings through Zoom's official API using a configured user-managed Zoom app
with Public Client OAuth. Reuse an existing app available to your user or create one. Enable Public
Client OAuth, copy its Public Client ID, configure the redirect and add the required scopes manually.
The optional starter manifest supplies neither scopes nor Public Client OAuth. Zoom may show a
Client Secret, but zm does not use it. Recording archives and management need additional scopes.
Follow the app setup guide; no credentials file is downloaded.
zm personal session start opens Zoom's consent page. Zoom redirects to the static page
https://wirecat.dev/zoom-callback, which passes the answer to a listener on your machine; if it
cannot, paste the code=…&state=… parameters it shows. Login checks the state and PKCE verifier and
stores tokens in the system keyring; where the keyring fails, in a private file, without asking
(--credential-storage file chooses the file, not recommended). Without a terminal, as in an agent's shell, login prints the URL
on stderr for the agent to pass on and waits for the callback; --no-input and CI refuse it. zm personal session status reads the cached state without refreshing it;
--check asks Zoom.
More: your Zoom app · login and sessions · Zoom on wirecat.dev
Profiles and the local store
The first word is the profile: zm personal meetings list. A profile is one Zoom login and its own
meetings in the store; zm work session start makes a second one. ZM_PROFILE names it for a shell
session, and ZM_PROFILE_LOCK pins a process to one profile. Nothing picks a profile for you: without
one, a command that uses an account stops and lists the profiles on this computer. Names have 1–64
letters, digits, dots, underscores or hyphens. Login makes a profile; so does the first import on a computer with
none. An import or pull naming an unknown profile beside others is refused, so a typo stores nothing.
Meetings live in the shared WireCat database wirecat.db, next to data from other WireCat tools.
MESSAGING_STORE selects another path. Store opens preserve legacy messages.db files and their
sidecars; manage their retention separately. Metadata, help, configuration and login never open the database.
More: profiles · where meetings are stored · Zoom on wirecat.dev
Pull, import and watch
The cursor alone does not revisit transcripts that appear late; use --lookback-days or an older
--since-time. A failed occurrence leaves the cursor unchanged for the next pull. Imported files follow
the exporter's YYYY-MM-DD_HHMM_topic-slug.vtt names, or .txt with a zoom-searcher header; their time is read in
this computer's zone unless files.timezone names another, and the import says which. A .txt's speakers become
participants of that meeting only; speaker names never become identities across meetings.
More: the local archive · Zoom on wirecat.dev
Archive cloud recordings
Sync covers up to ten years in monthly requests and downloads serially, streaming to disk. Each
occurrence gets a manifest with sizes and SHA-256 checksums, never signed URLs or tokens. Existing
files are never overwritten; repeated runs skip verified files. With a profile, interrupted downloads
resume safely. recordings archive transcript and search recordings read verified WebVTT offline
without a database; recordings archive import appends them to your stored meetings. recordings schedule create --yes installs a daily systemd user timer (Linux only).
What you can download depends on Zoom permissions, retention and your plan. Recordings of meetings you only attended are not necessarily available through your API.
More: archive cloud recordings · daily backups · Zoom on wirecat.dev
Search and evidence
search meetings indexes new meetings first, matches every word by prefix or by stored English, Spanish
and Russian word forms, and pages with an opaque --cursor. References have the form
meeting:<account>/<meeting>[/<transcript>[/<cue-position>]], stay inside the selected account and
keep pointing at the same revision after a correction. Bounded reads report their
coverage and limits; archive completeness can remain unknown. search all --only meetings,notes adds store-wide notes. search meetings --model searches by meaning with a model you name; nothing is downloaded for you.
More: search and evidence · topic search · Zoom on wirecat.dev
Local transcription
No Zoom transcript? zm personal meetings transcribe 1 ./call.m4a --model <model> --yes recognizes a recording —
Zoom's MP4 or M4A through an installed ffmpeg, a 16 or 48 kHz PCM16 WAV as it is — with a local speech model from
zm models download <model>, and appends it as a separate transcript. The preview checks the file without loading the model. Timestamps cover windows
of up to 30 seconds and speakers stay unknown.
More: transcribe local audio · Zoom on wirecat.dev
MCP and agent setup
zm skill install writes the packaged guide to ~/.claude/skills/zoom-cli/ (Claude Code) and
~/.agents/skills/zoom-cli/ (Codex, Gemini CLI); --for picks one. MCP clients start the server
with the profile it speaks for:
The server offers zm's commands as the three tools every WireCat CLI serves — zm_tools_search, zm_read,
zm_write — and runs each call as the command line would. The profile's permissions
decide what it offers: {"remote-meetings": "readonly"} keeps an agent from changing Zoom meetings. A desktop app
may need the full path from command -v zm (Linux/macOS) or where.exe zm (Windows), and the same ZM_CONFIG_DIR
or MESSAGING_STORE in the entry's env.
More: MCP and skills · MCP and skills on wirecat.dev · connect your AI agent
Manage Zoom meetings
Creation, updates and cancellation preview until you add --yes, and are never retried
automatically. An uncertain outcome exits with code 14: check Zoom before repeating. Remote ids are
Zoom's numeric ids; stored meetings commands use local ids.
More: managing Zoom meetings · Zoom on wirecat.dev
Output, limits and deadlines
--json prints one answer envelope; --jsonl prints typed item records and a final end record; piped output defaults to JSON and errors
go to stderr. --json=id,title keeps only those fields, --offline refuses the network, and output is
capped at 4 MiB unless --max-output-bytes says otherwise. Default deadlines are 30 seconds for
reads, five minutes for login and one hour for downloads, sync and verification; --timeout 5m
changes them. Watching and MCP serving run until stopped. Times are UTC in every format; text
output that shows one ends with times in UTC.
More: usage · Zoom on wirecat.dev
Configuration
More: configuration · Zoom on wirecat.dev
Security model
- A configured Zoom public-client app with PKCE; no client secret is used.
- Tokens in the system keyring, never in a config file; where the keyring fails, an owner-only file, said once on stderr.
- Network: Zoom's API, plus an embedding endpoint only when you name one.
--offlinerefuses both. - Manifests and saved jobs never hold signed URLs, tokens or credentials; diagnostics omit raw provider error text.
- The MCP server offers reads and writes for the profile it serves (or each profile
--profilesnames), limited by its permissions;askwrites run without a terminal question. ZM_READ_ONLY=1refuses changes to Zoom, the login, settings and anything you added (imports, links, transcripts, exports, jobs), with exit 5, before any network call; reads and the syncs that copy Zoom into the store or an archive still run. Give it to an agent that should only read.
More: security · security on wirecat.dev
Troubleshooting
- "Invalid redirect" from Zoom: the manifest import left the redirect URL or Public Client OAuth unset; fill them in by hand.
- No transcripts: check generation, retention and permissions in the app guide.
Enabling a setting does not restore deleted text; attended meetings may need
zm personal meetings import. - Missing-scope error: add the named scope in your app, then
zm personal session startagain. - Browser does not start:
zm personal session start --browser firefox, or paste the callback parameters. - Lock left after a crash:
zm personal recordings archive locks, thenrecoverwith--yes.
More: troubleshooting · Zoom on wirecat.dev
Part of WireCat
zm is part of WireCat, an open-source, local-first context layer for AI
agents. Meetings land in the same local store as your Telegram, MAX and memo data, and
zm personal search all "<query>" --only meetings,notes searches them together with your memo notes.
Start with Zoom. Add more context when you need it. Your context. Any agent.
More: wirecat.dev · connect your AI agent
Questions and setup help: join the WireCat Discord. Bugs go to this repository's issues.
Technical docs
The Zoom guides on wirecat.dev include setup, search and archive instructions.
Development
Node 22.16 or newer within 22.x, or Node 24 or newer:
Fixtures use invented people and meetings. Tests use an injected keyring, scripted HTTP responses,
temporary config folders and the memory meeting store. pnpm generate:check checks the generated
command reference; pnpm test:matrix measures command and option coverage.
More: development setup · test matrix
Licence
Source: README.md at commit a0aa43e
Tools
0Version history
7- v0.67.0LatestNov 5, 2026
- v0.66.0Nov 3, 2026
- v0.63.0Nov 1, 2026
- v0.60.1Oct 31, 2026
- v0.60.0Oct 31, 2026
- v0.59.1Oct 30, 2026
- v0.59.0Oct 29, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts
Other Wire integrations
Wire Cash: bank wire fees and transfer costs
cash.wireOfficial publisher
Wire Cash gives an assistant published US bank wire fees, same-day cutoff times and World Bank remittance costs for sending money abroad.

TollWire Evidence
Published by GitHub account TollWire
Local MCP server that records agent changes, scans, approvals and deployments in a tamper-evident hash-chain log and verifies it.

WireCat b24
dev.wirecat
A local CLI-backed MCP server that lets an assistant read and update a Bitrix24 portal's CRM — deals, leads, contacts, companies, pipelines and products.

SupportWire
Published by GitHub account supportwire
Hosted SupportWire MCP server that lets an assistant triage support conversations, reply to customers, and manage customers, tasks and team settings.
Touchline Wire — FPL & Premier League Intelligence
Published by GitHub account Steven-Robinson
Zero-auth MCP server giving assistants live 2026/27 Fantasy Premier League and Premier League data: captaincy, expected minutes, lineups, injuries and stats.