Most audio tools assume you are sitting in front of a browser. But the people who build with voice — developers, and increasingly their AI agents — spend their day in a terminal. Breeze CLI is our answer to a simple question: what should voice generation feel like when it starts from the command line?
Start with sound
Hear it before you build it
Install with one command, then log in and speak:
curl -fsSL https://breezeblue.ai/cli/install.sh | sh
breeze login
breeze tts "Hello from Breeze"breeze login opens your browser, you approve the device, and the CLI keeps a device-specific key on your machine — no copying API keys around. From then on, breeze tts streams audio to your speakers the moment the first bytes arrive, with a live waveform in the terminal. If you don't pick a voice, Breeze picks one for you, so the distance between “I wonder how this sounds” and actually hearing it is one line.
Exploring voices works the same way:
breeze voice list
breeze tts "Try this line with a different voice" --voice <voice_id>
breeze tts "Keep this take" -o hello.wavVoice design, voice cloning, history, and generation jobs are all there too — the CLI covers the same surface as the Breeze Developer API, because it is built directly on it.
Graduate to code
From a command to production code
Prototyping in the terminal is only useful if you can graduate to code without starting over. Every Breeze CLI call maps to the public /v1 Developer API — the same API behind our Python and TypeScript SDKs. When a take sounds right, ask the CLI to hand you the request:
breeze curl tts "Hello from Breeze" --voice voc_xeh3w54cqvnp --format mp3 -o hello.mp3breeze curl prints a reproducible cURL request for exactly what you just did — with your API key replaced by a placeholder. Paste it into a script, translate it into an SDK call, or hand it to a teammate. The CLI is a faster way to explore the API, not a separate dialect of it.
Agent native
Built for AI agents, not just adapted for them
We think the second user of every CLI is now an AI agent, so agent ergonomics are not an afterthought — they are a design rule. Add --agent to any command and Breeze CLI becomes a well-behaved tool call: JSON results on stdout, JSON error envelopes on stderr, no prompts, no spinners, no audio autoplay.
breeze voice list --agent
breeze tts "Hello from Breeze" --voice <voice_id> -o hello.wav --agentAround that contract we built the pieces an agent actually needs. Stable exit codes: authentication failures, insufficient credits, timeouts, and network errors each map to a fixed code, so a script or agent can branch on recovery — re-log in, top up, retry — without parsing human-readable text. Capabilities discovery: breeze capabilities --agent returns a machine-readable manifest of commands, legal flag values, and the exit-code table, so an agent can learn the surface without trial and error. Agent skills: breeze skills install --target codex (or claude, cursor) installs curated skills that teach your coding agent the recommended Breeze workflows — explicit opt-in, and never touching your API key.
If an agent is installing the CLI for you, one line does both:
curl -fsSL https://breezeblue.ai/cli/install.sh | sh -s -- --with-skills codexBeyond audio
Video Lab: narrated video as an agent workflow
Breeze CLI also ships Video Lab, a local runtime that turns HTML compositions into MP4 videos with Breeze TTS narration. An agent can initialize a project, validate assets, inspect frames for visual problems — text overflow, cropped elements, unreadable captions — and render the final video, all through JSON-reporting commands:
breeze video init --project demo --template authored --agent
breeze video validate --project demo --agent
breeze video render --project demo --agentEverything runs on your machine: your compositions, assets, and rendered videos never leave it except for the TTS narration request itself.
Craft
Boring in the ways that matter
A CLI earns trust with details. Breeze CLI keeps credentials in local files with strict permissions, shows only masked keys in output, and stores keys hash-only on the server. Data goes to stdout and status goes to stderr, so pipes behave. Profiles make it easy to keep separate environments or accounts on one machine. And breeze update keeps the binary and its runtime current when you ask it to — never behind your back in scripts or CI.
Try it
Get started
curl -fsSL https://breezeblue.ai/cli/install.sh | sh
breeze login
breeze tts "Hello from Breeze"The full documentation — quickstart, command reference, scripting guide, and troubleshooting — lives at docs.breezeblue.ai/cli. We would love to hear what you build with it.
