Agent skill

Deepgram Python Voice Agent

by deepgram in deepgram/deepgram-python-sdk

Builds a full-duplex Python voice agent on Deepgram's agent.converse WebSocket, combining speech-to-text, an LLM and text-to-speech with interruption and function calling.

MITAuto-check passedAI & LLM Engineering

Install Deepgram Python Voice Agent

skills CLI
$ npx skills add deepgram/deepgram-python-sdk --skill deepgram-python-voice-agent -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install deepgram/deepgram-python-sdk deepgram-python-voice-agent --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/deepgram/deepgram-python-sdk.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/deepgram-python-voice-agent .claude/skills/deepgram-python-voice-agent && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
deepgram-python-voice-agent
GitHub stars
469
Token cost
~3.6k tokens
SKILL.md length
753 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Builds a full-duplex Python voice agent on Deepgram's agent.converse WebSocket, combining speech-to-text, an LLM and text-to-speech with interruption and function calling.

  • Works in 4 steps: In-repo reference: reference.md — "Agent… → AsyncAPI (WSS):… → Context7: library ID… → …
  • Building a voice assistant that users can interrupt while it speaks
  • SKILL.md covers When to use this product, Authentication, Quick start and Event types (server → client), plus 8 more sections
  • Calls npx

What it does

This skill covers Deepgram's hosted voice agent runtime, reached through `client.agent.v1.connect()` against `wss://agent.deepgram.com/v1/agent/converse` with an `Authorization: Token` header. It fits building an interactive assistant where the user can interrupt the agent mid-reply, where tool or function calls are triggered by the conversation, and where Deepgram hosts the STT, LLM and TTS orchestration instead of you wiring the three separately.

Configuration goes out first as `AgentV1Settings` through `send_settings`, audio frames follow through `send_media`, and the code reacts to server events such as `Welcome`, `SettingsApplied`, `ConversationText`, `UserStartedSpeaking`, `AgentThinking`, `FunctionCallRequest`, `AgentStartedSpeaking` and `AgentAudioDone`. Client-side messages beyond settings and media include `KeepAlive` for long sessions, mid-session prompt or voice updates, text injection and `ForceEndTurn`, the last requiring a V2/Flux listen provider. For one-way transcription, one-way synthesis or persisted agent configs, the skill points to its sibling Deepgram Python skills instead.

When your agent uses it

  • Building a voice assistant that users can interrupt while it speaks
  • Adding function or tool calling triggered by a spoken conversation
  • Wiring the AgentV1Settings and event handlers for a Deepgram voice agent
  • Choosing a Deepgram skill for text-to-speech or transcription instead of a full agent

Example prompts

  • “Set up a Deepgram voice agent in Python that lets the user interrupt while it is speaking.”
  • “Add a function call handler to my voice agent that looks up order status.”
  • “Which Deepgram Python skill should I use for one-way transcription only, not a full conversation?”

Requirements

  • Python with the Deepgram SDK
  • A Deepgram API key

Workflow steps

4 steps, taken from the first numbered list in SKILL.md.

  1. In-repo reference: reference.md — "Agent V1 Connect", "Voice Agent Configurations".
  2. AsyncAPI (WSS): https://developers.deepgram.com/asyncapi.yaml
  3. Context7: library ID /llmstxt/developers_deepgram_llms_txt.
  4. Product docs

What it can do on your machine

Read from SKILL.md and the folder at commit 5c2f3af. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.deepgram.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Deepgram Python Voice Agent loads about 3.6k tokens when it runs. Until then it costs about 162 tokens; SKILL.md has 753 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~162
When it runs · the whole SKILL.md, loaded when a task matches
~3.6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from deepgram/deepgram-python-sdk at commit 5c2f3af, republished under its MIT licence (© deepgram). 753 words, ~3,602 tokens.

