Global flags
The Plivo CLI supports these flags on every command. Command:plivo <command> [flags]
Flags
-o, --output <format>: output format:tableorjson. Defaults totablewhen attached to a terminal andjsonwhen piped. See Output and exit codes.-y, --yes: confirm a command that spends money or deletes data. Without it, such commands are refused with exit code 5.--dry-run: print the HTTP request the command would make (method, URL, body) and exit without sending it.--profile <name>: run under a named profile from~/.plivo/config.tomlinstead of the active one.--timeout <seconds>: request timeout (default 30).--log-level <level>:debug,info,warn,error, ornone(defaultwarn).debugprints every HTTP request and response to stderr.-q, --quiet: suppress non-data output.--no-color: disable colored output.-h, --help: help for any command.
--explain is not a global flag. It narrates what a command will do in plain
English before running it, and it exists only on the commands that implement
it: api, account applications create, auth whoami, voice calls make,
messaging sms send, messaging whatsapp send, messaging mms send,
numbers buy, numbers release and verify sessions create. Every other
command rejects it rather than accepting it and doing nothing.
plivo --version(orplivo -v) prints the CLI version; this works on the root command only, not after a subcommand.
Output and exit codes
The CLI is built to be parsed. Every command has one success shape, one error shape, and a small set of exit codes.Success envelope
With-o json, an API-backed command prints the upstream API response verbatim under data. Nothing is dropped or renamed:
data; list commands have the API’s meta and objects under data, so objects live at data.objects[...]. Commands that resolve credentials add "meta": {"source": "env" | "profile"}.
The local tools that do not call the API (streams test, streams forward, upgrade, config telemetry) honour -o json too: each emits one machine-readable summary on stdout and sends its progress output to stderr, so stdout stays parseable.
Error envelope
Errors go to stderr as JSON and the process exits non-zero:code, never on message text.
Exit codes
Safety
Any command that spends money or deletes data,voice calls make, messaging * send, numbers buy, numbers release, * delete, and mutating plivo api calls, is refused unless --yes is present. The refusal happens locally, before any request is sent. Use --dry-run to see the exact request first.
Configuration keys
Use theconfig command to view and change CLI settings stored in ~/.plivo/config.toml.
Command: plivo config <subcommand>
plivo config telemetry on|off|status
Turn identity telemetry on or off, or show its current state. See Telemetry for exactly what is and isn’t sent.
PLIVO_CLI_TELEMETRY=0 does the same for a single shell session or CI job and wins over the config file.
plivo config get <key> / plivo config set <key> <value>
Read or write an individual setting. Currently supported key: telemetry.
Environment variables
PLIVO_AUTH_ID,PLIVO_AUTH_TOKEN: headless credentials.PLIVO_CLI_TELEMETRY=0: disable identity telemetry.PLIVO_FEEDBACK_PROMPT=0: silence the post-command feedback prompt.PLIVO_FEEDBACK_TELEMETRY=0: disableplivo feedbacksubmission entirely.PLIVO_NO_UPDATE_CHECK=1: silence the “newer version available” hint.
Telemetry
The Plivo CLI sends a small amount of usage data with each request so we can see which commands are used, what fails, and which versions are in the field. It is enabled by default, and you can turn the identity part off at any time.What is collected
On every request to Plivo:- CLI version, operating system, and architecture (used for the upgrade hint and compatibility).
- The command name (for example
voice calls list): never its arguments or flag values. - When identity telemetry is on: the account’s Auth ID, the email of the logged-in user, the account region, and an internal user identifier. This lets us see usage per person within an organisation.
plivo feedback additionally sends the rating and comment you type.
What is never collected
- Your auth token, API keys, or passwords.
- Phone numbers, call or message UUIDs, message bodies, audio, or recordings.
- URLs you pass to commands (answer URLs, WebSocket URLs, callback URLs).
- Flag values, file contents, or anything from your Plivo account data.
How to turn it off
Identity telemetry is an account-level setting you control:PLIVO_FEEDBACK_TELEMETRY=0 to disable plivo feedback submission as well.