Repository navigation
0.5.0 (2026-11-12)
Features
- bench: add competitive benchmark harness with gates (1796661)
- cli: load commands from a generated manifest (67c5881)
- core: detect AI agents from one documented table (758a1a5)
- core: resolve credentials in one place (307e2c3)
- help: explain agent mode with dg help agent-mode (6cb08e4)
- init: resume a rerun in a clone dg init recorded (76ebda9)
- init: setup steps need --yes outside a terminal (8c50ae1)
- listen: add --timeout for prerecorded transcription (d695b92)
- listen: add -o text for the transcript alone (943af31)
- listen: print the server's body for prerecorded -o json (6aa1795)
- listen: save large results to a file in agent sessions (fb7f9ec)
- login: let agents finish device login with --complete (82e37e8)
- speak: add --out-file and deprecate -o/--output for the audio file (8f59531)
- telemetry: add DEEPCTL_TELEMETRY=log and =off (6319d5b)
- telemetry: honor DO_NOT_TRACK and CI (06bd209)
Bug Fixes
- Windows runtime failures in speak, listen, update, init and agent-mode help (6a8e5cd)
- ci: drop unwired workflow_call trigger from competitive-bench.yml (53b720f)
- cli: escape characters the output encoding can't write (d168f59)
- cli: keep warnings and notices off stdout (4364a85)
- cli: key cached root help on the telemetry sink setting (58d8b66)
- cli: treat Ctrl-C while the CLI is loading as cancelled (68d79ea)
- cli: use coded messages for cancel and unexpected errors (89c975b)
- config: count ~/.config on macOS when XDG_CONFIG_HOME names it (403f203)
- config: on macOS, follow ~/.config only where platformdirs does (76d1415)
- config: wait for a locked config file once per run (d290452)
- core: send API requests through one transport (edc5ea7)
- debug: send no stored credentials from debug network (edc5243)
- debug: take the probe's and network's host from the transport (3a6cd9b)
- give Windows agents a runnable next_step from init, login and speak (488520a)
- init: clone only Deepgram templates, with plain names (56dc618)
- init: keep an agent's resume records and logins under the real home (6ae7be3)
- init: keep repository settings from running programs (3bea87c)
- listen: finish live streams cleanly on Ctrl-C and end of input (1230585)
- listen: give each OS its own stdin and microphone help (79b5cb9)
- listen: keep machine output to the final result (b8fa0d7)
- listen: report a failed stdout write as an output error (589b2c9)
- listen: stop live listen before capture when the caption reader is gone (24c5deb)
- listen,speak: name Flux models, not API versions (3373da7)
- login: accept real API keys and ask for --yes instead of cancelling (e4db87a)
- login: check the base URL before dg login --complete saves a key (86e74c8)
- login: save the pending login and init's records on Windows (d4625a0)
- login: show a profile's config-file key in profiles --list (b73e1ce)
- mcp: keep environment proxies away from the authenticated client (de4262e)
- mcp: keep stdout for JSON-RPC from the start of dg mcp (d6e09c2)
- output: drop status chrome from stderr in agent mode (cc2de13)
- plugin: refuse a plugin named like a built-in alias before importing it (dfa89fe)
- preserve agent trust compatibility after rebase (c62445a)
- speak: don't read stdin or write audio to a pipe in agent mode (ab6ceb9)
- speak: don't take a Windows pipe or console for another file (7e2dc8b)
- speak: write --out-file and -o files correctly on Windows (3a3cf14)
- update: detect pipx, uv and npm installs correctly (2c97a87)
- update: never wait for the update check (cb4a70f)
- update: report an unreachable index as an error (3014068)
- update: retry an update check that didn't finish after an hour (906bfcc)
Performance Improvements
- cli: cache plugin discovery and help output (48e5f1b)
- cli: render subcommand help from specs (4667ad3)
- cli: start dg without importing click for --version and mcp (f0ef392)
- core: drop the pre-flight key check and reuse one HTTP client (41988be)
- core: import deepctl_core names lazily (9dc5cb4)
- core: load config without pydantic on the help path (0eb4cee)
- listen: bound live-stream memory and frame latency (3d28b98)
- listen: check URL sources without fetching them (bebdbd0)
- listen: stream prerecorded uploads from disk (728e01b)
- output: write JSON off a terminal without rich (d673225)
- speak: stream audio to pipes and players as it arrives (72c243c)
- telemetry: skip the flush when no report was queued (bcc803c)
Documentation
- compare with 0.4.1 in comments, the release before 0.5.0 (5481f6a)
- fix line wrap and restore workflow_call rationale in bench/README.md (259f07d)
- mcp: describe dg mcp as the documentation search it is (c097bec)
- telemetry: publish the report's field schema (19ea267)
- telemetry: say this version sends no telemetry (f8690b4)
Behavior changes
Upgrading to 0.5.0 changes these:
-o/--outputis deprecated fordg speak's audio file; use--out-fileinstead (8f59531).dg initno longer runs a template's setup commands or starts the app without a person at a terminal: pass--yes(or, outside an AI agent session,--install) to run setup and--startto start the app; otherwise it exits 1 withconfirmation_required(8c50ae1).dg initclones only Deepgram-owned templates now (56dc618).dg listen's prerecorded-o jsonnow prints the server's response body as sent — keys the server omitted no longer appear asnull— and-o yamlprints that body instead of the table (setDEEPCTL_LISTEN_JSON=sdkto restore the old JSON shape) (6aa1795).- In an AI-agent session, a prerecorded
dg listenresult over 64 KiB is now saved under~/.deepctl/results/(or a private temp directory) instead of printed, when the output format was auto-detected and stdout isn't a regular file or/dev/null; stdout gets a summary, and--full-outputrestores the full result (fb7f9ec). - Under a hard agent signal,
dg speakno longer reads stdin unless the text argument is-(otherwise it exits withE-SPEAK-NO-TEXT), and refuses to write audio to a pipe (E-SPEAK-NO-OUTPUT) (ab6ceb9). - When no one can answer a prompt,
dg login's confirmations now returnconfirmation_required(exit 1) instead of "Login cancelled" (e4db87a). - A
DEEPGRAM_API_KEY,DEEPGRAM_PROFILE,DEEPGRAM_PROJECT_IDorDEEPGRAM_BASE_URLthat still holds an unexpanded${...}placeholder is now ignored, with aW-ENV-PLACEHOLDERwarning; off a terminal, a keyring that doesn't answer within 2 s is skipped for the config file or environment, with aW-KEYRING-TIMEOUTwarning. Credential precedence itself is unchanged from 0.4.1 (307e2c3). dg debug networkno longer attaches~/.netrccredentials to its probe requests (it never sent your Deepgram key) (edc5243).