> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://developers.deepgram.com/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://developers.deepgram.com/_mcp/server.

# Update Nova-3 Keyterms Mid-Stream from the SDKs, Play Audio from the CLI, and Deepgram Skills v1.7.0

Deepgram Python SDK `v7.13.0`, JavaScript SDK `v5.15.0`, and Java SDK
`v0.11.1` let you reconfigure an active Nova-3 stream without reconnecting,
including keyterms and numerals, and add custom Think-provider messages for
Voice Agent sessions. Go SDK `v3.9.0`, .NET SDK `v7.1.3`, Rust SDK `v0.12.0` and `v0.13.0`,
Deepgram CLI `v0.3.3`, and Deepgram skills `v1.7.0` are also available.

Each `Configure` message replaces the stream's keyterms and turns formatting
features on or off through a `features` object, for example
`"features": { "numerals": true }`. Updating keyterms mid-stream is available
on the global endpoint (`api.deepgram.com`) only. For limits and error
behavior, see [Configure](/docs/configure).

### Python SDK v7.13.0

Deepgram Python SDK `v7.13.0` adds
`connection.send_configure(ListenV1Configure(...))` to change keyterms and
formatting options such as numerals on a live Listen V1 stream. Most Configure
rejections arrive as typed `ListenV1Error` responses. Voice Agent sessions can
exchange experimental custom Think-provider payloads with
`send_custom_to_think_provider(...)` and `AgentV1CustomFromThinkProvider`
responses, which require a configured custom Think-provider WebSocket endpoint.

