@wirecat/zoom-cli 0.7.3 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/README.md +59 -56
  2. package/dist/api.d.ts +4 -2
  3. package/dist/api.d.ts.map +1 -1
  4. package/dist/api.js +4 -3
  5. package/dist/api.js.map +1 -1
  6. package/dist/archive-commands.d.ts.map +1 -1
  7. package/dist/archive-commands.js +37 -48
  8. package/dist/archive-commands.js.map +1 -1
  9. package/dist/archive-import.d.ts +1 -1
  10. package/dist/archive-import.d.ts.map +1 -1
  11. package/dist/archive-import.js +2 -2
  12. package/dist/archive-import.js.map +1 -1
  13. package/dist/archive-transcripts.d.ts +1 -1
  14. package/dist/archive-transcripts.d.ts.map +1 -1
  15. package/dist/archive-transcripts.js +1 -1
  16. package/dist/archive-transcripts.js.map +1 -1
  17. package/dist/bin/zm.js +14 -9
  18. package/dist/bin/zm.js.map +1 -1
  19. package/dist/commands.d.ts.map +1 -1
  20. package/dist/commands.js +41 -14
  21. package/dist/commands.js.map +1 -1
  22. package/dist/errors.d.ts.map +1 -1
  23. package/dist/errors.js +2 -2
  24. package/dist/errors.js.map +1 -1
  25. package/dist/execution.js +2 -2
  26. package/dist/execution.js.map +1 -1
  27. package/dist/files.d.ts +4 -2
  28. package/dist/files.d.ts.map +1 -1
  29. package/dist/files.js +16 -6
  30. package/dist/files.js.map +1 -1
  31. package/dist/folders.js +1 -1
  32. package/dist/folders.js.map +1 -1
  33. package/dist/index.d.ts +1 -1
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/ingestion-search-commands.d.ts.map +1 -1
  36. package/dist/ingestion-search-commands.js +12 -11
  37. package/dist/ingestion-search-commands.js.map +1 -1
  38. package/dist/keys.d.ts +3 -0
  39. package/dist/keys.d.ts.map +1 -0
  40. package/dist/keys.js +16 -0
  41. package/dist/keys.js.map +1 -0
  42. package/dist/local-transcription-commands.js +8 -8
  43. package/dist/local-transcription-commands.js.map +1 -1
  44. package/dist/local-transcription.d.ts +2 -2
  45. package/dist/local-transcription.d.ts.map +1 -1
  46. package/dist/local-transcription.js +2 -2
  47. package/dist/local-transcription.js.map +1 -1
  48. package/dist/mcp-server.d.ts +1 -1
  49. package/dist/mcp-server.d.ts.map +1 -1
  50. package/dist/mcp-server.js +59 -54
  51. package/dist/mcp-server.js.map +1 -1
  52. package/dist/meeting-context-commands.d.ts.map +1 -1
  53. package/dist/meeting-context-commands.js +22 -20
  54. package/dist/meeting-context-commands.js.map +1 -1
  55. package/dist/meeting-context.d.ts +6 -3
  56. package/dist/meeting-context.d.ts.map +1 -1
  57. package/dist/meeting-context.js +12 -4
  58. package/dist/meeting-context.js.map +1 -1
  59. package/dist/meeting-integration-commands.js +9 -9
  60. package/dist/meeting-integration-commands.js.map +1 -1
  61. package/dist/meeting-integration.d.ts +2 -2
  62. package/dist/meeting-integration.d.ts.map +1 -1
  63. package/dist/meeting-integration.js +1 -1
  64. package/dist/meeting-integration.js.map +1 -1
  65. package/dist/meeting-search-commands.d.ts +10 -20
  66. package/dist/meeting-search-commands.d.ts.map +1 -1
  67. package/dist/meeting-search-commands.js +123 -27
  68. package/dist/meeting-search-commands.js.map +1 -1
  69. package/dist/meeting-semantic-commands.d.ts +3 -1
  70. package/dist/meeting-semantic-commands.d.ts.map +1 -1
  71. package/dist/meeting-semantic-commands.js +11 -30
  72. package/dist/meeting-semantic-commands.js.map +1 -1
  73. package/dist/meeting-semantic.d.ts +2 -2
  74. package/dist/meeting-semantic.d.ts.map +1 -1
  75. package/dist/meeting-semantic.js +28 -1
  76. package/dist/meeting-semantic.js.map +1 -1
  77. package/dist/ordinary-file.js +3 -3
  78. package/dist/ordinary-file.js.map +1 -1
  79. package/dist/output-file.js +2 -2
  80. package/dist/output-file.js.map +1 -1
  81. package/dist/program.d.ts +4 -5
  82. package/dist/program.d.ts.map +1 -1
  83. package/dist/program.js +160 -133
  84. package/dist/program.js.map +1 -1
  85. package/dist/recording-archive.d.ts.map +1 -1
  86. package/dist/recording-archive.js +1 -1
  87. package/dist/recording-archive.js.map +1 -1
  88. package/dist/recording-partial-store.d.ts +1 -1
  89. package/dist/recording-partial-store.d.ts.map +1 -1
  90. package/dist/recording-promotion-store.d.ts +1 -1
  91. package/dist/recording-promotion-store.d.ts.map +1 -1
  92. package/dist/recording-promotion-store.js +1 -1
  93. package/dist/recording-promotion-store.js.map +1 -1
  94. package/dist/recording-schedule-commands.js +11 -11
  95. package/dist/recording-schedule-commands.js.map +1 -1
  96. package/dist/recording-schedule.d.ts +1 -1
  97. package/dist/recording-schedule.d.ts.map +1 -1
  98. package/dist/recording-schedule.js +1 -1
  99. package/dist/recording-schedule.js.map +1 -1
  100. package/dist/recording-sync-store.d.ts +1 -1
  101. package/dist/recording-sync-store.d.ts.map +1 -1
  102. package/dist/recording-sync-store.js +1 -1
  103. package/dist/recording-sync-store.js.map +1 -1
  104. package/dist/recording-sync.d.ts +1 -1
  105. package/dist/recording-sync.d.ts.map +1 -1
  106. package/dist/recording-sync.js +1 -1
  107. package/dist/recording-sync.js.map +1 -1
  108. package/dist/recordings.d.ts +1 -1
  109. package/dist/recordings.d.ts.map +1 -1
  110. package/dist/remote-http.js +2 -2
  111. package/dist/remote-http.js.map +1 -1
  112. package/dist/remote-meetings.d.ts +8 -8
  113. package/dist/remote-meetings.d.ts.map +1 -1
  114. package/dist/remote-meetings.js +1 -1
  115. package/dist/remote-meetings.js.map +1 -1
  116. package/dist/store-connection.d.ts +4 -4
  117. package/dist/store-connection.d.ts.map +1 -1
  118. package/dist/store-connection.js +13 -36
  119. package/dist/store-connection.js.map +1 -1
  120. package/dist/tokens.d.ts.map +1 -1
  121. package/dist/tokens.js +6 -6
  122. package/dist/tokens.js.map +1 -1
  123. package/dist/unified-search.d.ts +1 -1
  124. package/dist/unified-search.d.ts.map +1 -1
  125. package/dist/unified-search.js.map +1 -1
  126. package/dist/watch-commands.d.ts +4 -4
  127. package/dist/watch-commands.d.ts.map +1 -1
  128. package/dist/watch-commands.js +10 -10
  129. package/dist/watch-commands.js.map +1 -1
  130. package/dist/wav-audio.d.ts +1 -1
  131. package/dist/wav-audio.d.ts.map +1 -1
  132. package/dist/wav-audio.js +1 -1
  133. package/dist/wav-audio.js.map +1 -1
  134. package/package.json +4 -3
  135. package/skills/zoom-cli/SKILL.md +30 -22
