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.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

zoomcli-0.2.8.tar.gz (88.8 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

zoomcli-0.2.8-py3-none-win_amd64.whl (3.0 MB view details)

Uploaded Python 3Windows x86-64

zoomcli-0.2.8-py3-none-manylinux_2_28_x86_64.whl (2.9 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ x86-64

zoomcli-0.2.8-py3-none-manylinux_2_28_aarch64.whl (2.8 MB view details)

Uploaded Python 3manylinux: glibc 2.28+ ARM64

zoomcli-0.2.8-py3-none-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

zoomcli-0.2.8-py3-none-macosx_10_12_x86_64.whl (2.8 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file zoomcli-0.2.8.tar.gz.

File metadata

  • Download URL: zoomcli-0.2.8.tar.gz
  • Upload date:
  • Size: 88.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for zoomcli-0.2.8.tar.gz
Algorithm Hash digest
SHA256 4f9af1177e08da06a3a6fe840374b1355813efd2cf6cdb8a6e1d0049313af8da
MD5 4e7f17b0e1a46b6c85889133ab8c1365
BLAKE2b-256 c2b9826eb512ba38fec7e664d580ea7f4f036a0ce674b312bd73aa496d445a51

See more details on using hashes here.

File details

Details for the file zoomcli-0.2.8-py3-none-win_amd64.whl.

File metadata

  • Download URL: zoomcli-0.2.8-py3-none-win_amd64.whl
  • Upload date:
  • Size: 3.0 MB
  • Tags: Python 3, Windows x86-64
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.3

File hashes

Hashes for zoomcli-0.2.8-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 a723e1111db2762ed97bd42ae0a11fe458ce0c3ca78f416c1f186378beee947d
MD5 be4b40ea9314ec2ab34505d5d0c37448
BLAKE2b-256 c19d7bbb6c61119f6faf6b2c32320259d43de0542846f783b6fb2ede93aa1ad7

See more details on using hashes here.

File details

Details for the file zoomcli-0.2.8-py3-none-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for zoomcli-0.2.8-py3-none-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b54999c6117349caf6b8c436adf845a3d64ad2e0351956b2e9a5fee57de8e3e5
MD5 38f36c33893d10528538a341feeb0c29
BLAKE2b-256 ec2978c520172252591bd59238f5a27c3d09ddd066abf0f139975bb4e09d91ed

See more details on using hashes here.

File details

Details for the file zoomcli-0.2.8-py3-none-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for zoomcli-0.2.8-py3-none-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 4b2552dd3373fc5238d72dfe1be5fd2077b312d246594617e942a7525198384a
MD5 3455d3169d54786d4ae8d60e50475bcd
BLAKE2b-256 70e200aadb21eba8f5e2a304a106ea056fb295808ec0742e97d7986cf1f93991

See more details on using hashes here.

File details

Details for the file zoomcli-0.2.8-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for zoomcli-0.2.8-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98ac1fe8cc1eb5b464420a330c06e34488eee1a04bd5c481a43d86fd658f19cf
MD5 b4b34222fcae71dfaf9e5a7094026f9c
BLAKE2b-256 3c61556e66de7efd6b08ef093818535c1d790f3aa74703166129f23f5b45e1bf

See more details on using hashes here.

File details

Details for the file zoomcli-0.2.8-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for zoomcli-0.2.8-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 6258363be75f2bf2b7ff97af2339f27a1ce822307fe368b3a8a60aa184956f7d
MD5 1d13e44f13094773bc04d420acabccc6
BLAKE2b-256 fdabcab360934cd044c9a06729a05e21c0458353c11b886c471f16acf7a5da60

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.2.8 This release

6 files

0.2.7

6 files

0.2.6

6 files

0.2.5

6 files

0.2.4

6 files

0.2.3

6 files

0.2.2

6 files

0.2.1

6 files

0.2.0

6 files

0.0.1

2 files

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