Deepgram CLI 0.3.0: Flux TTS and Flux STT
Deepgram CLI 0.3.0 is now available. It completes CLI support for Flux TTS, which reached general availability on 12 August, fixes Flux STT streaming, and enforces the CLI’s exit-code contract.
Upgrading from 0.2.26 picks up everything in this release. 0.2.27 was tagged but never published, so its changes arrive here.
Full Flux TTS support on dg speak
dg speak now defaults to flux-alexis-en on Speak v2 (WebSocket streaming) instead of Aura 2. Synthesised audio differs from earlier releases unless you request an Aura model explicitly:
Two Flux-only controls are now available. Both are validated before the request and rejected for non-flux-* models.
Any GA voice works with -m. For the full catalog see Voices & Languages; dg models lists Aura voices only.
Flux streaming returns raw audio: linear16 by default, plus mulaw and alaw. The --container option and the wider --encoding set apply to Aura only. Aura is otherwise unchanged, Spanish voices included.
dg speak synthesises one turn and exits, so the GA barge-in surface (Interrupt and SpeechInterrupted) and mid-session Configure are intentionally not exposed. Those target live agent pipelines; --speed and --expressivity are fixed for the connection here. See Interruption Handling if you need them.
Flux STT streaming is fixed
dg listen has routed flux-* models to Listen v2 since 0.2.5, but v2 was receiving v1-only parameters (language, smart_format, punctuate, channels, diarize, interim_results) and returning HTTP 400. Flux STT streaming now works:
Also fixed in this release:
TurnInfoevents are assembled per turn, and finite streams flush the final in-flight turn instead of dropping it- Fatal error frames propagate their code and description, and exit non-zero
- Multichannel raw audio is rejected before streaming rather than sent as stereo bytes read as mono
- Partial and null word timings are backfilled, so saved captions are valid
--diarizewarns and is cleared consistently, since Flux does not support it
Flux STT is streaming only. Files and URLs use Listen v1.
Redaction and numerals on dg listen
--redactis repeatable. Flux STT acceptsnumbersandaggressive_numbers; Listen v1 also accepts categories such aspciandssn.--numeralsconverts spoken numbers to digits.
Both apply to prerecorded and live paths. All of the above runs on Deepgram Python SDK 7.7.0.
Exit codes are now enforced
This release includes a breaking change. dg previously exited 0 regardless of outcome. It now follows the documented contract:
Scripts and CI steps that ignored the exit code will now surface failures they were previously swallowing. No command that succeeds changes its exit code. See Exit Codes.
Error output moved to stderr
Usage errors, crashes, and cancellation messages are written to stderr instead of stdout, so dg -o json keeps stdout machine-readable when a command fails this way. Previously these printed to stdout, which corrupted output piped into tools such as jq.
This covers the root command path. Some command-level errors, an authentication failure among them, still print to stdout, so scripts should branch on the exit code rather than assume stdout parses.
dg update now delivers the whole release
The CLI ships as a root package plus per-command packages. Root’s dependency floors were lower than the versions being published, so pip’s default only-if-needed strategy left most command packages at their installed version: dg --version reported the new release while its fixes had not arrived. This is why Flux TTS, published in 0.2.26, never reached anyone who upgraded rather than installing fresh.
Floors now match the published versions, so both of these deliver the full release:
Installations managed with uv, Homebrew, or the install script were not affected.
Also in this release
-o yamland-o csvno longer drop square-bracketed text from valuesdg keys --delete KEY_IDasks for confirmation instead of reportingCancelled by userwithout deletingdg keys --create --dry-runreports what it would create instead of failingdg mcphandles a closed stdio pipe during startup notifications and on the error path
For release details, see deepgram/cli v0.3.0.