Skip to main content
skill Claude Code CX Codex Cursor GitHub Copilot

voice-agents — Claude Code skill: what it does, how to install

A coding skill that walks an agent through building a voice assistant: speech recognition, model reply, synthesis, and the fight over latency.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add sickn33/agentic-awesome-skills --skill voice-agents -a claude-code
Open on GitHub

What voice-agents does

The skill lays out two ways to build a voice agent: speech-to-speech over the OpenAI Realtime API, and a pipeline of STT → LLM → TTS that gives you more control and is easier to debug. Latency is the constraint it keeps returning to. People expect an answer in about 500 ms.

Included is a sketch that wires Deepgram, ElevenLabs and OpenAI together, plus tips such as starting synthesis while the model is still generating, and a voice activity detection pattern for turn-taking. That sketch is labelled legacy and explicitly not a production implementation: check the Deepgram constructor, the ElevenLabs stream calls and the Realtime beta client against the SDKs you actually have installed.

A final section deals with credentials and retention. Clients should get ephemeral session credentials rather than long-lived keys, audio and transcripts belong on a short leash, and a spoken name is not authentication. That is a reason to check how your agent authorises actions before you install anything.

What it helps with

  • pick between speech-to-speech and an STT → LLM → TTS pipeline
  • add voice activity detection so the agent stops interrupting itself
  • cut the delay before the first audible syllable
  • handle barge-in and cancel stale model output
  • move clients to ephemeral credentials and trim audio retention

Example prompts for the agent

  • Build a voice assistant on a Deepgram, OpenAI and ElevenLabs pipeline, keep replies to two sentences.
  • Add VAD and barge-in handling to our current voice agent, old responses have to get cancelled.
  • Check the `elevenlabs.textToSpeech.stream` and `transcription.live` signatures against the versions we have installed.

How to install voice-agents

1Skills CLI (Vercel)

npx skills add sickn33/agentic-awesome-skills --skill voice-agents -a claude-code

2Manually: put the files in place

~/.claude/skills/voice-agents/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/voice-agents/

From the same set80

The whole set →
docker-expert sickn33 A skill that turns your AI agent into a Docker reviewer for Dockerfiles, multi-stage builds and container security. Useful when images and Compose files need a second look. Claude Code CX Codex Cursor +1 27,200installs typescript-expert sickn33 A skill for TypeScript and JavaScript work: it reads your project setup, fixes type errors and speeds up type checking. Useful once a TS codebase gets big. Claude Code CX Codex Cursor +1 12,600installs browser-automation sickn33 This skill builds browser checks around observed UI state and explicit outcomes. Use it for UI workflows, timing failures, or authorised page-data collection. Claude Code CX Codex Cursor +1 6,700installs nextjs-supabase-auth sickn33 This skill wires Supabase Auth into the Next.js App Router with clients, middleware, OAuth callbacks, and Server Actions. Use it when you need protected routes and session handling. Claude Code CX Codex Cursor +1 6,500installs 3d-web-experience sickn33 Helps build and debug web 3D scenes, product configurators, and portfolios. Covers stack choice, model loading, scroll interaction, and performance checks. Claude Code CX Codex Cursor +1 5,200installs prisma-expert sickn33 This skill helps inspect Prisma schemas, migrations, and queries. Use it to investigate an error or review database changes before deployment. Claude Code CX Codex Cursor +1 4,200installs playwright-skill sickn33 Write and run Playwright browser tests directly in Claude Code: responsive design checks, login flows, form submissions, screenshots. Executes locally via Node with a visible browser window. Claude Code CX Codex Cursor +1 3,900installs game-development sickn33 Guides game architecture decisions, platform choices, and core loop structure. Directs the assistant to specialized sub-skills for web, mobile, PC, or VR. Claude Code CX Codex Cursor +1 3,800installs

Similar

vector-setup ruvnet Bootstraps [email protected], installs missing add-ons, and registers the MCP server. Useful when /vector subcommands fail on missing dependencies. Claude Code CX Codex Cursor +1 683installs from-the-other-side-vega official github Behavioral patterns and principles from an AI partnership to guide agent interaction. It teaches the agent to match creative pace, push back, and admit gaps. GitHub Copilot 746installs cost-benchmark ruvnet Runs corpus benchmarks to evaluate booster performance and compare spend against Gemini or Claude baselines. Generates verifiable cost tables before releases. Claude Code CX Codex Cursor +1 679installs managed-deep-agents langchain-ai Guides developers through authoring, testing, and deploying Managed Deep Agents in LangSmith. Useful for setting up code-first agent directories and preparing CLI deployments. Claude Code CX Codex Cursor +1 9,100installs huggingface-tool-builder huggingface A skill for building reusable command-line scripts that fetch, enrich, and process data from Hugging Face. Useful when chaining multiple API calls or running repeated automation tasks. Claude Code CX Codex Cursor +1 1,600installs skill-creator official anthropics Creates and refines skills, then tests them with prompts, evaluations, and performance checks. Claude Code Claude.ai 414,180installs writing-for-agents Matt Pocock Guidance for writing skills and agent-facing documents. Use it when editing AGENTS.md, CLAUDE.md, or reference files reached from them. Claude Code 466,719installs media-use heygen-com Finds or generates media for HyperFrames videos, including voiceovers, music, cutouts, and color grades. Stores files locally in assets. Claude Code CX Codex Cursor +1 1,100,000installs

Questions about voice-agents

How to install voice-agents in Claude Code?

Run npx skills add sickn33/agentic-awesome-skills --skill voice-agents -a claude-code. The skill then sits at ~/.claude/skills/voice-agents/SKILL.md.

What does voice-agents do?

