From deepgram-pack
Installs Deepgram SDK and configures API key authentication for Node.js/TypeScript and Python. Includes client init code and verification for speech-to-text/TTS integrations.
npx claudepluginhub jeremylongshore/claude-code-plugins-plus-skills --plugin deepgram-packThis skill is limited to using the following tools:
!`npm list @deepgram/sdk 2>/dev/null || echo '@deepgram/sdk not installed'`
Applies production Deepgram SDK patterns for TypeScript and Python: singleton clients, Aura TTS, audio pipelines, error handling, v5 migration.
Installs AssemblyAI SDK for Node.js/Python, configures API key authentication, initializes client, and verifies connection for speech-to-text transcription.
Installs ElevenLabs TTS SDK and configures API key authentication for Node.js or Python, with client init and verification code.
Share bugs, ideas, or general feedback.
!npm list @deepgram/sdk 2>/dev/null || echo '@deepgram/sdk not installed'
!pip show deepgram-sdk 2>/dev/null | grep Version || echo 'deepgram-sdk (Python) not installed'
Install the Deepgram SDK and configure API key authentication. Deepgram provides speech-to-text (Nova-3, Nova-2), text-to-speech (Aura-2), and audio intelligence APIs. The JS SDK uses createClient() (v3/v4) or new DeepgramClient() (v5+).
Node.js (v3/v4 — current stable):
npm install @deepgram/sdk
# or
pnpm add @deepgram/sdk
Python:
pip install deepgram-sdk
# Option A: Environment variable (recommended)
export DEEPGRAM_API_KEY="your-api-key-here"
# Option B: .env file (add .env to .gitignore)
echo 'DEEPGRAM_API_KEY=your-api-key-here' >> .env
Never hardcode keys. Use dotenv for local dev, secret managers in production.
import { createClient } from '@deepgram/sdk';
// Reads DEEPGRAM_API_KEY from env automatically
const deepgram = createClient(process.env.DEEPGRAM_API_KEY!);
SDK v5+ uses a different constructor:
import { DeepgramClient } from '@deepgram/sdk';
const deepgram = new DeepgramClient({ apiKey: process.env.DEEPGRAM_API_KEY });
from deepgram import DeepgramClient, PrerecordedOptions, LiveOptions
import os
client = DeepgramClient(os.environ["DEEPGRAM_API_KEY"])
// TypeScript — list projects to verify key is valid
async function verify() {
const deepgram = createClient(process.env.DEEPGRAM_API_KEY!);
const { result, error } = await deepgram.manage.getProjects();
if (error) {
console.error('Auth failed:', error.message);
process.exit(1);
}
console.log(`Connected. Projects: ${result.projects.length}`);
result.projects.forEach(p => console.log(` - ${p.name} (${p.project_id})`));
}
verify();
# Python — verify connection
from deepgram import DeepgramClient
import os
client = DeepgramClient(os.environ["DEEPGRAM_API_KEY"])
response = client.manage.v("1").get_projects()
print(f"Connected. Projects: {len(response.projects)}")
for p in response.projects:
print(f" - {p.name} ({p.project_id})")
// Singleton client with custom options
import { createClient, DeepgramClient } from '@deepgram/sdk';
let client: DeepgramClient | null = null;
export function getDeepgramClient(): DeepgramClient {
if (!client) {
const apiKey = process.env.DEEPGRAM_API_KEY;
if (!apiKey) throw new Error('DEEPGRAM_API_KEY is required');
client = createClient(apiKey);
}
return client;
}
| Scope | Permission | Use Case |
|---|---|---|
member | Full access | Development only |
listen | STT transcription | Production transcription services |
speak | TTS synthesis | Voice generation services |
manage | Project management | Admin tools |
usage | Usage data | Monitoring dashboards |
Create scoped keys in Console > Settings > API Keys > Create Key.
@deepgram/sdk (Node.js) or deepgram-sdk (Python).env| Error | Cause | Solution |
|---|---|---|
401 Unauthorized | Invalid or expired API key | Regenerate key in Console > API Keys |
403 Forbidden | Key lacks required scope | Create new key with correct scopes |
MODULE_NOT_FOUND | SDK not installed | Run npm install @deepgram/sdk |
ENOTFOUND api.deepgram.com | Network/DNS issue | Check internet, verify no proxy blocking |
TypeError: createClient is not a function | SDK v5 installed | Use new DeepgramClient() instead |
Proceed to deepgram-hello-world for your first transcription.