For release details, see [deepgram-python-sdk v7.13.0](https://github.com/deepgram/deepgram-python-sdk/releases/tag/v7.13.0).

### JavaScript SDK v5.15.0

Deepgram JavaScript SDK `v5.15.0` adds `sendConfigure({ type: "Configure", ... })`
for live Listen V1 streams, with most rejections delivered as typed
`ListenV1Error` messages, and the experimental `sendCustomToThinkProvider(...)`
for Voice Agent sessions.

WebSocket connection errors now retry through the configured
`reconnectAttempts` budget unless your application closed the socket. For
custom transports, the retry budget resets after a connection stays open for
the default five-second stable period.

For release details, see [deepgram-js-sdk v5.15.0](https://github.com/deepgram/deepgram-js-sdk/releases/tag/v5.15.0).

### Java SDK v0.11.1

Deepgram Java SDK `v0.11.1` adds `sendConfigure(ListenV1Configure)` for live
Listen V1 streams and `onErrorMessage(...)` for typed server errors. When no
typed handler is registered, `onError(...)` receives a
`ListenV1ErrorException` that carries the server error. Voice Agent sessions
gain the experimental `sendCustomToThinkProvider(...)` and
`onCustomFromThinkProvider(...)`, which require a custom Think-provider `wss://`
endpoint.

For release details, see [deepgram-java-sdk v0.11.1](https://github.com/deepgram/deepgram-java-sdk/releases/tag/v0.11.1).

### Go SDK v3.9.0

Deepgram Go SDK `v3.9.0` supports the current Voice Agent function-call
protocol with typed function requests, responses, and cancellation events.
Function settings accept arbitrary JSON Schema properties, and client-side
functions can omit an endpoint. The Management client adds create, read,
update, and delete endpoints for reusable Voice Agent configurations and
Agent template variables. Configurations are stored and returned as JSON
strings, and an update to a configuration replaces its metadata only.

For release details, see [deepgram-go-sdk v3.9.0](https://github.com/deepgram/deepgram-go-sdk/releases/tag/v3.9.0).

### .NET SDK v7.1.3

Deepgram .NET SDK `v7.1.3` makes `LiveSchema.Model` optional on the Listen V1
WebSocket. `Connect` no longer throws `NullReferenceException` when you omit
the model. Keyterms with an explicit non-Nova-3 model still fail validation
with `DeepgramException`.

For release details, see [deepgram-dotnet-sdk 7.1.3](https://github.com/deepgram/deepgram-dotnet-sdk/releases/tag/7.1.3).

### Rust SDK v0.13.0

Deepgram Rust SDK `v0.13.0` adds [Text Intelligence](/docs/text-intelligence)
analysis, SRT and WebVTT caption helpers, Voice Agent Flux and Aura speak
settings with integer expressivity, typed Voice Agent server events, model
listing that includes outdated models, streaming TTS options, named Aura-2
models, and self-hosted distribution credential management. Pre-recorded and
streaming responses expose extra metadata, and `Entity::raw_value` preserves
the spoken text before formatting.

It also fixes a streaming worker that stopped when the idle timer fired
without keep-alive, a Flux TTS deadlock on terminal errors under backpressure,
and usage requests that omit the audio meter group.

This pre-1.0 release includes breaking changes:

- `Details::duration` and `Details::total_audio` are now `Option<f64>`, and
  `Details::channels` and `Details::streams` are now `Option<usize>`. An absent
  value means the meter group was omitted, which is different from zero usage.
- Management and `Auth::grant` calls now use the configured base URL. To keep
  sending them to the hosted API from a custom-base-URL setup, create a
  separate client with `Deepgram::new(api_key)`. A base URL with a path prefix
  must end in `/`.
- Streaming metadata and `StreamResponse::TerminalResponse` are
  non-exhaustive. Pattern matches must include `..`, and you can't build these
  types with struct literals.
- Named Whisper models and redaction values parse to their own variants, so
  code that matched them as `CustomId` or `Other` must match the named
  variants.
- `Speak::speak_to_file` no longer prints a success message to stdout.

For release details, see [deepgram-rust-sdk 0.13.0](https://github.com/deepgram/deepgram-rust-sdk/releases/tag/0.13.0).

### Rust SDK v0.12.0

Deepgram Rust SDK `v0.12.0` fixes a hang on `/v1/listen` and `/v2/listen`
streaming sessions when the response channel filled up, delivers the terminal
transport error to your code, and preserves unknown streaming frames.
WebSocket requests now send the full authority in the `Host` header.

This pre-1.0 release includes a behavior change: sending data on an ended
`/v1/listen` session now returns `Err`, where `v0.11.0` returned `Ok(())`.

For release details, see [deepgram-rust-sdk 0.12.0](https://github.com/deepgram/deepgram-rust-sdk/releases/tag/0.12.0).

### Deepgram CLI v0.3.3

Deepgram CLI `v0.3.3` adds two flags to `dg speak`. `--play` sends audio to
your system player (`ffplay`, `afplay`, `paplay`, or `aplay`) and works with
`-o` to save and play in one command. `--list-voices` lists the available
text-to-speech voices and their languages.

`dg skills` now installs Deepgram skills `v1.7.0` from a pinned, hash-checked
bundle, installs and removes only the skill folders the CLI owns, and cleans up
skill files it can prove an earlier `0.3.x` release wrote.

For release details, see [deepgram/cli v0.3.3](https://github.com/deepgram/cli/releases/tag/v0.3.3).

### Deepgram skills v1.7.0

Deepgram skills give AI coding assistants such as Claude Code, Cursor, and
Codex up-to-date Deepgram API, SDK, and CLI guidance. The `deepgram` plugin now
lists 14 skills, including the `speech-to-text`, `text-to-speech`,
`voice-agent`, `audio-intelligence`, `text-intelligence`, `browser-agent`, and
`cli` skills added in `v1.6.0`.

`v1.7.0` updates all 14 skills for the September API, SDK, and CLI changes,
including Flux TTS pause markers and Early Access pronunciation overrides, the Flux STT `Warning`
message and mid-stream `numerals`, the Voice Agent reusable-configuration and
agent-variable endpoints, and `FunctionCallCancelled`. The skills also correct
which SDKs support each feature and add the EU, Australia, and India regional
endpoints.

Install with `npx skills add deepgram/skills` or `dg skills`. For release
details, see [deepgram/skills v1.7.0](https://github.com/deepgram/skills/releases/tag/deepgram-skills-v1.7.0).

### Earlier releases

These releases, from September 14 through October 5, did not get their own changelog entries:

- **Python SDK [`v7.10.0`](https://github.com/deepgram/deepgram-python-sdk/releases/tag/v7.10.0), JavaScript SDK [`v5.12.0`](https://github.com/deepgram/deepgram-js-sdk/releases/tag/v5.12.0), and Java SDK [`v0.10.1`](https://github.com/deepgram/deepgram-java-sdk/releases/tag/v0.10.1)** add Voice Agent `FunctionCallCancelled` events and the `defer_until_eot` function setting. JavaScript streaming sockets also support `for await...of`.
- **Python SDK [`v7.11.0`](https://github.com/deepgram/deepgram-python-sdk/releases/tag/v7.11.0), JavaScript SDK [`v5.13.0`](https://github.com/deepgram/deepgram-js-sdk/releases/tag/v5.13.0), and Java SDK [`v0.10.2`](https://github.com/deepgram/deepgram-java-sdk/releases/tag/v0.10.2)** turn [Numerals](/docs/numerals) on or off during a Flux STT stream with `Configure`.
- **Python SDK [`v7.12.0`](https://github.com/deepgram/deepgram-python-sdk/releases/tag/v7.12.0), JavaScript SDK [`v5.14.0`](https://github.com/deepgram/deepgram-js-sdk/releases/tag/v5.14.0), and Java SDK [`v0.11.0`](https://github.com/deepgram/deepgram-java-sdk/releases/tag/v0.11.0)** add Flux TTS pause markers for batch synthesis and Early Access pronunciation overrides; see [Speed, Pause, and Pronunciation](/docs/tts-voice-controls). Python also adds typed Flux STT `Warning` messages.
- **Go SDK [`v3.8.0`](https://github.com/deepgram/deepgram-go-sdk/releases/tag/v3.8.0)** adds a Flux TTS client for batch and WebSocket synthesis, and `ForceEndTurn` for Flux STT. Go SDK [`v3.7.1`](https://github.com/deepgram/deepgram-go-sdk/releases/tag/v3.7.1) fixes Speak V1 WebSocket metadata and the `Clear` control message.
- **.NET SDK [`v7.1.2`](https://github.com/deepgram/deepgram-dotnet-sdk/releases/tag/7.1.2)** surfaces unknown WebSocket server frames through the `Unhandled` event and adds opt-in `DeepgramWebSocketException` errors for rejected WebSocket upgrades.
- **Rust SDK [`v0.11.0`](https://github.com/deepgram/deepgram-rust-sdk/releases/tag/0.11.0)** adds the `rustls-tls-native-roots` feature and `Deepgram::tls_config` for TLS-inspecting proxies and private CAs. This release includes a breaking change: a Flux `wss://` connection behind a private CA that worked on `v0.10.1` only because another crate enabled native roots now fails with `UntrustedTlsCertificate` until you enable `rustls-tls-native-roots` or pass `Deepgram::tls_config`.
- **Deepgram CLI [`v0.3.2`](https://github.com/deepgram/cli/releases/tag/v0.3.2)** keeps stdout parseable for scripts and corrects advertised command examples.