Skip to main content

CI Crates.io PyPI License: MIT codecov

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)

Source distribution for zoomcli 0.2.9
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)

Table of built distributions (wheels) for zoomcli 0.2.9
File Actions
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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page