package/README.md CHANGED
@@ -29,8 +29,8 @@ what you promised in yesterday's call, and get the answer with a reference to th
29
29
  ```sh
30
30
  zm remote-meetings list --json # your upcoming meetings
31
31
  zm meetings people "Bob Sample" --json # him among past participants
32
- zm meetings search "quote" --since 2026-09-01 --json
33
- zm meetings evidence meeting:1/42/57/118 --json # the exact passage
32
+ zm search meetings "quote" --since-time 2026-09-01 --json
33
+ zm meetings passage meeting:1/42/57/118 --format markdown # the line and its context
34
34
  ```
35
35
 
36
36
  > **Agent:** You last spoke on 2 October in "Pricing review". You promised Bob a revised quote by
@@ -47,15 +47,15 @@ walks through app settings, browser approval and callback completion.
47
47
  ```sh
48
48
  npm install -g @wirecat/zoom-cli
49
49
  zm config set zoom.clientId <public-client-id>
50
- zm login # approve in your browser; the token goes to the keyring
50
+ zm session start # approve in your browser; the token goes to the keyring
51
51
  zm config set account.profile personal # a label for your stored meetings
52
- zm pull --lookback-days 7
52
+ zm meetings sync --lookback-days 7
53
53
  zm meetings list
54
54
  ```
55
55
 
56
56
  Check Zoom's transcript generation and retention settings first: the API reads available hosted
57
57
  meeting text, and permission does not create a transcript. For an attended meeting, obtain a VTT
58
- file from the host or download one if allowed, then run `zm import <folder>`. Full guide:
58
+ file from the host or download one if allowed, then run `zm meetings import <folder>`. Full guide:
59
59
  [installation][docs/installation.md].
60
60
 
61
61
  More: [installation][docs/installation.md] · [your Zoom app][docs/zoom-app.md] ·
@@ -64,16 +64,16 @@ More: [installation][docs/installation.md] · [your Zoom app][docs/zoom-app.md]
64
64
  ## What you can do
65
65
 
66
66
  **Prepare for a call.** *"I meet Bob Sample tomorrow. What did we talk about last time?"*
