Skip to main content
Every pipecat cloud command shares one output contract and one set of exit codes. Both matter most in CI, where there’s no terminal to read and the exit status is the only signal your pipeline gets.

Output modes

--output is a global option, so it goes before the subcommand:
In json mode, stdout carries nothing but the JSON payload — every human-facing message, including errors and progress, moves to stderr. That means you can pipe stdout straight into a parser without filtering:
Piping already gets you plain, so scripts that just need stable, untruncated text don’t have to pass anything. Reach for json when you want to read specific fields.

Setting it once

The mode resolves in this order, first match winning:
  1. The --output flag
  2. The PIPECAT_OUTPUT environment variable, or the output key in your CLI config file
  3. Auto-detection: rich on a terminal, plain otherwise
So a CI job can set it once for every step:
An unrecognized mode is a usage error — the CLI names the valid modes and exits 2.

Exit codes

Declining a confirmation exits 1 rather than 0 — an aborted deploy is a failed step, not a successful no-op.

Running non-interactively

Rather than let a prompt hang or misread a closed stdin, a command that would prompt checks for an interactive terminal first and exits 2 with the flag that skips the prompt:
This applies to every prompt, so the rule to script by is: if running a command by hand asks you a question, the CI version of that command needs the corresponding flag. A few commands exist only to ask you something — organizations select and organizations keys use present a picker and have nothing to bypass. Use --organization on the individual command instead of selecting one first, and set PIPECAT_TOKEN rather than authenticating interactively.
These flags skip the prompt, not the check. agent delete --force still refuses to delete an agent that doesn’t exist, and deploy --yes still fails on an invalid config.

More Information

Personal access tokens

Authenticate a CI job with PIPECAT_TOKEN

CI with GitHub Actions

A full deployment pipeline