Official Deepgram CLI for speech recognition and audio intelligence
Project description
deepctl
[!WARNING]
Alpha Software: This CLI is experimental and under active development.
Official Deepgram CLI. Modular Python package with plugin system.
Development
Setup
git clone https://github.com/deepgram/cli && cd cli
uv sync
Run CLI
uv run deepctl --help
uv run deepctl login
uv run deepctl transcribe audio.wav
Development Commands
make dev # Format, lint, test
make check # Format, lint, typecheck (no tests)
make test # Run tests
Requirements
- Python 3.10+
- uv package manager
- Cross-platform: Linux, Windows, macOS
Architecture
cli/
├── src/deepctl/ # Main CLI entry point
├── packages/
│ ├── deepctl-cmd-api/ # API command for deepctl
│ ├── deepctl-cmd-billing/ # Billing command for deepctl
│ ├── deepctl-cmd-debug/ # Debug command group for deepctl
│ ├── deepctl-cmd-debug-audio/ # Audio debug subcommand for deepctl
│ ├── deepctl-cmd-debug-browser/ # Browser debug subcommand for deepctl
│ ├── deepctl-cmd-debug-network/ # Network debug subcommand for deepctl
│ ├── deepctl-cmd-debug-probe/ # Debug probe subcommand for deepctl — live ffprobe analysis during streaming
│ ├── deepctl-cmd-ffprobe/ # FFprobe configuration command for deepctl
│ ├── deepctl-cmd-init/ # Init command for deepctl — scaffold Deepgram starter apps
│ ├── deepctl-cmd-keys/ # API keys management command for deepctl
│ ├── deepctl-cmd-listen/ # Listen (live speech-to-text) command for deepctl
│ ├── deepctl-cmd-login/ # Login command for deepctl
│ ├── deepctl-cmd-mcp/ # MCP proxy command for deepctl — connects to Deepgram's developer API
│ ├── deepctl-cmd-members/ # Members management command for deepctl
│ ├── deepctl-cmd-models/ # Models command for deepctl
│ ├── deepctl-cmd-plugin/ # Plugin management command for deepctl
│ ├── deepctl-cmd-projects/ # Projects command for deepctl
│ ├── deepctl-cmd-read/ # Read (text intelligence) command for deepctl
│ ├── deepctl-cmd-requests/ # Requests history command for deepctl
│ ├── deepctl-cmd-skills/ # AI coding assistant skill management for deepctl
│ ├── deepctl-cmd-speak/ # Speak (text-to-speech) command for deepctl
│ ├── deepctl-cmd-transcribe/ # Transcribe command for deepctl
│ ├── deepctl-cmd-update/ # Update command for deepctl
│ ├── deepctl-cmd-usage/ # Usage command for deepctl
│ ├── deepctl-core/ # Core components for deepctl
│ ├── deepctl-plugin-example/ # Example plugin for deepctl
│ └── deepctl-shared-utils/ # Shared utilities for deepctl
├── tests/ # Integration tests
└── Makefile # Development tasks
Plugin Development
from deepctl_core.base_command import BaseCommand
class MyCommand(BaseCommand):
name = "mycommand"
help = "My custom command"
def handle(self, config, auth_manager, client, **kwargs):
pass
Register your command in pyproject.toml under the deepctl.plugins entry point group:
[project.entry-points."deepctl.plugins"]
mycommand = "my_plugin.command:MyCommand"
See packages/deepctl-plugin-example.
Testing
tests/- Integration testspackages/*/tests/unit/- Unit tests- Runs on Python 3.10-3.14, Linux/Windows/macOS
Release
Merging conventional commits to main triggers release-please to open a release PR. Merging that PR creates a v* tag, which triggers the PyPI publish workflow. All packages are version-locked.
Installation
Quick Install
macOS / Linux:
curl -fsSL https://deepgram.com/install.sh | sh
Windows (PowerShell):
iwr https://deepgram.com/install.ps1 -useb | iex
Install Options
# Install a specific version
curl -fsSL https://deepgram.com/install.sh | sh -s -- v0.2.1
# Force reinstall over existing installation
curl -fsSL https://deepgram.com/install.sh | sh -s -- --force
# Both
curl -fsSL https://deepgram.com/install.sh | sh -s -- --force v0.2.1
Windows (PowerShell):
# Install a specific version
$env:DEEPCTL_VERSION='0.2.1'; iwr https://deepgram.com/install.ps1 -useb | iex
# Force reinstall
$env:DEEPCTL_FORCE='1'; iwr https://deepgram.com/install.ps1 -useb | iex
Other Methods
uv tool install deepctl
pip install deepctl
pipx install deepctl
Try Without Installing
uv run deepctl --help
pipx run deepctl --help
Usage
Commands
| Command | Description |
|---|---|
deepctl api |
API command for deepctl |
deepctl billing |
Billing command for deepctl |
deepctl debug audio |
Audio debug subcommand for deepctl |
deepctl debug browser |
Browser debug subcommand for deepctl |
deepctl debug network |
Network debug subcommand for deepctl |
deepctl debug probe |
Debug probe subcommand for deepctl — live ffprobe analysis during streaming |
deepctl debug |
Debug command group for deepctl |
deepctl ffprobe |
FFprobe configuration command for deepctl |
deepctl init |
Init command for deepctl — scaffold Deepgram starter apps |
deepctl keys |
API keys management command for deepctl |
deepctl listen |
Listen (live speech-to-text) command for deepctl |
deepctl login |
Login command for deepctl |
deepctl logout |
Login command for deepctl |
deepctl mcp |
MCP proxy command for deepctl — connects to Deepgram's developer API |
deepctl members |
Members management command for deepctl |
deepctl models |
Models command for deepctl |
deepctl plugin |
Plugin management command for deepctl |
deepctl profiles |
Login command for deepctl |
deepctl projects |
Projects command for deepctl |
deepctl read |
Read (text intelligence) command for deepctl |
deepctl requests |
Requests history command for deepctl |
deepctl skills |
AI coding assistant skill management for deepctl |
deepctl speak |
Speak (text-to-speech) command for deepctl |
deepctl transcribe |
Transcribe command for deepctl |
deepctl update |
Update command for deepctl |
deepctl usage |
Usage command for deepctl |
Aliases
deepctl(primary)deepgramdg
Plugins
deepctl plugin search # Browse available plugins
deepctl plugin install <package> # Install a plugin
deepctl plugin list -v # List installed plugins (verbose)
deepctl plugin remove <package> # Remove a plugin
deepctl plugin update <package> # Update a plugin
Plugin installation adapts to how deepctl was installed:
| Install method | Plugin strategy |
|---|---|
pip / uv (venv) |
Installs into current environment |
pipx |
pipx inject deepctl <plugin> |
uv tool |
uv tool install deepctl --with <plugin> |
| Homebrew / system / binary | Isolated venv at ~/.deepctl/plugins/venv/ |
| Development (editable) | Installs into current environment |
uvx / pipx run |
Not supported (ephemeral) |
Plugins installed into the isolated venv are automatically discovered and loaded on every CLI invocation.
Configuration
Priority: CLI args > env vars > user config (~/.config/deepctl/config.yaml on Linux, ~/Library/Application Support/deepctl/config.yaml on macOS) > ./deepgram.yaml
Output Formats
deepctl transcribe audio.wav --output json|yaml|table|csv
MCP Server
Use deepctl mcp to connect Deepgram's developer tools to your AI code editor.
# Login first
deepctl login
Add to your editor's MCP config (Claude Code .mcp.json, Cursor .cursor/mcp.json, etc.):
{
"mcpServers": {
"deepgram": {
"type": "stdio",
"command": "uvx",
"args": ["deepctl", "mcp"]
}
}
}
See deepctl-cmd-mcp for full setup instructions including Cursor, Windsurf, pipx, and local development.
Packages
| Package | Description |
|---|---|
deepctl-cmd-api |
API command for deepctl |
deepctl-cmd-billing |
Billing command for deepctl |
deepctl-cmd-debug |
Debug command group for deepctl |
deepctl-cmd-debug-audio |
Audio debug subcommand for deepctl |
deepctl-cmd-debug-browser |
Browser debug subcommand for deepctl |
deepctl-cmd-debug-network |
Network debug subcommand for deepctl |
deepctl-cmd-debug-probe |
Debug probe subcommand for deepctl — live ffprobe analysis during streaming |
deepctl-cmd-ffprobe |
FFprobe configuration command for deepctl |
deepctl-cmd-init |
Init command for deepctl — scaffold Deepgram starter apps |
deepctl-cmd-keys |
API keys management command for deepctl |
deepctl-cmd-listen |
Listen (live speech-to-text) command for deepctl |
deepctl-cmd-login |
Login command for deepctl |
deepctl-cmd-mcp |
MCP proxy command for deepctl — connects to Deepgram's developer API |
deepctl-cmd-members |
Members management command for deepctl |
deepctl-cmd-models |
Models command for deepctl |
deepctl-cmd-plugin |
Plugin management command for deepctl |
deepctl-cmd-projects |
Projects command for deepctl |
deepctl-cmd-read |
Read (text intelligence) command for deepctl |
deepctl-cmd-requests |
Requests history command for deepctl |
deepctl-cmd-skills |
AI coding assistant skill management for deepctl |
deepctl-cmd-speak |
Speak (text-to-speech) command for deepctl |
deepctl-cmd-transcribe |
Transcribe command for deepctl |
deepctl-cmd-update |
Update command for deepctl |
deepctl-cmd-usage |
Usage command for deepctl |
deepctl-core |
Core components for deepctl |
deepctl-plugin-example |
Example plugin for deepctl |
deepctl-shared-utils |
Shared utilities for deepctl |
Contributing
- Fork repository
- Run
make dev(formats, lints, tests) - Add tests for changes
- Submit pull request
Links
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file deepctl-0.2.2.tar.gz.
File metadata
- Download URL: deepctl-0.2.2.tar.gz
- Upload date:
- Size: 13.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5163d473a3235c9159748dfd34d2c8da6d832423d165ce84abd567bca40928fd
|
|
| MD5 |
08f17930f190d973222f447fed3d0792
|
|
| BLAKE2b-256 |
b9dc637bdf4b763c736d32b279c3a8e12c16904f80549d6377a1193df6df087d
|
File details
Details for the file deepctl-0.2.2-py3-none-any.whl.
File metadata
- Download URL: deepctl-0.2.2-py3-none-any.whl
- Upload date:
- Size: 7.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d143dbaaa41bb5071d42ae24bfcead7ee8e3ef02e97f105168034321f67eeadf
|
|
| MD5 |
c7059e304848a521d9a40ef162bbeaad
|
|
| BLAKE2b-256 |
af46a8beac3146a9ce07d3982c6c4f35d14e0ceb43e6dd20e107265702ea1194
|