67
- `remote-meetings list` shows upcoming meetings; `meetings people`, `meetings search-page` (word
67
+ `remote-meetings list` shows upcoming meetings; `meetings people`, `search meetings` (word
68
68
  search that also matches English, Spanish and Russian word forms) and `meetings context person:<id>`
69
69
  bring back past meetings with the same people.
70
70
 
71
71
  **Follow up after it.** *"What did I promise in today's call?"* The agent reads
72
72
  `meetings transcript` and `meetings summary`, cites passages with `meetings evidence`, and
73
- `meetings task-proposal --kind promise` previews a follow-up task tied to that passage.
73
+ `meetings task-proposal --type promise` previews a follow-up task tied to that passage.
74
74
 
75
75
  **Keep the whole history.** *"Back up every recording since January."*
76
- `recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./zoom-archive --jsonl` downloads
76
+ `recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./zoom-archive --jsonl` downloads
77
77
  video, audio, transcripts and chat with SHA-256 manifests; `recordings schedule` runs it daily.
78
78
 
79
79
  More: [the local archive][docs/archive.md] · [search and evidence][docs/search.md] ·
@@ -93,8 +93,8 @@ More: [MCP and skills][docs/mcp.md] · [connect your AI agent][wirecat/en/docs/a
93
93
 
94
94
  ## Why zm
95
95
 
96
- - **Context, not one transcript.** Every meeting you hosted, transcripts you imported and recordings
97
- you archived, searchable together.
96
+ - **Context across meetings.** Search available hosted meetings and imported transcripts in the shared
97
+ store. Read archived transcripts separately or import them before searching them together.
98
98
  - **Local-first.** Meetings live in a SQLite database on your machine. Archived transcripts can be read
99
99
  and searched offline, without login.
100
100
  - **Every answer has a source.** References such as `meeting:1/42/57/118` point to one passage of one
@@ -108,17 +108,17 @@ More: [security][docs/security.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom
108
108
  ## What works today, and what does not yet
109
109
 
110
110
  `zm` is at version 0.x; commands may still change. Today it reads hosted meetings, participants,
111
- transcripts and AI summaries (Pro plan or higher) through Zoom's official API, imports downloaded
111
+ transcripts and AI summaries available to the account through Zoom's official API, imports downloaded
112
112
  WebVTT files, archives cloud recordings, transcribes local audio with an installed speech model,
113
113
  links meetings to events and people, and creates, changes or cancels simple meetings.
114
114
 
115
115
  - **It does not find commitments on its own.** Your agent finds them in transcripts;
116
116
  `task-proposal` only previews a task and creates nothing.
117
117
  - **People are linked by hand.** `zm` never guesses a person from a speaker name; person context
118
- covers participants already linked to a person, for example with `meetings link-person`.
118
+ covers participants already linked to a person, for example with `meetings link`.
119
119
  - **Local transcription takes PCM16 WAV only** (16 or 48 kHz) and an already installed speech model;
120
120
  video files are not decoded, and speakers stay unknown.
121
- - **Attended meetings need a manual download** from your Zoom portal, then `zm import`.
121
+ - **Attended meetings need a manual download** from your Zoom portal, then `zm meetings import`.
122
122
  - **A company-managed Zoom account** may need an admin to approve your app.
123
123
  - **Daily archive jobs install only on Linux.** Other platforms can preview them.
124
124
  - **Zoom only, for now.** Google Meet and Microsoft Teams are
@@ -130,31 +130,35 @@ More: [what is planned][gh/cli-meetings/blob/main/docs/dev/roadmap.md] · [Zoom
130
130
 
131
131
  | Task | Commands |
132
132
  |---|---|
133
- | Set up and log in | `config show`, `config set <key> <value>`, `login [--browser <program>]`, `session status [--check]`, `doctor` |
134
- | Bring meetings in | `pull [--since <date>] [--lookback-days <days>]`, `import <folder>`, `watch [folder] --source api\|files --jsonl` |
133
+ | Set up and log in | `config show`, `config set <key> <value>`, `session start [--browser <program>]`, `session status [--check]`, `doctor` |
134
+ | Bring meetings in | `meetings sync [--since-time <time>] [--lookback-days <days>]`, `meetings import <folder>`, `watch [api\|files] [folder] --jsonl` |
135
135
  | Read stored meetings | `meetings list`, `meetings show <meeting>`, `meetings transcript <meeting>`, `meetings summary <meeting>`, `meetings export <meeting> --format markdown\|vtt`, `events list` |
136
- | Search | `meetings search-page <query>`, `meetings search-index`, `meetings search <query>`, `meetings people <query>`, `search all <query>` |
137
- | Evidence and people | `meetings evidence <reference>`, `meetings context <person>`, `meetings link-person <reference>`, `meetings link-event <reference>`, `meetings task-proposal <reference> --kind <kind>` |
138
- | Search by meaning | `meetings embeddings --model <id>`, `meetings semantic <query> --model <id>` |
136
+ | Search | `search meetings <query>`, `meetings people <query>`, `search all <query>` |
137
+ | Evidence and people | `meetings passage <reference>`, `meetings evidence <reference>`, `meetings context <person>`, `meetings link <reference>`, `meetings update <reference>`, `meetings task-proposal <reference> --type <type>` |
138
+ | Search by meaning | `search meetings <query> --model <model>`, `meetings embeddings --model <model>` |
139
139
  | Local transcription | `meetings transcribe <meeting> <file> --model <model>` |
140
- | Cloud recordings | `recordings list`, `recordings show <meeting>`, `recordings download <meeting> --destination <directory>`, `recordings sync --from <date> --to <date> --destination <directory> --jsonl`, `recordings schedule create\|list\|show\|run\|disable` |
141
- | Local archive | `recordings archive inspect\|verify\|locks\|recover <directory>`, `recordings archive transcript\|search\|import <directory>` |
140
+ | Cloud recordings | `recordings list`, `recordings show <meeting>`, `recordings download <meeting> --destination <directory>`, `recordings sync --since-time <date> --until-time <date> --destination <directory> --jsonl`, `recordings schedule create\|list\|show\|run\|disable` |
141
+ | Local archive | `recordings archive show\|check\|locks\|recover <directory>`, `recordings archive transcript\|import <directory>`, `search meetings <query> --archive <directory>` |
142
142
  | Zoom meetings | `remote-meetings list\|show\|invitation`, `remote-meetings create\|update\|cancel` |
143
143
  | Agents | `serve --mcp`, `skill show`, `skill install [--for claude\|agents\|all]`, `commands --json`, `complete -- <words...>` |
144
144
 
145
- Zoom meeting changes, links, search indexing, transcription, schedules, embeddings and lock recovery
146
- preview by default and run once with `--yes`; `--dry-run` always keeps the preview.
145
+ Zoom meeting changes, links, transcription, schedules, explicit `meetings embeddings` generation and
146
+ lock recovery preview by default and run once with `--yes`; `--dry-run` keeps the preview. Word search
147
+ updates its index automatically. Search with `--model` generates missing vectors before ranking; an
148
+ explicitly selected remote embedding endpoint receives those transcript passages and the query.
147
149
 
148
150
  More: [usage][docs/usage.md] · [every command and option][docs/commands.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
149
151
 
150
152
  ## Your Zoom app and login
151
153
 
152
- `zm` reads your meetings through Zoom's official API, as you, so it uses **your own Zoom app** with
153
- Public Client OAuth. Create it once from the supplied manifest: it asks for read-only access to
154
- meetings, participants, transcripts and AI summaries. Recording archives and meeting management need
155
- extra scopes, which you add only if you want those features. The app has no client secret.
154
+ `zm` reads your meetings through Zoom's official API using a **configured user-managed Zoom app**
155
+ with Public Client OAuth. Reuse an existing app available to your user or create one. Enable Public
156
+ Client OAuth, copy its Public Client ID, configure the redirect and add the required scopes manually.
157
+ The optional starter manifest supplies neither scopes nor Public Client OAuth. Zoom may show a
158
+ Client Secret, but `zm` does not use it. Recording archives and management need additional scopes.
159
+ Follow the [app setup guide][docs/zoom-app.md]; no credentials file is downloaded.
156
160
 
157
- `zm login` opens Zoom's consent page. Zoom redirects to the static page
161
+ `zm session start` opens Zoom's consent page. Zoom redirects to the static page
158
162
  `https://wirecat.dev/zoom-callback`, which passes the answer to a listener on your machine; if it
159
163
  cannot, paste the `code=…&state=…` parameters it shows. Login checks the state and PKCE verifier and
160
164
  stores tokens only in the system keyring. Browser login needs an interactive terminal; piped or JSON
@@ -181,13 +185,13 @@ More: [profiles][docs/sessions.md#select-a-local-profile] ·
181
185
  ## Pull, import and watch
182
186
 
183
187
  ```sh
184
- zm pull --lookback-days 7 # hosted meetings, revisiting late transcripts
185
- zm import ./downloaded-transcripts # .vtt files from your Zoom portal
186
- zm watch --source api --lookback-days 7 --jsonl # keep pulling in the foreground
188
+ zm meetings sync --lookback-days 7 # hosted meetings, revisiting late transcripts
189
+ zm meetings import ./downloaded-transcripts # .vtt files from your Zoom portal
190
+ zm watch api --lookback-days 7 --jsonl # keep pulling in the foreground
187
191
  ```
188
192
 
189
193
  The cursor alone does not revisit transcripts that appear late; use `--lookback-days` or an older
190
- `--since`. A failed occurrence leaves the cursor unchanged for the next pull. Imported files follow
194
+ `--since-time`. A failed occurrence leaves the cursor unchanged for the next pull. Imported files follow
191
195
  the exporter's `YYYY-MM-DD_HHMM_topic-slug.vtt` names; set `files.timezone` to the zone they were
192
196
  written in (UTC by default). Participants of imported files stay unknown, and speaker names are
193
197
  never turned into identities.
@@ -197,16 +201,16 @@ More: [the local archive][docs/archive.md] · [Zoom on wirecat.dev][wirecat/en/d
197
201
  ## Archive cloud recordings
198
202
 
199
203
  ```sh
200
- zm recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./zoom-archive --jsonl
201
- zm recordings archive verify ./zoom-archive --offline --json
202
- zm recordings archive search ./zoom-archive "example plan" --offline --json
204
+ zm recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./zoom-archive --jsonl
205
+ zm recordings archive check ./zoom-archive --offline --json
206
+ zm search meetings "example plan" --archive ./zoom-archive --offline --json
203
207
  ```
204
208
 
205
209
  Sync covers up to ten years in monthly requests and downloads serially, streaming to disk. Each
206
210
  occurrence gets a manifest with sizes and SHA-256 checksums, never signed URLs or tokens. Existing
207
211
  files are never overwritten; repeated runs skip verified files. With a profile, interrupted downloads
208
- resume safely. `recordings archive transcript|search` read verified WebVTT offline without a
209
- database; `recordings archive import` appends them to your stored meetings. `recordings schedule
212
+ resume safely. `recordings archive transcript` and `search meetings --archive` read verified WebVTT offline
213
+ without a database; `recordings archive import` appends them to your stored meetings. `recordings schedule
210
214
  create --yes` installs a daily systemd user timer (Linux only).
211
215
 
212
216
  What you can download depends on Zoom permissions, retention and your plan. Recordings of meetings
@@ -218,18 +222,17 @@ More: [archive cloud recordings][docs/archive.md#archive-cloud-recordings] ·
218
222
  ## Search and evidence
219
223
 
220
224
  ```sh
221
- zm meetings search-index --limit 100 --yes --json # index queued meetings, one batch
222
- zm meetings search-page "example plan" --limit 20 --json # word search with continuation
225
+ zm search meetings "example plan" --limit 20 --json # word search with continuation
223
226
  zm meetings evidence meeting:3/15/20/0 --cues 100 --json # the exact passage
224
227
  zm meetings context person:7 --meetings 10 --json # meetings linked to a person
225
228
  ```
226
229
 
227
- `search-page` matches every word by prefix or by stored English, Spanish and Russian word forms, and
228
- pages with an opaque `--after` cursor. References have the form
230
+ `search meetings` indexes new meetings first, matches every word by prefix or by stored English, Spanish
231
+ and Russian word forms, and pages with an opaque `--cursor`. References have the form
229
232
  `meeting:<account>/<meeting>[/<transcript>[/<cue-position>]]`, stay inside the selected account and
230
- keep pointing at the same revision after a correction. Every bounded read reports whether it is
231
- complete. `search all --only meetings,notes` adds store-wide notes. `meetings embeddings` and
232
- `meetings semantic` search by meaning with a model you name; nothing is downloaded for you.
233
+ keep pointing at the same revision after a correction. Bounded reads report their
234
+ coverage and limits; archive completeness can remain unknown. `search all --only meetings,notes` adds store-wide notes. `search meetings
235
+ --model` searches by meaning with a model you name; nothing is downloaded for you.
233
236
 
234
237
  More: [search and evidence][docs/search.md] · [topic search][docs/topic-search.md] ·
235
238
  [Zoom on wirecat.dev][wirecat/en/docs/zoom]
@@ -254,10 +257,10 @@ with `["serve", "--mcp"]`:
254
257
  ```
255
258
 
256
259
  The server has seven read-only tools: meeting list and show, transcripts, summaries, exports, text
257
- search and participant search. `--meeting-context`, `--unified-search` and `--semantic --model <id>`
258
- add evidence, shared search and meaning search. It reads only the selected profile, and never exposes
260
+ search and participant search. `--meeting-context`, `--unified-search` and `--semantic --model <model>`
261
+ enable cited passages, shared search and ranking of existing semantic vectors. It reads only the selected profile, and never exposes
259
262
  file exports, Zoom changes, embedding generation or task creation. A desktop app may need the full
260
- path from `which zm`, and the same `ZM_CONFIG_DIR` or `MESSAGING_STORE` in the entry's `env`.
263
+ 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`.
261
264
 
262
265
  More: [MCP and skills][docs/mcp.md] · [MCP and skills on wirecat.dev][wirecat/en/docs/mcp] ·
263
266
  [connect your AI agent][wirecat/en/docs/agents]
@@ -265,7 +268,7 @@ More: [MCP and skills][docs/mcp.md] · [MCP and skills on wirecat.dev][wirecat/e
265
268
  ## Manage Zoom meetings
266
269
 
267
270
  ```sh
268
- zm remote-meetings create --topic "Example planning" --start-time 2026-10-20T10:00:00Z --duration-minutes 30 --json
271
+ zm remote-meetings create --title "Example planning" --start-time 2026-10-20T10:00:00Z --duration-minutes 30 --json
269
272
  zm remote-meetings cancel 123456789 --dry-run --json
270
273
  ```
271
274
 
@@ -291,7 +294,7 @@ More: [usage][docs/usage.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
291
294
  |---|---|
292
295
  | `zoom.clientId` | your Zoom app's Public Client ID |
293
296
  | `account.profile` | the local profile label |
294
- | `source` | `api` or `files` for `pull` and `watch` |
297
+ | `source` | `api` or `files` for `meetings sync` and `watch` |
295
298
  | `files.folder`, `files.timezone` | the transcript folder and the zone of its filenames |
296
299
  | `ZM_CONFIG_DIR` | another configuration directory (also changes the keyring entry) |
297
300
  | `MESSAGING_STORE` | another shared database path |
@@ -301,7 +304,7 @@ More: [configuration][docs/configuration.md] · [Zoom on wirecat.dev][wirecat/en
301
304
 
302
305
  ## Security model
303
306
 
304
- - Your own Zoom app with PKCE; no client secret exists.
307
+ - A configured Zoom public-client app with PKCE; no client secret is used.
305
308
  - Tokens only in the system keyring, never in a config file; a missing keyring is an error.
306
309
  - Network: Zoom's API, plus an embedding endpoint only when you name one. `--offline` refuses both.
307
310
  - Manifests and saved jobs never hold signed URLs, tokens or credentials; diagnostics omit raw
@@ -314,9 +317,10 @@ More: [security][docs/security.md] · [security on wirecat.dev][wirecat/en/docs/
314
317
 
315
318
  - **"Invalid redirect" from Zoom:** the manifest import left the redirect URL or Public Client OAuth
316
319
  unset; fill them in by hand.
317
- - **No transcripts:** turn on **Allow hosts to retain transcripts**; attended meetings need `zm import`.
318
- - **Missing-scope error:** add the named scope in your app, then `zm login` again.
319
- - **Browser does not start:** `zm login --browser firefox`, or paste the callback parameters.
320
+ - **No transcripts:** check generation, retention and permissions in the [app guide][docs/zoom-app.md].
321
+ Enabling a setting does not restore deleted text; attended meetings may need `zm meetings import`.
322
+ - **Missing-scope error:** add the named scope in your app, then `zm session start` again.
323
+ - **Browser does not start:** `zm session start --browser firefox`, or paste the callback parameters.
320
324
  - **Lock left after a crash:** `zm recordings archive locks`, then `recover` with `--yes`.
321
325
 
322
326
  More: [troubleshooting][docs/troubleshooting.md] · [Zoom on wirecat.dev][wirecat/en/docs/zoom]
@@ -350,8 +354,7 @@ More: [wirecat.dev](https://wirecat.dev) · [connect your AI agent][wirecat/en/d
350
354
  | [Security][docs/security.md] | what reaches the disk and the network |
351
355
  | [Architecture][docs/dev/architecture.md] · [Testing][docs/dev/testing.md] · [Releasing][docs/dev/releasing.md] | for contributors |
352
356
 
353
- The WireCat portal at [wirecat.dev/en/docs/zoom][wirecat/en/docs/zoom] is being prepared; until then these pages
354
- are the reference.
357
+ The [Zoom guides on wirecat.dev][wirecat/en/docs/zoom] include setup, search and archive instructions.
355
358
 
356
359
  ## Development
357
360
 
@@ -397,9 +400,9 @@ More: [development setup][docs/dev/development.md] · [test matrix][docs/dev/tes
397
400
  [docs/troubleshooting.md]: https://github.com/WireCatLabs/zoom-cli/blob/main/docs/troubleshooting.md
398
401
  [docs/usage.md]: https://github.com/WireCatLabs/zoom-cli/blob/main/docs/usage.md
399
402
  [docs/zoom-app.md]: https://github.com/WireCatLabs/zoom-cli/blob/main/docs/zoom-app.md
400
- [gh/cli-meetings/blob/main/docs/dev/roadmap.md]: https://github.com/WireCatLabs/cli-messaging/blob/main/docs/dev/MEETINGS.md#providers-next
403
+ [gh/cli-meetings/blob/main/docs/dev/roadmap.md]: https://github.com/WireCatLabs/cli-core/blob/main/docs/dev/MEETINGS.md#providers-next
401
404
  [license]: https://github.com/WireCatLabs/zoom-cli/blob/main/LICENSE
402
405
  [wirecat/en/docs/agents]: https://wirecat.dev/en/docs/agents
403
406
  [wirecat/en/docs/mcp]: https://wirecat.dev/en/docs/mcp
404
407
  [wirecat/en/docs/security]: https://wirecat.dev/en/docs/security
405
- [wirecat/en/docs/zoom]: https://wirecat.dev/en/docs/zoom
408
+ [wirecat/en/docs/zoom]: https://wirecat.dev/en/docs/zm
package/dist/api.d.ts CHANGED
@@ -1,6 +1,8 @@
1
- import { type MeetingSource, type SourceMeeting, type SourceParticipant, type SummaryContent } from "@wirecat/cli-messaging/meetings";
1
+ import { type MeetingSource, type SourceMeeting, type SourceParticipant, type SummaryContent } from "@wirecat/cli-core/meetings";
2
2
  import { type RemoteOptions } from "./remote-http.js";
3
3
  import type { TokenManager } from "./tokens.js";
4
+ /** A mislabeled HTML login page must not become an empty saved transcript. */
5
+ export declare const TRANSCRIPT_MAX_BYTES: number;
4
6
  export declare const encodeUuid: (uuid: string) => string;
5
7
  export declare class ZoomApiSource implements MeetingSource {
6
8
  private readonly tokens;
@@ -14,7 +16,7 @@ export declare class ZoomApiSource implements MeetingSource {
14
16
  private pages;
15
17
  meetings(since: string): Promise<SourceMeeting[]>;
16
18
  participants(id: string): Promise<SourceParticipant[]>;
17
- transcript(id: string): Promise<import("@wirecat/cli-messaging/meetings").TranscriptLine[] | null>;
19
+ transcript(id: string): Promise<import("@wirecat/cli-core/meetings").TranscriptLine[] | null>;
18
20
  summary(id: string): Promise<SummaryContent | null>;
19
21
  chat(): Promise<null>;
20
22
  files(): Promise<null>;
package/dist/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAgB/C,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC6E,CAAA;AAavH,qBAAa,aAAc,YAAW,aAAa;IAM/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,gBAAgB,SAAQ;IACjC,QAAQ,CAAC,IAAI,SAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,YACmB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,KAAK,EACtC,OAAO,GAAE,aAAkB,EAG5B;IACD,OAAO,CAAC,OAAO;YAKD,KAAK;IAeb,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAqEtD;IACK,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoE3D;IACK,UAAU,CAAC,EAAE,EAAE,MAAM,8EAmF1B;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmCxD;IACK,IAAI,kBAET;IACK,KAAK,kBAEV;CACF"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,aAAa,EAElB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACpB,MAAM,4BAA4B,CAAA;AAEnC,OAAO,EAAE,KAAK,aAAa,EAAc,MAAM,kBAAkB,CAAA;AACjE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAE/C,8EAA8E;AAC9E,eAAO,MAAM,oBAAoB,QAAmB,CAAA;AAgBpD,eAAO,MAAM,UAAU,SAAU,MAAM,KAAG,MAC6E,CAAA;AAavH,qBAAa,aAAc,YAAW,aAAa;IAM/C,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAN1B,QAAQ,CAAC,QAAQ,UAAS;IAC1B,QAAQ,CAAC,gBAAgB,SAAQ;IACjC,QAAQ,CAAC,IAAI,SAAQ;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,YACmB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,OAAO,KAAK,EACtC,OAAO,GAAE,aAAkB,EAG5B;IACD,OAAO,CAAC,OAAO;YAKD,KAAK;IAeb,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC,CAqEtD;IACK,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAoE3D;IACK,UAAU,CAAC,EAAE,EAAE,MAAM,yEAkF1B;IAEK,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAmCxD;IACK,IAAI,kBAET;IACK,KAAK,kBAEV;CACF"}
package/dist/api.js CHANGED
@@ -1,7 +1,9 @@
1
1
  import { statusToCode } from "@wirecat/cli-base/http";
2
- import { parseVtt, } from "@wirecat/cli-messaging/meetings";
2
+ import { parseVtt, } from "@wirecat/cli-core/meetings";
3
3
  import { number, object, string, ZoomError } from "./errors.js";
4
4
  import { ZoomRemote } from "./remote-http.js";
5
+ /** A mislabeled HTML login page must not become an empty saved transcript. */
6
+ export const TRANSCRIPT_MAX_BYTES = 10 * 1024 * 1024;
5
7
  const json = (value) => {
6
8
  if (value === null || typeof value === "boolean" || typeof value === "string")
7
9
  return value;
@@ -248,8 +250,7 @@ export class ZoomApiSource {
248
250
  }
249
251
  if (!response.ok)
250
252
  throw new ZoomError(statusToCode(response.status), `Transcript download failed (HTTP ${response.status})`);
251
- // A mislabeled HTML login page must not become an empty saved transcript.
252
- const maxBytes = 10 * 1024 * 1024;
253
+ const maxBytes = TRANSCRIPT_MAX_BYTES;
253
254
  const reader = response.body?.getReader();
254
255
  if (!reader)
255
256
  throw new ZoomError("invalid_response", "Zoom returned an invalid transcript");
package/dist/api.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.js","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"archive-commands.d.ts","sourceRoot":"","sources":["../src/archive-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAGhG,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGrH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAkC,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9F,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,GAChF,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAA;AAC1C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,kBAAkB,EAClB,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAChE,CAAA;AACD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,cAAc,CAAA;IAC9B,MAAM,EAAE,OAAO,aAAa,CAAA;IAC5B,KAAK,EAAE,OAAO,mBAAmB,CAAA;IACjC,OAAO,EAAE,OAAO,mBAAmB,CAAA;CACpC;AACD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,sBAAsB,CAAA;IACnC,MAAM,EAAE,OAAO,wBAAwB,CAAA;CACxC;AACD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,iBAAiB,CAAA;IACnC,cAAc,EAAE,MAAM,qBAAqB,CAAA;IAC3C,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,wBAAwB,CAAA;IACrC,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,GAAG,EAAE,MAAM,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,GAAG,EAAE,MAAM,MAAM,CAAA;CAClB;AAwDD,eAAO,MAAM,kBAAkB,YAAa,OAAO,QAAQ,mBAAmB,KAAG,IA+QhF,CAAA"}
1
+ {"version":3,"file":"archive-commands.d.ts","sourceRoot":"","sources":["../src/archive-commands.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,KAAK,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAA;AAGhG,OAAO,KAAK,EAAE,cAAc,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAA;AAGrH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AACrD,OAAO,KAAK,EAAkC,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAE9F,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,UAAU,CAAC,GAChF,OAAO,CAAC,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,CAAA;AAC1C,MAAM,MAAM,qBAAqB,GAAG,IAAI,CACtC,kBAAkB,EAClB,MAAM,GAAG,MAAM,GAAG,YAAY,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAChE,CAAA;AACD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,cAAc,CAAA;IAC9B,MAAM,EAAE,OAAO,aAAa,CAAA;IAC5B,KAAK,EAAE,OAAO,mBAAmB,CAAA;IACjC,OAAO,EAAE,OAAO,mBAAmB,CAAA;CACpC;AACD,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,OAAO,sBAAsB,CAAA;IACnC,MAAM,EAAE,OAAO,wBAAwB,CAAA;CACxC;AACD,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,iBAAiB,CAAA;IACnC,cAAc,EAAE,MAAM,qBAAqB,CAAA;IAC3C,OAAO,EAAE,cAAc,CAAA;IACvB,WAAW,EAAE,wBAAwB,CAAA;IACrC,MAAM,EAAE,MAAM,WAAW,GAAG,SAAS,CAAA;IACrC,GAAG,EAAE,MAAM,IAAI,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,MAAM,GAAG,SAAS,CAAA;IAClC,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;IAChC,WAAW,EAAE,CAAC,MAAM,EAAE,aAAa,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC9D,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;IAC1C,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,GAAG,EAAE,MAAM,MAAM,CAAA;CAClB;AA0DD,eAAO,MAAM,kBAAkB,YAAa,OAAO,QAAQ,mBAAmB,KAAG,IA4PhF,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import { annotate } from "@wirecat/cli-base/commands";
2
- import { listed, recordingWindows } from "@wirecat/cli-messaging/meetings";
2
+ import { listed, recordingWindows } from "@wirecat/cli-core/meetings";
3
3
  import { ZoomError } from "./errors.js";
4
4
  import { bytes } from "./execution.js";
5
5
  import { validateDownloadOptions } from "./recording-archive.js";
@@ -36,11 +36,9 @@ const archiveScope = (deps, options) => {
36
36
  const resumable = (command) => command
37
37
  .option("--resume", "resume verified partial downloads and archive progress; requires a local profile")
38
38
  .option("--no-resume", "disable persistent resume state for this invocation");
39
- const change = (options) => Object.fromEntries(["topic", "startTime", "durationMinutes", "timezone", "agenda", "type"]
40
- .filter((key) => options[key] !== undefined)
41
- .map((key) => [key, options[key]]));
39
+ const change = ({ title, ...options }) => Object.fromEntries(Object.entries({ topic: title, ...options }).filter(([key, value]) => value !== undefined && ["topic", "startTime", "durationMinutes", "timezone", "agenda", "type"].includes(key)));
42
40
  const changes = (command) => command
43
- .option("--topic <text>", "meeting topic")
41
+ .option("--title <text>", "meeting title")
44
42
  .option("--start-time <timestamp>", "ISO start time with timezone")
45
43
  .option("--duration-minutes <minutes>", "positive meeting duration in minutes", positive)
46
44
  .option("--timezone <zone>", "IANA timezone")
@@ -58,26 +56,26 @@ export const addArchiveCommands = (program, deps) => {
58
56
  label(recordings
59
57
  .command("list")
60
58
  .description("list cloud recording occurrences (last 30 days by default)")
61
- .option("--from <date>", "first YYYY-MM-DD date")
62
- .option("--to <date>", "last YYYY-MM-DD date")
59
+ .option("--since-time <time>", "first day, YYYY-MM-DD")
60
+ .option("--until-time <time>", "last day, YYYY-MM-DD")
63
61
  .action(async (options) => {
64
62
  deps.api();
65
- const to = options.to ?? new Date(deps.now()).toISOString().slice(0, 10);
63
+ const to = options.untilTime ?? new Date(deps.now()).toISOString().slice(0, 10);
66
64
  const end = Date.parse(`${to}T00:00:00Z`);
67
65
  if (!/^\d{4}-\d{2}-\d{2}$/.test(to) || !Number.isFinite(end) || new Date(end).toISOString().slice(0, 10) !== to)
68
- throw new ZoomError("validation_error", "to must be a real YYYY-MM-DD date");
69
- const from = options.from ?? new Date(end - 30 * 86400000).toISOString().slice(0, 10);
66
+ throw new ZoomError("validation_error", "--until-time must be a real YYYY-MM-DD date");
67
+ const from = options.sinceTime ?? new Date(end - 30 * 86400000).toISOString().slice(0, 10);
70
68
  deps.output(listed(await deps.recordings().list({ from, to, signal: deps.signal() })));
71
- }), "zm recordings list --from 2026-10-01 --to 2026-10-10 --json");
69
+ }), "zm recordings list --since-time 2026-10-01 --until-time 2026-10-10 --json");
72
70
  label(resumable(recordings
73
71
  .command("sync")
74
- .description("serial monthly recording archive synchronization with completed JSONL receipts")
75
- .requiredOption("--from <date>", "first YYYY-MM-DD date")
76
- .requiredOption("--to <date>", "last YYYY-MM-DD date (at most ten years)")
72
+ .description("download a date range of recordings into an archive folder, a month at a time")
73
+ .requiredOption("--since-time <time>", "first day, YYYY-MM-DD")
74
+ .requiredOption("--until-time <time>", "last day, YYYY-MM-DD; at most ten years after the first")
77
75
  .requiredOption("--destination <directory>", "explicit archive directory")
78
76
  .option("--max-bytes <bytes>", "maximum bytes per recording file", positive))
79
77
  .option("--checkpoint <file>", "explicit durable checkpoint file; implies resume")
80
- .option("--recheck-from <date>", "revisit completed windows from this YYYY-MM-DD date for late recordings")
78
+ .option("--recheck-since-time <time>", "look again from this day, YYYY-MM-DD, for recordings that came late")
81
79
  .option("--max-pages <pages>", "catalog page limit from 1 through 10000 (default 1000)", discoveryLimit)
82
80
  .option("--max-entries <entries>", "occurrence limit from 1 through 10000 (default 10000)", discoveryLimit)
83
81
  .action(async (options) => {
@@ -86,26 +84,26 @@ export const addArchiveCommands = (program, deps) => {
86
84
  if (program.opts().json)
87
85
  throw new ZoomError("validation_error", "recording sync streams receipts; use --jsonl");
88
86
  const scope = archiveScope(deps, options);
89
- recordingWindows(options.from, options.to);
90
- if (options.recheckFrom !== undefined)
91
- recordingWindows(options.recheckFrom, options.recheckFrom);
87
+ recordingWindows(options.sinceTime, options.untilTime);
88
+ if (options.recheckSinceTime !== undefined)
89
+ recordingWindows(options.recheckSinceTime, options.recheckSinceTime);
92
90
  validateDownloadOptions({ ...options, ...scope });
93
91
  deps.api();
94
92
  for await (const receipt of syncRecordingArchive(deps.recordings(), {
95
- from: options.from,
96
- to: options.to,
93
+ from: options.sinceTime,
94
+ to: options.untilTime,
97
95
  destination: options.destination,
98
96
  ...scope,
99
97
  maxBytes: options.maxBytes,
100
98
  checkpointPath: options.checkpoint,
101
- recheckFrom: options.recheckFrom,
99
+ recheckFrom: options.recheckSinceTime,
102
100
  maxPages: options.maxPages,
103
101
  maxEntries: options.maxEntries,
104
102
  now: deps.now,
105
103
  signal: deps.signal(),
106
104
  }))
107
105
  await deps.receipt(receipt);
108
- }), "zm recordings sync --from 2026-01-01 --to 2026-10-10 --destination ./archive --jsonl", "local");
106
+ }), "zm recordings sync --since-time 2026-01-01 --until-time 2026-10-10 --destination ./archive --jsonl", "local");
109
107
  label(recordings
110
108
  .command("show")
111
109
  .description("show downloadable asset metadata without signed URLs")
@@ -136,7 +134,7 @@ export const addArchiveCommands = (program, deps) => {
136
134
  const transcriptOptions = (command) => command
137
135
  .option("--uuid <uuid>", "select an occurrence UUID")
138
136
  .option("--file-ids <ids>", "select comma-separated transcript asset ids")
139
- .option("--max-bytes <bytes>", "maximum VTT bytes per file (default 8 MiB)", positive);
137
+ .option("--max-bytes <bytes>", "largest transcript file to read, in bytes (default 8 MiB)", positive);
140
138
  const selected = (options) => ({
141
139
  uuid: options.uuid,
142
140
  fileIds: options.fileIds?.split(",").map((id) => id.trim()),
@@ -145,38 +143,29 @@ export const addArchiveCommands = (program, deps) => {
145
143
  });
146
144
  label(transcriptOptions(archive
147
145
  .command("transcript")
148
- .description("read checksum-verified local VTT cues without Zoom or a database")
149
- .argument("<directory>")).action(async (directory, options) => {
146
+ .description("read the transcripts of a local archive, checking each file first")
147
+ .argument("<directory>", "archive folder")).action(async (directory, options) => {
150
148
  await deps.outputItems(deps.transcripts.read(directory, selected(options)));
151
149
  }), "zm recordings archive transcript ./zoom-archive --uuid example-occurrence --json");
152
- label(transcriptOptions(archive
153
- .command("search")
154
- .description("literal normalized text search across verified local VTT cues")
155
- .argument("<directory>")
156
- .argument("<query>"))
157
- .option("--limit <matches>", "maximum matches from 1 through 1000 (default 100)", positive)
158
- .action(async (directory, query, options) => {
159
- deps.output(await deps.transcripts.search(directory, query, { ...selected(options), limit: options.limit }));
160
- }), 'zm recordings archive search ./zoom-archive "example plan" --limit 10 --json');
161
150
  label(archive
162
- .command("inspect")
163
- .description("read local transfer manifests")
164
- .argument("<directory>")
165
- .action(async (directory) => deps.output(listed(await deps.archive.inspect(directory, { signal: deps.signal() })))), "zm recordings archive inspect ./zoom-archive --json");
151
+ .command("show")
152
+ .description("show what a local archive holds, from its transfer records")
153
+ .argument("<directory>", "archive folder")
154
+ .action(async (directory) => deps.output(listed(await deps.archive.inspect(directory, { signal: deps.signal() })))), "zm recordings archive show ./zoom-archive --json");
166
155
  label(archive
167
- .command("verify")
168
- .description("verify local file sizes and checksums")
169
- .argument("<directory>")
170
- .action(async (directory) => deps.output(listed(await deps.archive.verify(directory, { signal: deps.signal() })))), "zm recordings archive verify ./zoom-archive --json");
156
+ .command("check")
157
+ .description("check the size and checksum of every file in a local archive")
158
+ .argument("<directory>", "archive folder")
159
+ .action(async (directory) => deps.output(listed(await deps.archive.verify(directory, { signal: deps.signal() })))), "zm recordings archive check ./zoom-archive --json");
171
160
  label(archive
172
161
  .command("locks")
173
- .description("inspect active, stale or foreign archive locks")
174
- .argument("<directory>")
162
+ .description("list the locks on a local archive: active, stale or another machine's")
163
+ .argument("<directory>", "archive folder")
175
164
  .action(async (directory) => deps.output(listed(await deps.archive.locks(directory, { signal: deps.signal() })))), "zm recordings archive locks ./zoom-archive --json");
176
165
  label(archive
177
166
  .command("recover")
178
- .description("preview recovery of recognized stale local locks")
179
- .argument("<directory>")
167
+ .description("preview removing stale locks; --yes removes them")
168
+ .argument("<directory>", "archive folder")
180
169
  .option("--yes", "remove recognized locks left by a dead local process")
181
170
  .option("--dry-run", "preview only, including when --yes is present")
182
171
  .action(async (directory, options) => deps.output(await deps.archive.recover(directory, {
@@ -209,11 +198,11 @@ export const addArchiveCommands = (program, deps) => {
209
198
  deps.api();
210
199
  deps.output(await deps.remoteMeetings().invitation(id, { signal: deps.signal() }));
211
200
  }), "zm remote-meetings invitation 123456789 --json");
212
- label(changes(remote.command("create").description("preview a meeting creation; --yes performs it once")).action(async (options) => deps.output(await deps.remoteMeetings().create(change(options), mutation(options, deps)))), 'zm remote-meetings create --topic "Example planning" --start-time 2026-10-10T15:30:00Z --dry-run --json', "remote");
201
+ label(changes(remote.command("create").description("preview a meeting creation; --yes performs it once")).action(async (options) => deps.output(await deps.remoteMeetings().create(change(options), mutation(options, deps)))), 'zm remote-meetings create --title "Example planning" --start-time 2026-10-10T15:30:00Z --dry-run --json', "remote");
213
202
  label(changes(remote
214
203
  .command("update")
215
204
  .description("preview a meeting update; --yes performs it once")
216
- .argument("<meeting>", "positive numeric Zoom meeting id")).action(async (id, options) => deps.output(await deps.remoteMeetings().update(id, change(options), mutation(options, deps)))), 'zm remote-meetings update 123456789 --topic "Example planning" --dry-run --json', "remote");
205
+ .argument("<meeting>", "positive numeric Zoom meeting id")).action(async (id, options) => deps.output(await deps.remoteMeetings().update(id, change(options), mutation(options, deps)))), 'zm remote-meetings update 123456789 --title "Example planning" --dry-run --json', "remote");
217
206
  label(remote
218
207
  .command("cancel")
219
208
  .description("preview a cancellation; --yes performs it once")