{"id":49238054,"url":"https://github.com/deepgram/examples","last_synced_at":"2026-04-24T17:37:32.033Z","repository":{"id":347752535,"uuid":"1195146671","full_name":"deepgram/examples","owner":"deepgram","description":"Deepgram SDK integrations with popular platforms, frameworks, and ecosystems maintained by the DX team","archived":false,"fork":false,"pushed_at":"2026-04-13T18:06:11.000Z","size":1416,"stargazers_count":1,"open_issues_count":7,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-13T18:26:45.699Z","etag":null,"topics":["ai","audio-intelligence","deepgram","examples","python","sdk","speech-to-text","text-to-speech","typescript","voice","voice-agents"],"latest_commit_sha":null,"homepage":"https://developers.deepgram.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/deepgram.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-29T09:37:40.000Z","updated_at":"2026-04-13T18:04:39.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/deepgram/examples","commit_stats":null,"previous_names":["deepgram/dx-examples"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/deepgram/examples","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fexamples","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fexamples/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fexamples/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fexamples/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/deepgram","download_url":"https://codeload.github.com/deepgram/examples/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/deepgram%2Fexamples/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32234727,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T13:21:15.438Z","status":"ssl_error","status_checked_at":"2026-04-24T13:21:15.005Z","response_time":64,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","audio-intelligence","deepgram","examples","python","sdk","speech-to-text","text-to-speech","typescript","voice","voice-agents"],"created_at":"2026-04-24T17:37:31.496Z","updated_at":"2026-04-24T17:37:32.024Z","avatar_url":"https://github.com/deepgram.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# examples\n\nA collection of working examples showing how to use Deepgram SDKs with popular platforms, frameworks, and ecosystems.\n\n[→ Contributing](CONTRIBUTING.md) · [→ Open PRs](../../pulls) · [→ Suggest an example](../../issues/new/choose)\n\n## Examples\n\n\u003c!-- examples-table-start --\u003e\n| # | Example | Language | Integration |\n|---|---------|----------|-------------|\n| [010](examples/010-getting-started-node/) | Getting Started — Transcribe a URL with Node.js | Node.js | Deepgram SDK |\n| [020](examples/020-twilio-media-streams-node/) | Twilio Media Streams — Real-Time Call Transcription | Node.js | Twilio |\n| [021](examples/021-twilio-voice-agent-node/) | Twilio Voice + Deepgram Voice Agent — AI Phone Agent | Node.js | Twilio |\n| [030](examples/030-livekit-agents-python/) | LiveKit Agents — Voice Assistant with Deepgram STT | Python | LiveKit |\n| [040](examples/040-langchain-stt-tool-python/) | LangChain STT Tool — Transcribe Audio in AI Pipelines | Python | LangChain |\n| [050](examples/050-vercel-ai-sdk-node/) | Vercel AI SDK — Transcribe Audio and Generate Speech with Deepgram | Node.js | Vercel AI SDK |\n| [051](examples/051-nextjs-vercel-ai-sdk-streaming/) | Next.js Streaming STT + TTS with Deepgram via the Vercel AI SDK | Node.js | Vercel AI SDK |\n| [052](examples/052-vercel-ai-sdk-agent-node/) | Vercel AI SDK Agent with Deepgram Voice Tools | Node.js | Vercel AI SDK |\n| [060](examples/060-discord-bot-node/) | Discord Bot — Transcribe Audio Attachments with Deepgram | Node.js | Discord |\n| [070](examples/070-vonage-voice-websocket-node/) | Vonage Voice API — Real-Time Call Transcription | Node.js | Vonage |\n| [080](examples/080-pipecat-voice-pipeline-python/) | Pipecat Voice Pipeline — Conversational Bot with Deepgram STT \u0026 TTS | Python | Pipecat |\n| [090](examples/090-expo-live-transcription-js/) | Expo Live Transcription | Node.js | Expo |\n| [100](examples/100-fastapi-audio-transcription-python/) | FastAPI Audio Transcription API | Python | FastAPI |\n| [110](examples/110-cloudflare-worker-transcription-js/) | Cloudflare Worker — Edge Audio Transcription | Node.js | Cloudflare |\n| [120](examples/120-slack-transcribe-bot-node/) | Slack Bot — Auto-Transcribe Audio Messages with Deepgram | Node.js | Slack |\n| [130](examples/130-telegram-bot-python/) | Telegram Voice Transcription Bot | Python | Telegram |\n| [140](examples/140-audio-to-subtitles-python/) | Audio to Subtitles CLI | Python | Deepgram SDK |\n| [150](examples/150-flutter-voice-transcription-dart/) | Flutter Voice Transcription | Dart | Flutter |\n| [160](examples/160-llamaindex-audio-loader-python/) | LlamaIndex Audio Document Loader — Transcribe Audio into RAG Pipelines | Python | LlamaIndex |\n| [170](examples/170-electron-live-transcription-node/) | Electron Live Transcription Overlay | Node.js | Electron |\n| [180](examples/180-zoom-recording-transcription-node/) | Zoom Cloud Recording Transcription with Deepgram | Node.js | Zoom |\n| [190](examples/190-daily-co-transcription-node/) | Daily.co Real-Time Transcription Overlay | Node.js | Daily.co |\n| [200](examples/200-vanilla-js-browser-transcription/) | Vanilla JavaScript Browser Transcription (No Bundler) | Node.js | Deepgram SDK |\n| [210](examples/210-openai-agents-voice-python/) | OpenAI Agents SDK Voice Pipeline with Deepgram STT \u0026 TTS | Python | OpenAI Agents SDK |\n| [220](examples/220-django-channels-live-stt-python/) | Django Channels Real-Time Transcription with Deepgram Live STT | Python | Django |\n| [230](examples/230-n8n-deepgram-community-node-typescript/) | n8n Community Nodes for Deepgram | Node.js | n8n |\n| [240](examples/240-nuxt-streaming-stt-tts-ts/) | Nuxt Streaming STT + TTS with Deepgram | Node.js | Nuxt |\n| [260](examples/260-nestjs-websocket-stt/) | NestJS WebSocket Real-Time Transcription | Node.js | NestJS |\n| [270](examples/270-sveltekit-live-transcription-ts/) | SvelteKit Real-Time Live Transcription | Node.js | SvelteKit |\n| [280](examples/280-express-react-live-transcription-ts/) | Express.js + React Live Transcription (TypeScript) | Node.js | Express + React |\n| [290](examples/290-aws-lambda-python-transcription/) | AWS Lambda Serverless Audio Transcription | Python | AWS Lambda |\n| [300](examples/300-spring-boot-live-transcription-java/) | Spring Boot Real-Time Transcription with Deepgram | Java | Spring Boot |\n| [310](examples/310-crewai-voice-agents-python/) | CrewAI Voice-Enabled Multi-Agent System with Deepgram | Python | CrewAI |\n| [340](examples/340-tauri-live-transcription-rust-ts/) | Tauri Desktop Live Transcription | Python | Tauri |\n| [350](examples/350-asterisk-freeswitch-deepgram-stt-python/) | Asterisk / FreeSWITCH PBX to Deepgram Streaming STT | Python | Asterisk/FreeSWITCH |\n| [360](examples/360-kotlin-android-live-transcription/) | Kotlin Android Live Transcription | Kotlin | Jetpack Compose |\n| [370](examples/370-swift-ios-live-transcription/) | Swift iOS Live Transcription | Swift | SwiftUI |\n| [400](examples/400-riverside-node/) | Riverside.fm Recording Transcription | Node.js | Riverside |\n| [420](examples/420-signalwire-realtime-transcription-node/) | SignalWire Real-Time Call Transcription with Deepgram STT | Node.js | SignalWire |\n| [430](examples/430-telnyx-texml-stream-node/) | Telnyx TeXML Stream to Deepgram Real-Time Transcription | Node.js | Telnyx |\n| [440](examples/440-plivo-media-streams-node/) | Plivo Audio Streaming — Real-Time Call Transcription | Node.js | Plivo |\n| [450](examples/450-jitsi-deepgram-stt-node/) | Jitsi Meet Real-Time Transcription with Deepgram STT | Node.js | Jitsi |\n| [460](examples/460-webex-recording-transcription-node/) | Webex Recording Transcription with Deepgram | Node.js | Webex |\n| [480](examples/480-obs-captioning-plugin-c/) | OBS Studio Live Captioning Plugin (C + Deepgram STT) | Python | OBS Studio |\n| [490](examples/490-haystack-deepgram-stt-pipeline-python/) | Haystack Audio Transcription Pipeline with Deepgram STT | Python | Haystack |\n| [500](examples/500-semantic-kernel-voice-plugin-dotnet/) | Semantic Kernel Voice Plugin with Deepgram (.NET) | JavaScript | Semantic Kernel |\n| [510](examples/510-gin-live-transcription-go/) | Gin Real-Time WebSocket Transcription Server | Go | Gin |\n| [520](examples/520-node-deepgram-proxy/) | Deepgram Proxy Server (Node.js) | Node.js | Deepgram SDK |\n\u003c!-- examples-table-end --\u003e\n\n## CI / testing\n\nEvery PR that touches `examples/**` runs language-specific test jobs automatically. The `e2e-api-check` status check is required before merge.\n\n| Language | Marker file |\n|----------|-------------|\n| Node.js / TypeScript | `package.json` |\n| Python | `requirements.txt` or `pyproject.toml` |\n| Go | `go.mod` |\n| Java | `pom.xml` or `build.gradle` |\n| Rust | `Cargo.toml` |\n| .NET | `*.csproj` or `*.sln` |\n| Dart | `pubspec.yaml` |\n| Kotlin | `build.gradle.kts` |\n| Swift | `Package.swift` or `*.xcodeproj` |\n| CLI | `example.sh` or `src/*.sh` |\n\nAll examples are also tested on a recurring schedule to catch regressions from SDK updates or API changes.\n\n## Automated example building\n\nSuggesting a new integration is as simple as [opening an issue](../../issues/new/choose). From there, a GitHub Actions workflow handles the build: an LLM agent (Claude Opus) writes the code, runs it in a Docker sandbox, diagnoses failures, and iterates until tests pass — then opens a PR for human review before anything merges. The workflow also sweeps open suggestions on a schedule, so nothing sits unbuilt indefinitely.\n\nThe agent uses a **neurosymbolic architecture** to stay on track. A symbolic working memory records observed facts as tools fire — which files exist, whether tests are passing, which phases are complete — without the LLM being able to misreport them. A forward-chaining rule engine pattern-matches tool output each turn and injects targeted guidance when things go wrong: missing imports get named, repeated failing commands trigger a strategy nudge, turn-budget warnings reprioritise the remaining work. And a constraint checker holds a formal veto over completion: when the agent signals it's done, the checker verifies the definition of done deterministically — required files exist, test directories are non-empty, no hardcoded secrets — and rejects the signal if anything is missing. The LLM handles open-ended reasoning and generation; the symbolic layer handles state, rules, and verification.\n\n## Directory structure\n\n```\nexamples/\n  {NNN}-{slug}/           # e.g. 010-getting-started-node\n    README.md             # Quickstart — what it does, prerequisites, env vars, how to run\n    BLOG.md               # Developer walkthrough — how it was built, step by step\n    .env.example          # Every required environment variable (no values)\n    screenshot.png        # 1240×760 Playwright screenshot (UI/terminal examples)\n    src/                  # Source code\n    tests/                # Tests — exit 0=pass, 1=fail, 2=missing credentials\n\ntests/\n  e2e.py                  # Deepgram STT + TTS smoke test (runs on every PR)\n\n.github/\n  workflows/              # CI workflows\n  scripts/                # Agent scripts (plan, build, filter secrets, symbolic layer)\n  ISSUE_TEMPLATE/         # Issue templates\n```\n\n## Numbering convention\n\nExamples are numbered globally in increments of 10: `010`, `020`, `030` … A platform owns its group — a second Twilio example would be `021`, not a new slot. New platforms claim the next free multiple of 10.\n\n## Setup\n\n1. Add `DEEPGRAM_API_KEY` as a repository secret — required for E2E tests\n2. Add partner credentials as needed (each example's `.env.example` lists them)\n\n`GITHUB_TOKEN` is provided automatically by GitHub Actions.\n\n## Contributing\n\nOpen an issue to suggest a new example, or submit a PR directly. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepgram%2Fexamples","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeepgram%2Fexamples","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeepgram%2Fexamples/lists"}