Official Deepgram Developer Tool  ·  v0.2.25

Speech AI, in your terminal.

Transcribe, synthesize, and stream audio. The official CLI for Deepgram's speech platform.

$ curl -fsSL deepgram.com/install.sh | sh
dg — zsh — 80×24
25+
Commands
nova-3
Default STT model
Python 3.10+
Runtime
MIT
License

Everything speech AI. One command.

Built for developers who live in the terminal and need their tools to keep up.

Speech-to-text

Transcribe files and URLs with nova-3. Speaker diarization, smart formatting, topic detection, and summaries — all from one command.

$ dg listen podcast.mp3 --diarize

Live streaming

WebSocket stream from mic or stdin. Real-time transcripts with interim results and word-level timing.

Text-to-speech

Generate speech with Aura voices. Pipe to ffplay or save to file.

Agent-ready by default

Auto-detects Claude Code, Aider, and Codex. Disables prompts, routes status to stderr, switches to JSON — no flags needed.

# Auto-detected
CLAUDECODE=1
# Explicit
dg ... --agent-friendly

UNIX philosophy

Pipe-friendly.
Script-ready.

Every command writes structured data to stdout and diagnostics to stderr. Switch formats with -o json or let it auto-switch when piped. Plays nicely with every UNIX tool you already know.

JSON / YAML / table / CSV
Explicit output format, or auto-JSON when piped.
Errors to stderr
Clean stdout channel. No surprises in pipes.
Exit codes everywhere
Non-zero on error. Works in set -e scripts.
# Transcribe + extract with jq
$ dg -o json listen call.mp3 \
| jq '.results.channels[0] .alternatives[0].transcript'
"Hello and welcome to our Q1 review..."
# TTS piped to speaker
$ dg speak "Hello from Deepgram" \
| ffplay -nodisp -autoexit -
# Stream mic → log
$ dg -o json listen --mic | tee log.jsonl

ALL COMMANDS

Every workflow, covered.

From a quick transcription to a full production pipeline — there's a command for that.

dg listen

Transcribe a local file

Smart formatting, punctuation, and speaker diarization on any audio or video file.

$ dg listen podcast.mp3 --smart-format --diarize
dg listen

Fetch and transcribe a URL

$ dg listen https://dpgr.am/spacewalk.wav
dg listen

Live microphone transcription

Real-time WebSocket stream with interim results as you speak.

$ dg listen --mic --smart-format
dg listen

Stream via ffmpeg

Pipe any source ffmpeg can read — HLS, RTMP, webcam, or broadcast.

$ ffmpeg -i stream.m3u8 -f wav - \
| dg listen --srt
dg listen

Write live WebVTT captions

Pipe real-time caption output directly to a .vtt file.

$ dg listen --mic --webvtt > captions.vtt
dg listen

Pipe transcript to an LLM

Chain with any LLM CLI for instant summarization or Q&A.

$ dg listen meeting.mp3 \
| llm "summarize key decisions"
dg speak

Synthesize speech to a file

$ dg speak "Hello from Deepgram" -o hello.wav
dg speak

Pipe TTS to your speaker

Any text in, audio out. Works with ffplay, aplay, or mpv.

$ echo "Latest headlines" | dg speak \
| ffplay -nodisp -autoexit -
dg read

Analyze a text document

Topics, sentiment, and summary — all in one pass against Deepgram's text intelligence API.

$ dg read report.txt --topics --sentiment --summarize
dg read

Summarize piped text

$ cat transcript.txt | dg read --summarize
dg login

Authenticate the CLI

Walks through API key setup and saves it to your local profile.

$ dg login
dg keys

Create a scoped API key

$ dg keys create "ci-runner"
dg projects

List all projects

$ dg projects list
dg members

View project members

$ dg members list
dg models

Browse available models

Filter by type, language, or tier to find the right model.

$ dg models list --type stt
dg usage

Check usage and limits

$ dg usage
dg billing

View account balance

$ dg billing
dg requests

Audit recent API calls

$ dg requests list --limit 20 -o json
dg api

Call any Deepgram endpoint

Escape hatch for endpoints not yet covered by a dedicated command.

$ dg api GET /v1/projects
dg debug audio

Diagnose audio devices

Lists input devices and tests recording capability.

$ dg debug audio
dg debug network

Test Deepgram connectivity

Checks DNS, TLS, and WebSocket reachability to Deepgram endpoints.

$ dg debug network
dg init

Scaffold a starter app

Clone a Deepgram starter app, pre-wired and ready to run.

$ dg init
dg mcp

Run as MCP server

Expose every CLI command to Claude, Cursor, and other MCP clients.

$ dg mcp
dg skills

Regenerate AI skill files

Keep your coding agent's context current with the latest commands.

$ dg skills update
dg plugin

Install a community plugin

$ dg plugin install deepctl-cmd-studio
dg update

Self-update the CLI

Detects your install method and runs the right upgrade command.

$ dg update
dg completion

Install shell tab-completion

$ dg completion install --shell zsh

Get started in seconds

One command. Every platform. Authenticate once, then go.

$ curl -fsSL deepgram.com/install.sh | sh
# Authenticate
$ dg login
# Transcribe
$ dg listen audio.mp3
# Explore
$ dg --help
Built for AI agents

Works with your AI coding tools

dg auto-detects Claude Code, Aider, Codex and more. Detected agents get non-interactive defaults, clean JSON output, and stderr-only status — automatically.

dg listen audio.mp3 --agent-friendly
$ dg listen --agent-friendly
{
"command": "listen",
"agent_hints": "Accepts local files or HTTP URLs...",
"requires_auth": true,
"non_interactive": true,
"output_formats": ["json", "yaml", ...]
}