Agent-friendly CLI for the Zoom API
Project description
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
# 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
[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
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 config show |
Show current configuration |
zoom config delete <profile> [--force] |
Delete a profile |
zoom schema <resource> |
Print field reference for a resource (meetings, recordings, users, reports, webinars) |
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 meetings | jq '.fields'
The schema command outputs a JSON description of resource fields and types -- enabling AI 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
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file zoomcli-0.2.4.tar.gz.
File metadata
- Download URL: zoomcli-0.2.4.tar.gz
- Upload date:
- Size: 63.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c585ca71a8a98d2ec5c7aacfa9ba4c57a65ee425fb8cda9d88b6bd73cfc51116
|
|
| MD5 |
877b00f5fa52e930e420f704cb2a24fc
|
|
| BLAKE2b-256 |
61f66b1abe78403de9928108c785cf9e8d44248a10750019c6b9f5ec86d7608c
|
File details
Details for the file zoomcli-0.2.4-py3-none-win_amd64.whl.
File metadata
- Download URL: zoomcli-0.2.4-py3-none-win_amd64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7319b3bd37624f6352bd27c20abf6e4c2e25f20ae7bacb03220b0dd501750798
|
|
| MD5 |
e66100be07b3fd04b2482b229b1d20ed
|
|
| BLAKE2b-256 |
221c75b412596217e3825f94b51a61a9e953c63acbcbd15e95f1cb0c650e8828
|
File details
Details for the file zoomcli-0.2.4-py3-none-manylinux_2_28_x86_64.whl.
File metadata
- Download URL: zoomcli-0.2.4-py3-none-manylinux_2_28_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, manylinux: glibc 2.28+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
26d51f51d039e6b7ca50adc1632d4bef33f83547414d0982f4331a4d5089b23a
|
|
| MD5 |
a2ea15ddcff8ef2fea95789bbe42dceb
|
|
| BLAKE2b-256 |
3ecd271aa4cc6d5fc587ca303fb780e152715f9fb5bf65b4ee0d5c5750710df3
|
File details
Details for the file zoomcli-0.2.4-py3-none-manylinux_2_28_aarch64.whl.
File metadata
- Download URL: zoomcli-0.2.4-py3-none-manylinux_2_28_aarch64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, manylinux: glibc 2.28+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
40e6aad5a57e42b925cb3e1b7b8cf7bbf58bb72e04d262544595392ea1d720e0
|
|
| MD5 |
22530a9d4c06088e9935e4695a77f444
|
|
| BLAKE2b-256 |
123df2b661db9b27ea0595bcfd72723cc8a83ff4e9cc49e7738a605dbfb26c4a
|
File details
Details for the file zoomcli-0.2.4-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: zoomcli-0.2.4-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4d98e2e8c744dd9ccb411f53cde8c52e509a1f67f2b18b0f53f1a7d2c4f2a3e
|
|
| MD5 |
bb2c7e83119ca03871cab10a7dde0eaf
|
|
| BLAKE2b-256 |
2f733833ea64b2d050578a9ec90ea4feabed761cd1712851d2446ae9424e6390
|
File details
Details for the file zoomcli-0.2.4-py3-none-macosx_10_12_x86_64.whl.
File metadata
- Download URL: zoomcli-0.2.4-py3-none-macosx_10_12_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ebb1a7bafb3ad984afe7ff1c3b6ead58f2ffc6700c8c53c7ebb4d1e43dbf94e8
|
|
| MD5 |
612de98fa304aa3bb2d15c78246b2b63
|
|
| BLAKE2b-256 |
80807da1dc6bd546adf9d840b230e77a41d48965387c9eed77fc01e957ace0dd
|