From jambonz-skills
Ready-to-run jambonz starter applications. Use when the user wants to clone or scaffold a complete working voice app rather than assemble one from recipes — voice AI agents (OpenAI Realtime, Deepgram, ElevenLabs, Ultravox, Retell, Bedrock, AssemblyAI), IVR menus, dialers, recording, queuing, real-time translation, and more. Points at the @jambonz/sdk examples directory with one-line clone commands.
How this skill is triggered — by the user, by Claude, or both
Slash command
/jambonz-skills:jambonz-startersThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
The `@jambonz/sdk` repository ships 18+ runnable starter apps in [its `examples/` directory](https://github.com/jambonz/node-sdk/tree/main/examples). Each is a self-contained, copy-and-run project you can use as a base.
The @jambonz/sdk repository ships 18+ runnable starter apps in its examples/ directory. Each is a self-contained, copy-and-run project you can use as a base.
hello-world (webhook) — single say + hangupagent (fully featured: OpenAI + Deepgram + tool calling)ivr-menudial or two-stage-dialercall-recording or listen-recordqueue-with-holdUse degit to grab a single example folder without the rest of the repo:
npx degit jambonz/node-sdk/examples/<starter-name> my-app
cd my-app
npm install
Then read the starter's app.ts (or ws-app.ts for WebSocket starters) and package.json to see the dependencies and entry point.
| Starter | Transport | What it shows |
|---|---|---|
agent | WebSocket | Full voice agent: OpenAI LLM + Deepgram STT/TTS + Silero VAD + tool calling (get_weather) |
voice-agent | WebSocket | Generic conversational AI voice agent powered by an LLM |
openai-realtime | WebSocket | OpenAI Realtime API speech-to-speech integration |
deepgram-voice-agent | WebSocket | Deepgram deepgram_s2s end-to-end |
elevenlabs-voice-agent | WebSocket | ElevenLabs elevenlabs_s2s (uses agent_id auth — model & prompt live in the ElevenLabs dashboard) |
ultravox-voice-agent | WebSocket | Ultravox ultravox_s2s |
retell-hosted | Webhook | Retell-hosted agent via jambonz |
bedrock-agent | WebSocket | AWS Bedrock-backed voice agent |
assemblyai-autogenerate-prompt | WebSocket | AssemblyAI with dynamic prompt generation |
llm-streaming | WebSocket | LLM token-streaming with say TTS |
| Starter | Transport | What it shows |
|---|---|---|
hello-world | Webhook + WS | The simplest jambonz application: answer, greet, hang up. Ships both a webhook (app.ts) and WebSocket (ws-app.ts) version side-by-side. |
ivr-menu | Webhook | A classic interactive voice response menu that routes callers based on DTMF or speech input |
dial | Webhook | Bridge an incoming call to a phone number, SIP endpoint, or registered user |
two-stage-dialer | Webhook | Outbound dial that confirms the called party before bridging |
echo | Webhook | Echo test — answers and plays back what the caller says |
| Starter | Transport | What it shows |
|---|---|---|
call-recording | Webhook | Mid-call recording control: incoming call is bridged to an agent, recording can be started/stopped dynamically |
listen-record | Webhook | Combine listen (audio streaming) with recording |
queue-with-hold | Webhook | Support queue: callers placed in queue with hold music and position announcements. Agents connect separately to dequeue. |
realtime-translator | WebSocket | Real-time bidirectional speech translation between two parties |
Every starter expects a few application environment variables (set them in the jambonz portal under your application's settings). The starter's app.ts declares the expected variables at the top via envVars: { ... } — read that block, then create matching values in the portal.
For configuration patterns, load jambonz-recipes and read references/env-vars.md.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub jambonz/skills --plugin jambonz-skills