It covers two voice agent architectures and their trade-offs, with a Deepgram, ElevenLabs and OpenAI pipeline sketch, a VAD pattern, and latency tips.

How does speech-to-speech differ from a pipeline?

Speech-to-speech runs through the OpenAI Realtime API and avoids extra hops. The STT → LLM → TTS pipeline gives more control and is easier to debug, though you have to hold latency down yourself.

Source text

SKILL.md · MIT
---
name: voice-agents
description: Voice agents represent the frontier of AI interaction - humans
  speaking naturally with AI systems.
risk: safe
source: vibeship-spawner-skills (Apache 2.0)
date_added: 2026-02-27
---

# Voice Agents

Voice agents represent the frontier of AI interaction - humans speaking
naturally with AI systems. The challenge isn't just speech recognition
and synthesis, it's achieving natural conversation flow with sub-800ms
latency while handling interruptions, background noise, and emotional
nuance.

This skill covers two architectures: speech-to-speech (OpenAI Realtime API,
one low-latency architecture option) and pipeline (STT→LLM→TTS, more control,
easier to debug). Key insight: latency is the constraint. Humans expect
responses in 500ms. Every millisecond matters.

No market-adoption statistic or universal latency benchmark is established by this skill.

## Detailed Guide

Read [the detailed guide](references/detailed-guide.md) before executing this skill. It retains the complete procedure and reference material. Treat its safety, prerequisites, and validation requirements as mandatory. For focused work, load the relevant sections; for end-to-end work, read the guide completely.

## Legacy Pipeline Sketch (not a production implementation)
```
import { Deepgram } from '@deepgram/sdk';
import { ElevenLabsClient } from 'elevenlabs';
import OpenAI from 'openai';

// Initialize clients
const deepgram = new Deepgram(process.env.DEEPGRAM_API_KEY);
const elevenlabs = new ElevenLabsClient();
const openai = new OpenAI();

async function processVoiceInput(audioStream) {
  // 1. Speech-to-Text (Deepgram Nova-3)
  const transcription = await deepgram.transcription.live({
    model: 'nova-3',
    punctuate: true,
    endpointing: 300,  // ms of silence before end
  });

  transcription.on('transcript', async (data) => {
    if (data.is_final && data.speech_final) {
      const userText = data.channel.alternatives[0].transcript;
      // Do not log raw private transcripts by default.

      // 2. LLM Processing
      const completion = await openai.chat.completions.create({
        model: 'gpt-4o-mini',
        messages: [
          { role: 'system', content: 'You are a concise voice assistant.' },
          { role: 'user', content: userText }
        ],
        max_tokens: 150,  // Keep responses short for voice
      });

      const agentText = completion.choices[0].message.content;
      // Log only authorized redacted operational metadata.

      // 3. Text-to-Speech (ElevenLabs)
      const audioStream = await elevenlabs.textToSpeech.stream({
        voice_id: 'voice_id_here',
        text: agentText,
        model_id: 'eleven_flash_v2_5',  // Lowest latency
      });

      // Stream to user
      playAudioStream(audioStream);
    }
  });

  // Pipe audio to transcription
  audioStream.pipe(transcription);
}
```

### Optimization Tips:
- Start TTS while LLM still generating (streaming)
- Pre-compute first response segment during user speech
- Use Flash/turbo models for latency

### Voice Activity Detection Pattern

Detect when user starts/stops speaking

**When to use**: All voice agents need VAD for turn-taking

# VOICE ACTIVITY DETECTION (VAD):

```
VAD Types:
1. Energy-based: Simple, fast, noise-sensitive
2. Model-based: Silero VAD, more accurate
3. Semantic VAD: Understands meaning, best for conversation
```

## When to Use
- User mentions or implies: voice agent
- User mentions or implies: speech to text
- User mentions or implies: text to speech
- User mentions or implies: whisper
- User mentions or implies: elevenlabs
- User mentions or implies: deepgram
- User mentions or implies: realtime api
- User mentions or implies: voice assistant
- User mentions or implies: voice ai
- User mentions or implies: conversational ai
- User mentions or implies: tts
- User mentions or implies: stt
- User mentions or implies: asr

## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

## Version, privacy and implementation boundaries

These mixed-version SDK sketches are conceptual and were not executed. Deepgram constructor/transcription.live, ElevenLabs stream signatures, the beta Realtime client and the named Silero JavaScript package must be checked against the installed official SDKs before use; do not infer missing package/runtime availability. smart_format formats text and is not noise reduction; model keyword/keyterm flags vary. A model-VAD probability threshold cannot be set from raw amplitude without a calibrated mapping. Confidence scores/latency figures are not universally comparable.

Define end-of-user-turn to first audible output and measure p50/p95 on representative devices/networks/languages. STT first partial, LLM first token and TTS first audio times are not simply additive end-to-end guarantees. Do not send partial/stale hypotheses to irreversible tools: serialize turns, deduplicate final transcripts, buffer complete TTS-safe segments, maintain history, and cancel/discard obsolete generation/audio. On barge-in truncate unheard assistant content in server history as well as stopping local playback; a checkpoint alone is insufficient.

Clients need appropriate ephemeral/session credentials, not long-lived API keys. Obtain authorized microphone/recording/voice/recipient scope, minimize audio/transcript retention and external-provider transfers, and avoid voice cloning/impersonation without rights. Bound sockets, retries, queues and costs; clean up listeners/streams on disconnect. Spoken names/numbers and claimed identity are not authentication. Validate tenant/recipient/action and obtain transaction-specific confirmation where needed. Text cleanup must preserve decimal numbers, currency, URLs and code semantics; SSML requires supported engines and escaping. A voice prompt is not a tool-authorization boundary. No call, recording or provider request was made.

© sickn33 · MIT · sickn33/agentic-awesome-skills

See also

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor