Gemini Live API Dev
google-gemini/gemini-skills
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.
Stream call audio in real-time, fork media to external destinations, and transcribe speech live.
$ npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install team-telnyx/ai telnyx-voice-streaming-javascript --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/telnyx-voice-streaming-javascript .claude/skills/telnyx-voice-streaming-javascript && rm -rf skills-srcUse ~/.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/
Install the "telnyx-voice-streaming-javascript" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascript into .claude/skills/telnyx-voice-streaming-javascript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-voice-streaming-javascript", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascriptType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install team-telnyx/ai telnyx-voice-streaming-javascript --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/telnyx-voice-streaming-javascript .agents/skills/telnyx-voice-streaming-javascript && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "telnyx-voice-streaming-javascript" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascript into .agents/skills/telnyx-voice-streaming-javascript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-voice-streaming-javascript", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install team-telnyx/ai telnyx-voice-streaming-javascript --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/telnyx-voice-streaming-javascript .cursor/skills/telnyx-voice-streaming-javascript && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "telnyx-voice-streaming-javascript" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascript into .cursor/skills/telnyx-voice-streaming-javascript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-voice-streaming-javascript", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/team-telnyx/ai.git --path skills/telnyx-voice-streaming-javascript--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install team-telnyx/ai telnyx-voice-streaming-javascript --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/telnyx-voice-streaming-javascript .gemini/skills/telnyx-voice-streaming-javascript && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "telnyx-voice-streaming-javascript" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascript into .gemini/skills/telnyx-voice-streaming-javascript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-voice-streaming-javascript", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install team-telnyx/ai telnyx-voice-streaming-javascriptInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/telnyx-voice-streaming-javascript .github/skills/telnyx-voice-streaming-javascript && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "telnyx-voice-streaming-javascript" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascript into .github/skills/telnyx-voice-streaming-javascript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-voice-streaming-javascript", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install team-telnyx/ai telnyx-voice-streaming-javascript --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/team-telnyx/ai.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/telnyx-voice-streaming-javascript .opencode/skills/telnyx-voice-streaming-javascript && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "telnyx-voice-streaming-javascript" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-voice-streaming-javascript into .opencode/skills/telnyx-voice-streaming-javascript/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-voice-streaming-javascript", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
telnyx-voice-streaming-javascriptStream call audio in real-time, fork media to external destinations, and transcribe speech live.
Telnyx Voice Streaming Javascript is an agent skill from team-telnyx/ai. Stream call audio in real-time, fork media to external destinations, and transcribe speech live. Use for real-time analytics and AI integrations. This skill provides JavaScript SDK examples.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Transcription and Webhooks. It works with JavaScript. The repository describes itself as: Official one-stop shop for AI Agents and developers building with Telnyx. The licence is MIT.
Read from SKILL.md and the folder at commit 4d2ace0. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
developers.telnyx.comFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TELNYX_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Telnyx Voice Streaming Javascript loads about 3.3k tokens when it runs. Until then it costs about 56 tokens; SKILL.md has 1,137 words of instructions outside code blocks.
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.
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.
The full file from team-telnyx/ai at commit 4d2ace0, republished under its MIT licence (© team-telnyx). 1,137 words, ~3,333 tokens.
.claude/skills/telnyx-voice-streaming-javascript/SKILL.md (or your agent's skills folder).<!-- Auto-generated from Telnyx OpenAPI specs. Do not edit. -->
npm install telnyx@6.74.2import Telnyx from 'telnyx';
const client = new Telnyx({
apiKey: process.env['TELNYX_API_KEY'], // This is the default and can be omitted
});All examples below assume client is already initialized as shown above.
All API calls can fail with network errors, rate limits (429), validation errors (422), or authentication errors (401). Always handle errors in production code:
try {
const result = await client.messages.send({ to: '+13125550001', from: '+13125550002', text: 'Hello' });
} catch (err) {
if (err instanceof Telnyx.APIConnectionError) {
console.error('Network error — check connectivity and retry');
} else if (err instanceof Telnyx.RateLimitError) {
// 429: rate limited — wait and retry with exponential backoff
const retryAfter = err.headers?.['retry-after'] || 1;
await new Promise(r => setTimeout(r, retryAfter * 1000));
} else if (err instanceof Telnyx.APIError) {
console.error(`API error ${err.status}: ${err.message}`);
if (err.status === 422) {
console.error('Validation error — check required fields and formats');
}
}
}Common error codes: 401 invalid API key, 403 insufficient permissions,
404 resource not found, 422 validation error (check field formats),
429 rate limited (retry with exponential backoff).
Call forking allows you to stream the media from a call to a specific target in realtime. This stream can be used to enable realtime audio analysis to support a
variety of use cases, including fraud detection, or the creation of AI-generated audio responses. Requests must specify either the target attribute or the rx and tx attributes.
POST /calls/{call_control_id}/actions/fork_start
Optional: client_state (string), command_id (string), rx (string), stream_type (enum: decrypted), tx (string)
const response = await client.calls.actions.startForking('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');
console.log(response.data);Returns: result (string)
Stop forking a call. Expected Webhooks:
call.fork.stoppedPOST /calls/{call_control_id}/actions/fork_stop
Optional: client_state (string), command_id (string), stream_type (enum: raw, decrypted)
const response = await client.calls.actions.stopForking('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');
console.log(response.data);Returns: result (string)
Start streaming the media from a call to a specific WebSocket address or Dialogflow connection in near-realtime. Audio will be delivered as base64-encoded RTP payload (raw audio), wrapped in JSON payloads. Please find more details about media streaming messages specification under the link.
POST /calls/{call_control_id}/actions/streaming_start
Optional: client_state (string), command_id (string), custom_parameters (array[object]), dialogflow_config (object), enable_dialogflow (boolean), stream_auth_token (string), stream_bidirectional_codec (enum: PCMU, PCMA, G722, OPUS, AMR-WB, L16), stream_bidirectional_mode (enum: mp3, rtp), stream_bidirectional_sampling_rate (enum: 8000, 16000, 22050, 24000, 48000), stream_bidirectional_target_legs (enum: both, self, opposite), stream_codec (enum: PCMU, PCMA, G722, OPUS, AMR-WB, L16, default), stream_track (enum: inbound_track, outbound_track, both_tracks), stream_url (string)
const response = await client.calls.actions.startStreaming('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');
console.log(response.data);Returns: result (string)
Stop streaming a call to a WebSocket. Expected Webhooks:
streaming.stoppedPOST /calls/{call_control_id}/actions/streaming_stop
Optional: client_state (string), command_id (string), stream_id (uuid)
const response = await client.calls.actions.stopStreaming('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');
console.log(response.data);Returns: result (string)
Start real-time transcription. Transcription will stop on call hang-up, or can be initiated via the Transcription stop command. Expected Webhooks:
call.transcriptionPOST /calls/{call_control_id}/actions/transcription_start
Optional: client_state (string), command_id (string), transcription_engine (enum: Google, Telnyx, Deepgram, Azure, xAI, AssemblyAI, Speechmatics, Soniox, Parakeet, A, B), transcription_engine_config (object), transcription_tracks (string)
const response = await client.calls.actions.startTranscription('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');
console.log(response.data);Returns: result (string)
Stop real-time transcription.
POST /calls/{call_control_id}/actions/transcription_stop
Optional: client_state (string), command_id (string)
const response = await client.calls.actions.stopTranscription('v3:550e8400-e29b-41d4-a716-446655440000_gRU1OGRkYQ');
console.log(response.data);Returns: result (string)
Telnyx signs webhooks with Ed25519. Each request includes telnyx-signature-ed25519
and telnyx-timestamp headers. Always verify signatures in production:
// In your webhook handler (e.g., Express — use raw body, not parsed JSON):
app.post('/webhooks', express.raw({ type: 'application/json' }), async (req, res) => {
try {
const event = await client.webhooks.unwrap(req.body.toString(), {
headers: req.headers,
});
// Signature valid — event is the parsed webhook payload
console.log('Received event:', event.data.event_type);
res.status(200).send('OK');
} catch (err) {
console.error('Webhook verification failed:', err.message);
res.status(400).send('Invalid signature');
}
});The following webhook events are sent to your configured webhook URL.
All webhooks include telnyx-timestamp and telnyx-signature-ed25519 headers for Ed25519 signature verification. Use client.webhooks.unwrap() to verify.
| Event | Description |
|---|---|
callForkStarted | Call Fork Started |
callForkStopped | Call Fork Stopped |
callStreamingFailed | Call Streaming Failed |
callStreamingStarted | Call Streaming Started |
callStreamingStopped | Call Streaming Stopped |
transcription | Transcription |
callForkStarted
| Field | Type | Description |
|---|---|---|
data.record_type | enum: event | Identifies the type of the resource. |
data.event_type | enum: call.fork.started | The type of event being delivered. |
data.id | uuid | Identifies the type of resource. |
data.occurred_at | date-time | ISO 8601 datetime of when the event occurred. |
data.payload.connection_id | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |
data.payload.call_control_id | string | Unique ID for controlling the call. |
data.payload.call_leg_id | string | ID that is unique to the call and can be used to correlate webhook events. |
data.payload.call_session_id | string | ID that is unique to the call session and can be used to correlate webhook events. |
data.payload.client_state | string | State received from a command. |
data.payload.stream_type | enum: decrypted | Type of media streamed. |
callForkStopped
| Field | Type | Description |
|---|---|---|
data.record_type | enum: event | Identifies the type of the resource. |
data.event_type | enum: call.fork.stopped | The type of event being delivered. |
data.id | uuid | Identifies the type of resource. |
data.occurred_at | date-time | ISO 8601 datetime of when the event occurred. |
data.payload.connection_id | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |
data.payload.call_control_id | string | Unique ID for controlling the call. |
data.payload.call_leg_id | string | ID that is unique to the call and can be used to correlate webhook events. |
data.payload.call_session_id | string | ID that is unique to the call session and can be used to correlate webhook events. |
data.payload.client_state | string | State received from a command. |
data.payload.stream_type | enum: decrypted | Type of media streamed. |
callStreamingFailed
| Field | Type | Description |
|---|---|---|
data.record_type | enum: event | Identifies the resource. |
data.event_type | enum: streaming.failed | The type of event being delivered. |
data.id | uuid | Identifies the type of resource. |
data.occurred_at | date-time | ISO 8601 datetime of when the event occurred. |
data.payload.call_control_id | string | Call ID used to issue commands via Call Control API. |
data.payload.connection_id | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |
data.payload.call_leg_id | string | ID that is unique to the call and can be used to correlate webhook events. |
data.payload.call_session_id | string | ID that is unique to the call session and can be used to correlate webhook events. |
data.payload.client_state | string | State received from a command. |
data.payload.failure_reason | string | A short description explaning why the media streaming failed. |
data.payload.stream_id | uuid | Identifies the streaming. |
data.payload.stream_type | enum: websocket, dialogflow | The type of stream connection the stream is performing. |
callStreamingStarted
| Field | Type | Description |
|---|---|---|
data.record_type | enum: event | Identifies the type of the resource. |
data.event_type | enum: streaming.started | The type of event being delivered. |
data.id | uuid | Identifies the type of resource. |
data.occurred_at | date-time | ISO 8601 datetime of when the event occurred. |
data.payload.call_control_id | string | Call ID used to issue commands via Call Control API. |
data.payload.connection_id | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |
data.payload.call_leg_id | string | ID that is unique to the call and can be used to correlate webhook events. |
data.payload.call_session_id | string | ID that is unique to the call session and can be used to correlate webhook events. |
data.payload.client_state | string | State received from a command. |
data.payload.stream_url | string | Destination WebSocket address where the stream is going to be delivered. |
callStreamingStopped
| Field | Type | Description |
|---|---|---|
data.record_type | enum: event | Identifies the type of the resource. |
data.event_type | enum: streaming.stopped | The type of event being delivered. |
data.id | uuid | Identifies the type of resource. |
data.occurred_at | date-time | ISO 8601 datetime of when the event occurred. |
data.payload.call_control_id | string | Call ID used to issue commands via Call Control API. |
data.payload.connection_id | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |
data.payload.call_leg_id | string | ID that is unique to the call and can be used to correlate webhook events. |
data.payload.call_session_id | string | ID that is unique to the call session and can be used to correlate webhook events. |
data.payload.client_state | string | State received from a command. |
data.payload.stream_url | string | Destination WebSocket address where the stream is going to be delivered. |
transcription
| Field | Type | Description |
|---|---|---|
data.record_type | enum: event | Identifies the type of the resource. |
data.event_type | enum: call.transcription | The type of event being delivered. |
data.id | uuid | Identifies the type of resource. |
data.occurred_at | date-time | ISO 8601 datetime of when the event occurred. |
data.payload.call_control_id | string | Unique identifier and token for controlling the call. |
data.payload.call_leg_id | string | ID that is unique to the call and can be used to correlate webhook events. |
data.payload.call_session_id | string | ID that is unique to the call session and can be used to correlate webhook events. |
data.payload.client_state | string | Use this field to add state to every subsequent webhook. |
data.payload.connection_id | string | Call Control App ID (formerly Telnyx connection ID) used in the call. |
© team-telnyx, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/telnyx-voice-streaming-javascript of team-telnyx/ai.
Open the folder on GitHubat commit 4d2ace0
Telnyx Voice Streaming Javascript 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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Telnyx Voice Streaming Javascript this skillteam-telnyx/ai | 220 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Gemini Live API Devgoogle-gemini/gemini-skills | 4.3k | — | ~4.6k | Automated safety check: Pass | Apache-2.0 | |
| Deepgram JS Audio Intelligencedeepgram/deepgram-js-sdk | 276 | — | ~1.5k | Automated safety check: Pass | MIT | |
| Deepgram JS Speech To Textdeepgram/deepgram-js-sdk | 276 | — | ~1.8k | Automated safety check: Pass | MIT | |
| Speech Engineelevenlabs/skills | 481 | — | ~2.5k | Automated safety check: Warn | MIT | |
| Meetingsbutterbase-ai/butterbase-skills | 534 | — | ~1.6k | Automated safety check: Pass | MIT |
google-gemini/gemini-skills
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.
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…
deepgram/deepgram-js-sdk
A skill your agent uses when writing or reviewing JavaScript/TypeScript in this repo that calls Deepgram Speech-to-Text v1 (/v1/listen) for prerecorded or live audio transcription.
elevenlabs/skills
Add real-time voice conversations to a custom agent runtime with ElevenLabs Speech Engine.
butterbase-ai/butterbase-skills
A skill your agent uses when building features that join, record, or transcribe Zoom/Meet/Teams/Webex calls — meeting bots, call notetakers, sales-call summarizers, interview transcribers.
Microck/ordinary-claude-skills
Complete API integration guide for Shopify including GraphQL Admin API, REST Admin API, Storefront API, Ajax API, OAuth authentication, rate limiting, and webhooks.
team-telnyx/ai
Test VoIP push notifications for Telnyx WebRTC iOS (APNs) and Android (FCM) apps.
team-telnyx/ai
Manage email suppressions (blocks), import and export suppression lists, and manage unsubscribe groups.
team-telnyx/ai
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK.
team-telnyx/ai
End-to-end setup for making a Telnyx AI assistant call a phone number.
team-telnyx/ai
Manage email inboxes, list and search inbound messages, threads, sender filters, and reply to or forward messages.
team-telnyx/ai
A skill your agent uses when an agent must join, observe, react in, transcribe, summarize, or follow up on a Zoom, Google Meet, Microsoft Teams, or Webex meeting with Telnyx Meeting Bot.
Works with
Categories
Stream call audio in real-time, fork media to external destinations, and transcribe speech live. Telnyx Voice Streaming Javascript is an agent skill from team-telnyx/ai. Stream call audio in real-time, fork media to external destinations, and transcribe speech live.
Telnyx Voice Streaming Javascript fits situations like: real-time analytics and AI integrations; tasks that involve Transcription; tasks that involve Webhooks.
Run `npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a claude-code`. Or copy the skill folder (skills/telnyx-voice-streaming-javascript in team-telnyx/ai) into .claude/skills/telnyx-voice-streaming-javascript in your project. Claude Code loads it when a task matches its description.
Run `npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a codex`. Or copy the skill folder (skills/telnyx-voice-streaming-javascript in team-telnyx/ai) into .agents/skills/telnyx-voice-streaming-javascript in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add team-telnyx/ai --skill telnyx-voice-streaming-javascript -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/telnyx-voice-streaming-javascript, .gemini/skills/telnyx-voice-streaming-javascript, .github/skills/telnyx-voice-streaming-javascript and .opencode/skills/telnyx-voice-streaming-javascript in your project.
Going by SKILL.md and its folder, Telnyx Voice Streaming Javascript needs the command-line tools its instructions call (npm) and credentials named TELNYX_API_KEY. Our summary lists: Node.js; A credential in TELNYX_API_KEY.
SKILL.md names 1 domain. As links in the text: developers.telnyx.com. This is read from the text; nothing was executed.
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.
Telnyx Voice Streaming Javascript is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Telnyx Voice Streaming Javascript: Gemini Live API Dev (google-gemini/gemini-skills, 4.3k stars), Deepgram JS Audio Intelligence (deepgram/deepgram-js-sdk, 276 stars), Deepgram JS Speech To Text (deepgram/deepgram-js-sdk, 276 stars) and Speech Engine (elevenlabs/skills, 481 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
team-telnyx (a GitHub organization) maintains it in team-telnyx/ai, which has 220 GitHub stars. The repository holds 26 skills in this directory. The repository was last updated on October 5, 2026.
Source: team-telnyx/ai on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.