Download SKILL.mdSave it as .claude/skills/deepgram-python-voice-agent/SKILL.md (or your agent's skills folder).
name
deepgram-python-voice-agent
description
Use when writing or reviewing Python code in this repo that builds an interactive voice agent via `agent.deepgram.com/v1/agent/converse`. Covers `client.agent.v1.connect()`, `AgentV1Settings`, `send_settings`, `send_media`, event handling, and function/tool calling. Full-duplex STT + LLM + TTS with barge-in. Use `deepgram-python-text-to-speech` for one-way synthesis, `deepgram-python-speech-to-text` / `deepgram-python-conversational-stt` for transcription only. Triggers include "voice agent", "agent converse", "full duplex", "interactive assistant", "barge-in", "agent.v1", "function calling", "AgentV1Settings".

Using Deepgram Voice Agent (Python SDK)

Full-duplex voice agent runtime: STT + LLM (think) + TTS + function calling over a single WebSocket at agent.deepgram.com/v1/agent/converse.

When to use this product

  • You want an interactive voice assistant: user speaks, agent thinks, agent speaks, interruptions allowed.
  • You want function / tool calling triggered by the conversation.
  • You want Deepgram to host the orchestration (vs wiring STT + LLM + TTS yourself).

Use a different skill when:

  • One-way transcription → deepgram-python-speech-to-text or deepgram-python-conversational-stt.
  • One-way synthesis → deepgram-python-text-to-speech.
  • Analytics on finished audio → deepgram-python-audio-intelligence.
  • Managing reusable agent configs (persisted on the server) → deepgram-python-management-api.

Authentication

python
from dotenv import load_dotenv
load_dotenv()

from deepgram import DeepgramClient
client = DeepgramClient()

Header: Authorization: Token <api_key>. Base URL: wss://agent.deepgram.com/v1/agent/converse.

Quick start

python
import threading, time
from deepgram.core.events import EventType
from deepgram.agent.v1.types import (
    AgentV1Settings,
    AgentV1SettingsAgent,
    AgentV1SettingsAgentListen,
    AgentV1SettingsAgentListenProvider_V1,
    AgentV1SettingsAudio,
    AgentV1SettingsAudioInput,
)
from deepgram.types.speak_settings_v1 import SpeakSettingsV1
from deepgram.types.speak_settings_v1provider import SpeakSettingsV1Provider_Deepgram
from deepgram.types.think_settings_v1 import ThinkSettingsV1
from deepgram.types.think_settings_v1provider import ThinkSettingsV1Provider_OpenAi

with client.agent.v1.connect() as agent:
    settings = AgentV1Settings(
        audio=AgentV1SettingsAudio(
            input=AgentV1SettingsAudioInput(encoding="linear16", sample_rate=24000),
        ),
        agent=AgentV1SettingsAgent(
            listen=AgentV1SettingsAgentListen(
                provider=AgentV1SettingsAgentListenProvider_V1(type="deepgram", model="nova-3"),
            ),
            think=ThinkSettingsV1(
                provider=ThinkSettingsV1Provider_OpenAi(
                    type="open_ai", model="gpt-4o-mini", temperature=0.7,
                ),
                prompt="You are a helpful assistant. Keep replies brief.",
            ),
            speak=SpeakSettingsV1(
                provider=SpeakSettingsV1Provider_Deepgram(type="deepgram", model="aura-2-asteria-en"),
            ),
        ),
    )

    agent.send_settings(settings)   # MUST be first message after connect

    def on_message(m):
        if isinstance(m, bytes):
            # agent speech audio — play or append to output buffer
            return
        t = getattr(m, "type", "Unknown")
        if t == "ConversationText":
            print(f"[{getattr(m, 'role', '?')}] {getattr(m, 'content', '')}")
        elif t == "UserStartedSpeaking":  print(">> user speaking")
        elif t == "AgentThinking":        print(">> agent thinking")
        elif t == "AgentStartedSpeaking": print(">> agent speaking")
        elif t == "AgentAudioDone":       print(">> agent done")
        elif t == "FunctionCallRequest":  handle_tool_call(m)

    agent.on(EventType.OPEN,    lambda _: print("open"))
    agent.on(EventType.MESSAGE, on_message)
    agent.on(EventType.CLOSE,   lambda _: print("close"))
    agent.on(EventType.ERROR,   lambda e: print(f"err: {e}"))

    def send_audio():
        for chunk in mic_chunks():
            agent.send_media(chunk)

    threading.Thread(target=send_audio, daemon=True).start()
    agent.start_listening()   # blocks

Event types (server → client)

  • Welcome — connection acknowledged
  • SettingsApplied — your Settings accepted
  • ConversationText — text of a turn (with role: user or assistant)
  • UserStartedSpeaking — VAD detected user
  • AgentThinking — LLM is working
  • FunctionCallRequest — tool/function call initiated by the model
  • AgentStartedSpeaking — TTS starting
  • Binary frames — audio chunks
  • AgentAudioDone — TTS finished for this turn
  • Warning, Error

Client messages

  • Initial Settings (send first)
  • Media (binary audio frames in declared encoding/sample_rate)
  • KeepAlive (on long sessions)
  • Prompt / think / speak update messages (change mid-session)
  • User / assistant text injection
  • Function call response (reply to FunctionCallRequest)
  • ForceEndTurn (end an active user turn; requires a Deepgram V2/Flux listen provider)

Reusable agent configurations

You can persist the agent block of a Settings message server-side and reuse it by agent_id. client.voice_agent.configurations.create stores a JSON string representing the agent object only (listen / think / speak providers + prompt) — NOT the full AgentV1Settings payload. Do not send top-level Settings fields like audio to that API; those still go in the live Settings message at connect time. The returned agent_id replaces the inline agent object in future Settings messages. Managed via client.voice_agent.configurations.* — see deepgram-python-management-api.

Dynamic mid-session adjustment

You can change agent behavior without disconnecting by sending control messages on the live socket. Each method is available on the agent connection object (agent in the quick-start) for both sync and async clients.

python
from deepgram.agent.v1.types import (
    AgentV1UpdatePrompt,
    AgentV1UpdateSpeak,
    AgentV1UpdateSpeakSpeak,        # type alias accepting SpeakSettingsV1 or list
    AgentV1UpdateThink,
    AgentV1UpdateThinkThink,        # type alias accepting ThinkSettingsV1 or list
    AgentV1InjectAgentMessage,
    AgentV1InjectUserMessage,
    AgentV1KeepAlive,
)
from deepgram.types.speak_settings_v1 import SpeakSettingsV1
from deepgram.types.speak_settings_v1provider import SpeakSettingsV1Provider_Deepgram
from deepgram.types.think_settings_v1 import ThinkSettingsV1
from deepgram.types.think_settings_v1provider import ThinkSettingsV1Provider_OpenAi

# 1. Swap the LLM system prompt mid-conversation (e.g. escalate to a different persona)
agent.send_update_prompt(
    AgentV1UpdatePrompt(prompt="You are now in expert escalation mode. Be precise and concise.")
)
# Server replies with a `PromptUpdated` event when the new prompt is in effect.

# 2. Swap the TTS voice without reconnecting (e.g. switch language or persona)
agent.send_update_speak(
    AgentV1UpdateSpeak(
        speak=SpeakSettingsV1(
            provider=SpeakSettingsV1Provider_Deepgram(
                type="deepgram", model="aura-2-luna-en",
            ),
        ),
    )
)
# Server replies with a `SpeakUpdated` event.

# 3. Swap the LLM provider/model (e.g. cheaper model for follow-ups)
agent.send_update_think(
    AgentV1UpdateThink(
        think=ThinkSettingsV1(
            provider=ThinkSettingsV1Provider_OpenAi(
                type="open_ai", model="gpt-4o-mini", temperature=0.3,
            ),
            prompt="You are a helpful assistant. Keep replies brief.",
        ),
    )
)
# Server replies with a `ThinkUpdated` event.

# 4. Force the agent to say something specific (without waiting for user audio)
agent.send_inject_agent_message(
    AgentV1InjectAgentMessage(message="Quick reminder: your call is being recorded.")
)
# Useful for proactive prompts, status updates, or scripted segues.

# 5. Inject a user message (e.g. text input from a chat sidebar alongside voice)
agent.send_inject_user_message(
    AgentV1InjectUserMessage(content="Schedule a follow-up for next Tuesday at 2pm.")
)
# Server may reply with `InjectionRefused` if the agent is mid-utterance — retry after `AgentAudioDone`.

# 6. Idle-period keep-alive (no payload required; the SDK fills in the type literal)
agent.send_keep_alive(AgentV1KeepAlive())
# Or simply: agent.send_keep_alive()  — the message arg is optional.

# 7. End an active user turn immediately (for example, on push-to-talk release).
# Requires a Deepgram V2/Flux listen provider; V1 returns FORCE_END_TURN_UNSUPPORTED.
agent.send_force_end_turn()

Async client equivalents are identical but await-prefixed:

python
await agent.send_update_prompt(AgentV1UpdatePrompt(prompt="..."))
await agent.send_inject_agent_message(AgentV1InjectAgentMessage(message="..."))
await agent.send_force_end_turn()

Stream lifecycle & recovery

Continuous voice agents need explicit handling for idle periods, stream pauses, and reconnects.

Pause / idle (no audio for several seconds): stop calling send_media, but emit a KeepAlive every ~5 seconds. Without it, the server closes the socket at ~10 seconds of idle.

python
import threading, time

stop = threading.Event()

def keepalive_loop():
    while not stop.is_set():
        if stop.wait(5):
            return
        try:
            agent.send_keep_alive()
        except Exception:
            return  # socket closed; outer loop will reconnect

threading.Thread(target=keepalive_loop, daemon=True).start()

Resume after pause: just call send_media again. No control message is required — the agent picks up VAD on the next chunk.

Reconnect after disconnect (preserve conversation context): Settings cannot be re-sent on the same closed socket; open a new connection and resend the same Settings. To carry conversation history forward, include it in the new Settings.agent.context.messages so the LLM resumes with prior turns:

python
from deepgram.agent.v1.types import (
    AgentV1SettingsAgentContext,
    AgentV1SettingsAgentContextMessagesItem,
    AgentV1SettingsAgentContextMessagesItemContent,
    AgentV1SettingsAgentContextMessagesItemContentRole,
)

# Build the new Settings with the captured prior turns
context = AgentV1SettingsAgentContext(
    messages=[
        AgentV1SettingsAgentContextMessagesItem(
            content=AgentV1SettingsAgentContextMessagesItemContent(
                role=AgentV1SettingsAgentContextMessagesItemContentRole.USER,
                content="Hi, I'd like to schedule a meeting.",
            ),
        ),
        AgentV1SettingsAgentContextMessagesItem(
            content=AgentV1SettingsAgentContextMessagesItemContent(
                role=AgentV1SettingsAgentContextMessagesItemContentRole.ASSISTANT,
                content="Sure — what day works best?",
            ),
        ),
    ],
)
new_settings = settings.model_copy(update={"agent": settings.agent.model_copy(update={"context": context})})

# Open a fresh connection and replay
with client.agent.v1.connect() as agent2:
    agent2.send_settings(new_settings)
    # ... same handlers + audio loop as before

The server emits a History message on connect when the SDK has captured prior turns; in Python you receive this as an AgentV1History object (wire type literal: "History"). Persist these turns in your application so a reconnect can rebuild context.messages.

Detect disconnects: the EventType.CLOSE handler fires before the with block exits. Catch it and trigger your reconnect logic from there. Check EventType.ERROR payloads for cause (network drop vs server-initiated close vs warning).

Show full SKILL.md (254 more words)Show less

API reference (layered)

  1. In-repo reference: reference.md — "Agent V1 Connect", "Voice Agent Configurations".
  2. AsyncAPI (WSS): https://developers.deepgram.com/asyncapi.yaml
  3. Context7: library ID /llmstxt/developers_deepgram_llms_txt.
  4. Product docs:

Gotchas

  1. Pick the right auth scheme for the credential type. API keys use Authorization: Token <api_key>. Temporary / access tokens (created via client.auth.v1.tokens.grant() or an equivalent server) use Authorization: Bearer <access_token>. The custom DeepgramClient in this repo accepts an access_token parameter and installs a Bearer override for all HTTP + WebSocket calls — see src/deepgram/client.py.
  2. Base URL is agent.deepgram.com, not api.deepgram.com.
  3. Send Settings IMMEDIATELY after connect — no audio before settings are applied.
  4. Listen/speak encoding + sample_rate must match both your input audio and your playback path.
  5. Keepalive on long idle sessions, otherwise the server closes.
  6. Function call responses are synchronous to the turn — reply promptly.
  7. Provider types are tagged unions (ThinkSettingsV1Provider_OpenAi, SpeakSettingsV1Provider_Deepgram, ...). Pick the right union variant; don't pass raw dicts.
  8. socket_client.py is temporarily frozen (see .fernignore → src/deepgram/agent/v1/socket_client.py) and currently carries _sanitize_numeric_types plus the construct_type / broad-catch fixes — needed for unknown WS message shapes. Expected to be unfrozen during a future Fern regen and re-compared.

Example files in this repo

  • examples/30-voice-agent.py
  • examples/32-voice-agent-force-end-turn.py — Force an active turn to end with a Flux listen provider
  • tests/manual/agent/v1/connect/main.py — live connection test

Central product skills

For cross-language Deepgram product knowledge — the consolidated API reference, documentation finder, focused runnable recipes, third-party integration examples, and MCP setup — install the central skills:

bash
npx skills add deepgram/skills

This SDK ships language-idiomatic code skills; deepgram/skills ships cross-language product knowledge (see api, docs, recipes, examples, starters, setup-mcp).

© deepgram, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/deepgram-python-voice-agent of deepgram/deepgram-python-sdk.

Open the folder on GitHubat commit 5c2f3af

Compare with similar skills

Deepgram Python Voice Agent next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Deepgram Python Voice Agent compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Deepgram Python Voice Agent this skilldeepgram/deepgram-python-sdk469—~3.6kAutomated safety check: PassMIT
Azure AI Voicelive Pymicrosoft/skills3.1k6 repos~2.9kAutomated safety check: PassMIT
Gemini Live API Devgoogle-gemini/gemini-skills4.3k—~4.6kAutomated safety check: PassApache-2.0
Deepgram JS Audio Intelligencedeepgram/deepgram-js-sdk276—~1.5kAutomated safety check: PassMIT
Gemini Live API DevJetBrains/skills363—~2.6kAutomated safety check: PassNone
Speech Engineelevenlabs/skills479—~2.5kAutomated safety check: WarnMIT

Similar skills

  • Azure AI Voicelive Py

    microsoft/skills

    Official

    Build real-time voice AI applications using Azure AI Voice Live SDK (azure-ai-voicelive).

    3.1k GitHub starsUsed in 6 repos~2.9k tokens
    Backend & APIsAuto-check passed
  • Gemini Live API Dev

    google-gemini/gemini-skills

    Official

    A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API, or migrating legacy Live models (2.0/2.5/3.1) to Gemini 3.8 Live.

    4.3k GitHub stars~4.6k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Deepgram JS Audio Intelligence

    deepgram/deepgram-js-sdk

    A skill your agent uses when writing or reviewing JavaScript/TypeScript in this repo that calls Deepgram audio analytics overlays on /v1/listen - summarize, topics, intents, sentiment, diarize…

    276 GitHub stars~1.5k tokensUpdated 5 days ago
    Media & CreativeAuto-check passed
  • Gemini Live API Dev

    JetBrains/skills

    Official

    A skill your agent uses when building real-time, bidirectional streaming applications with the Gemini Live API.

    363 GitHub stars~2.6k tokensUpdated 3 mo ago
    Backend & APIsAuto-check passed
  • Speech Engine

    elevenlabs/skills

    Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.

    479 GitHub stars~2.5k tokensUpdated yesterday
    Media & CreativeAuto-check: warnings
  • Voice AI Development

    majiayu000/claude-skill-registry

    Expert in building voice AI applications - from real-time voice agents to voice-enabled apps.

    666 GitHub starsUsed in 3 repos~4.4k tokens
    AI & LLM EngineeringAuto-check passed

More from deepgram/deepgram-python-sdk

  • Deepgram Audio Intelligence for Python

    deepgram/deepgram-python-sdk

    Shows how to add Deepgram analytics such as diarization, summaries, sentiment, topics, redaction and language detection to speech transcription in Python.

    469 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Deepgram Flux Conversational STT

    deepgram/deepgram-python-sdk

    Writes and reviews Python code for Deepgram's turn-aware streaming speech-to-text (Flux, /v2/listen), including end-of-turn detection.

    469 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed
  • Deepgram Python Management API

    deepgram/deepgram-python-sdk

    Guides Python code that calls the Deepgram Management APIs to administer projects, keys, members, usage, billing and stored Voice Agent configurations.

    469 GitHub stars~2.3k tokensUpdated yesterday
    Auto-check passed
  • Deepgram Python Speech-to-Text

    deepgram/deepgram-python-sdk

    Covers basic transcription with the Deepgram Python SDK's listen.v1 endpoint, for one-shot REST transcription of a file or URL and live WebSocket streaming with interim results.

    469 GitHub stars~2.9k tokensUpdated yesterday
    Auto-check passed
  • Deepgram Text Intelligence

    deepgram/deepgram-python-sdk

    Uses the Deepgram Python SDK's Read API to analyze text for sentiment, summaries, topics and intents with client.read.v1.text.analyze, from raw text or a hosted URL.

    469 GitHub stars~1.4k tokensUpdated yesterday
    Auto-check passed
  • Deepgram Python Text-to-Speech

    deepgram/deepgram-python-sdk

    Guides Python code that calls Deepgram Text-to-Speech v1, covering one-shot REST, streaming WebSocket and the TextBuilder helper.

    469 GitHub stars~1.8k tokensUpdated yesterday
    Auto-check passed

Works with

Questions about Deepgram Python Voice Agent

What does Deepgram Python Voice Agent do?

Builds a full-duplex Python voice agent on Deepgram's agent.converse WebSocket, combining speech-to-text, an LLM and text-to-speech with interruption and function calling. com/v1/agent/converse` with an `Authorization: Token` header. It fits building an interactive assistant where the user can interrupt the agent mid-reply, where tool or function calls are triggered by the conversation, and where Deepgram hosts the STT, LLM and TTS orchestration instead of you wiring the three separately.

When should I use Deepgram Python Voice Agent?

Deepgram Python Voice Agent fits situations like: building a voice assistant that users can interrupt while it speaks; adding function or tool calling triggered by a spoken conversation; wiring the AgentV1Settings and event handlers for a Deepgram voice agent; choosing a Deepgram skill for text-to-speech or transcription instead of a full agent.

How do I install Deepgram Python Voice Agent in Claude Code?

Run `npx skills add deepgram/deepgram-python-sdk --skill deepgram-python-voice-agent -a claude-code`. Or copy the skill folder (.agents/skills/deepgram-python-voice-agent in deepgram/deepgram-python-sdk) into .claude/skills/deepgram-python-voice-agent in your project. Claude Code loads it when a task matches its description.

How do I install Deepgram Python Voice Agent in Codex?

Run `npx skills add deepgram/deepgram-python-sdk --skill deepgram-python-voice-agent -a codex`. Or copy the skill folder (.agents/skills/deepgram-python-voice-agent in deepgram/deepgram-python-sdk) into .agents/skills/deepgram-python-voice-agent in your project. Codex loads it when a task matches its description.

Can I use Deepgram Python Voice Agent in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add deepgram/deepgram-python-sdk --skill deepgram-python-voice-agent -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deepgram-python-voice-agent, .gemini/skills/deepgram-python-voice-agent, .github/skills/deepgram-python-voice-agent and .opencode/skills/deepgram-python-voice-agent in your project.

What does Deepgram Python Voice Agent need to run?

Going by SKILL.md and its folder, Deepgram Python Voice Agent needs the command-line tools its instructions call (npx). Our summary lists: Python with the Deepgram SDK; A Deepgram API key.

Does Deepgram Python Voice Agent access the network?

SKILL.md names 1 domain. As links in the text: developers.deepgram.com. This is read from the text; nothing was executed.

Is Deepgram Python Voice Agent safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Deepgram Python Voice Agent use?

Deepgram Python Voice Agent is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Deepgram Python Voice Agent use?

About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Deepgram Python Voice Agent?

Skills that share tags, products or a category with Deepgram Python Voice Agent: Azure AI Voicelive Py (microsoft/skills, 3.1k stars), Gemini Live API Dev (google-gemini/gemini-skills, 4.3k stars), Deepgram JS Audio Intelligence (deepgram/deepgram-js-sdk, 276 stars) and Gemini Live API Dev (JetBrains/skills, 363 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Deepgram Python Voice Agent?

deepgram (a GitHub organization) maintains it in deepgram/deepgram-python-sdk, which has 469 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 6, 2026.

Source: deepgram/deepgram-python-sdk on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.