zoom-cli
A command-line interface for the Zoom API -- manage meetings, recordings, users, webinars, and reports from your terminal.
Install
# From crates.io
cargo install zoom-cli
# From PyPI (pre-built binaries, no Rust toolchain needed)
pip install zoom-cli
# From GitHub Releases (Linux, macOS)
curl -fsSL https://github.com/rvben/zoom-cli/releases/latest/download/zoom-$(uname -m)-unknown-linux-gnu.tar.gz | tar xz
Quick Start
# Interactive setup (creates config with your Zoom OAuth credentials)
zoom init
# Verify the active profile against Zoom
zoom auth status
# List your upcoming meetings
zoom meetings list
# Create a meeting
zoom meetings create --topic "Standup" --duration 30
# List cloud recordings from a date range
zoom recordings list --from 2026-01-01
# Get current user info
zoom users me
Configuration
Config file
~/.config/zoom-cli/config.toml
active_profile = "default"
[default]
account_id = "YOUR_ACCOUNT_ID"
client_id = "YOUR_CLIENT_ID"
client_secret = "YOUR_CLIENT_SECRET"
[work]
account_id = "..."
client_id = "..."
client_secret = "..."
Requires a Zoom Server-to-Server OAuth app.
Environment variables
| Variable | Description |
|---|---|
ZOOM_ACCOUNT_ID |
OAuth account ID |
ZOOM_CLIENT_ID |
OAuth client ID |
ZOOM_CLIENT_SECRET |
OAuth client secret |
ZOOM_PROFILE |
Active profile name (default: default) |
Precedence
CLI flags > environment variables > config file
Use the same account workflow as the other enterprise CLIs:
zoom init --profile work
zoom auth login --profile work
zoom auth status [--offline] --profile work
zoom auth logout --profile work
zoom profile list
zoom profile use work
zoom profile remove work --yes
zoom config show
zoom config path
zoom doctor [--offline]
auth status and doctor verify credentials against Zoom by default. Their
--offline option validates only local configuration. auth logout removes
the stored client secret but preserves the rest of the profile. Environment
variables still take precedence and cannot be removed by the CLI.
Commands
Meetings
| Command | Description |
|---|---|
zoom meetings list [--user <id>] [--type <t>] |
List meetings for a user |
zoom meetings get <id> |
Get meeting details |
zoom meetings create --topic <t> [--duration <m>] [--start <dt>] [--password <p>] |
Create a meeting |
zoom meetings update <id> [--topic <t>] [--duration <m>] [--start <dt>] |
Update a meeting |
zoom meetings delete <id> |
Delete a meeting |
zoom meetings end <id> |
End a live meeting |
zoom meetings participants <id> |
List past meeting participants |
zoom meetings invite <id> |
Get meeting invitation text |
Recordings
| Command | Description |
|---|---|
zoom recordings list [--user <id>] [--from <date>] [--to <date>] |
List cloud recordings |
zoom recordings get <meeting_id> |
Get recording details |
zoom recordings download <meeting_id> [--out <dir>] |
Download recording files |
zoom recordings delete <meeting_id> [--permanent] |
Delete cloud recordings |
zoom recordings start <meeting_id> |
Start recording a live meeting |
zoom recordings stop <meeting_id> |
Stop recording |
zoom recordings pause <meeting_id> |
Pause recording |
zoom recordings resume <meeting_id> |
Resume recording |
zoom recordings transcript <meeting_id> [--out <dir>] |
Download transcript files |
Users
| Command | Description |
|---|---|
zoom users list [--status <s>] |
List account users |
zoom users get <id_or_email> |
Get user details |
zoom users me |
Get current user |
zoom users create --email <e> [--first-name <n>] [--last-name <n>] [--type <t>] |
Create a user |
zoom users deactivate <id_or_email> |
Deactivate a user |
zoom users activate <id_or_email> |
Reactivate a user |
Webinars
| Command | Description |
|---|---|
zoom webinars list [--user <id>] |
List webinars |
zoom webinars get <id> |
Get webinar details |
Reports
| Command | Description |
|---|---|
zoom reports meetings --from <date> [--to <date>] [--user <id>] |
Meeting summary report |
zoom reports participants <meeting_id> |
Participant report for a past meeting |
Configuration & Setup
| Command | Description |
|---|---|
zoom init [--profile <name>] |
Set up credentials interactively |
zoom auth login [--profile <name>] |
Configure and verify credentials (init is retained as an alias) |
zoom auth status [--offline] [--profile <name>] |
Check authentication state |
zoom auth logout [--profile <name>] |
Remove the selected profile's stored client secret |
zoom profile list |
List profiles |
zoom profile use <name> |
Select the default profile |
zoom profile remove <name> --yes |
Remove a profile |
zoom config show |
Show current configuration |
zoom config path |
Print the configuration file path |
zoom config delete <profile> [--force] |
Delete a profile |
zoom doctor [--offline] |
Check configuration and Zoom connectivity |
zoom schema |
Print the machine-readable command schema |
zoom completions <shell> |
Generate shell completions (bash, zsh, fish, elvish, powershell) |
Shell Completions
# zsh
zoom completions zsh > ~/.zsh/completions/_zoom
# bash
zoom completions bash > /etc/bash_completion.d/zoom
# fish
zoom completions fish > ~/.config/fish/completions/zoom.fish
Agent Integration
JSON output
JSON output is automatic when stdout is not a TTY, or forced with --json. Data goes to stdout, messages to stderr.
zoom meetings list --json | jq '.[].topic'
Schema introspection
zoom schema | jq '.commands[] | select(.name == "meetings list")'
The schema command outputs a JSON description of commands, arguments, and
result fields -- enabling agents to discover operations without parsing help
text.
Exit codes
| Code | Meaning |
|---|---|
0 |
Success |
1 |
General error |
2 |
Auth or config error |
3 |
Not found |
License
MIT
Releasing
Vership owns versioning, changelog generation, release commits, and tags. See the release runbook for the verified workflow and recovery policy.
Metadata
Release files for zoomcli 0.2.9
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| zoomcli-0.2.9.tar.gz | 89.0 kB | Without provenance | Details for zoomcli-0.2.9.tar.gz |
Built distributions (wheels)
| File | Actions Reset | |||
|---|---|---|---|---|
| zoomcli-0.2.9-py3-none-win_amd64.whl | Python 3 | none | Windows x86-64 | Details for zoomcli-0.2.9-py3-none-win_amd64.whl |
| zoomcli-0.2.9-py3-none-manylinux_2_28_x86_64.whl | Python 3 | none | Linux glibc 2.28+ x86-64 | Details for zoomcli-0.2.9-py3-none-manylinux_2_28_x86_64.whl |
| zoomcli-0.2.9-py3-none-manylinux_2_28_aarch64.whl | Python 3 | none | Linux glibc 2.28+ ARM64 | Details for zoomcli-0.2.9-py3-none-manylinux_2_28_aarch64.whl |
| zoomcli-0.2.9-py3-none-macosx_11_0_arm64.whl | Python 3 | none | macOS 11.0+ ARM64 | Details for zoomcli-0.2.9-py3-none-macosx_11_0_arm64.whl |
| zoomcli-0.2.9-py3-none-macosx_10_12_x86_64.whl | Python 3 | none | macOS 10.12+ x86-64 | Details for zoomcli-0.2.9-py3-none-macosx_10_12_x86_64.whl |
Total release size: 14.4 MB
Release files / zoomcli-0.2.9.tar.gz
| Download URL | zoomcli-0.2.9.tar.gz |
|---|---|
| Size | 89.0 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f9629fb74e0c79141155c1cd188251df4538519251f95ca6f16fc31bf7b85819
|
|
BLAKE2b-256 checksum How to use checksums |
9bbfb6a90b34ba1729ab6e420e7f88f60b6e51e0fa12538054c379d4af1c0d2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / zoomcli-0.2.9-py3-none-win_amd64.whl
| Download URL | zoomcli-0.2.9-py3-none-win_amd64.whl |
|---|---|
| Size | 3.0 MB |
| Tags | Python 3 Windows x86-64 |
|
SHA-256 checksum How to use checksums |
cd75ea31d038271b1a88568b1f938fb017ee7c125571029a954511ad82885f28
|
|
BLAKE2b-256 checksum How to use checksums |
d5baf992727787decb18ce186a5e40706b67195646bb8b82fdd82fca7495de46
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / zoomcli-0.2.9-py3-none-manylinux_2_28_x86_64.whl
| Download URL | zoomcli-0.2.9-py3-none-manylinux_2_28_x86_64.whl |
|---|---|
| Size | 2.9 MB |
| Tags | Linux glibc 2.28+ x86-64 Python 3 |
|
SHA-256 checksum How to use checksums |
79320d01db34cd1aad93264a7b441b96efa2e9971ddfc6c750e6742584ab6dba
|
|
BLAKE2b-256 checksum How to use checksums |
917263e662183a7b79a8425a0c1259a7281a0c8535451c5d24c408d94f60d73e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / zoomcli-0.2.9-py3-none-manylinux_2_28_aarch64.whl
| Download URL | zoomcli-0.2.9-py3-none-manylinux_2_28_aarch64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Linux glibc 2.28+ ARM64 Python 3 |
|
SHA-256 checksum How to use checksums |
4e06787a862b94cb79dc09e37222d1a4fee90896ed2d4bae2b84c652f962e683
|
|
BLAKE2b-256 checksum How to use checksums |
769daaad2085f43672f6e97ebde6c43d408b4d2ca6bc6ae71a86cfc67d76a704
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / zoomcli-0.2.9-py3-none-macosx_11_0_arm64.whl
| Download URL | zoomcli-0.2.9-py3-none-macosx_11_0_arm64.whl |
|---|---|
| Size | 2.7 MB |
| Tags | Python 3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
1098fa927c851189d32768cb03c289a86d575a0b7abb5e147c150921a317ccc2
|
|
BLAKE2b-256 checksum How to use checksums |
a7f3db985f13cdcdcf706f8799502aa0b6f4ed7a02320172f2816b058dbbc7cd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Release files / zoomcli-0.2.9-py3-none-macosx_10_12_x86_64.whl
| Download URL | zoomcli-0.2.9-py3-none-macosx_10_12_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | Python 3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
5361a5b8ce029aeb96c1304327b6a5f81a467a760aa5638ac7935802a4f204f4
|
|
BLAKE2b-256 checksum How to use checksums |
6c3bbaee451c4fbcb4b67163272242966419bc8c43518edc8b58a8e870835132
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.3
|
Security for zoomcli 0.2.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.