Rnn Codebase
wix/react-native-navigation
Navigate and work with the react-native-navigation (RNN) codebase.
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK.
$ npx skills add team-telnyx/ai --skill telnyx-webrtc-client-react-native -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install team-telnyx/ai telnyx-webrtc-client-react-native --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-webrtc-client-react-native .claude/skills/telnyx-webrtc-client-react-native && 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-webrtc-client-react-native" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-client-react-native into .claude/skills/telnyx-webrtc-client-react-native/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-webrtc-client-react-native", 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-webrtc-client-react-nativeType 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-webrtc-client-react-native -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install team-telnyx/ai telnyx-webrtc-client-react-native --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-webrtc-client-react-native .agents/skills/telnyx-webrtc-client-react-native && 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-webrtc-client-react-native" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-client-react-native into .agents/skills/telnyx-webrtc-client-react-native/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-webrtc-client-react-native", 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-webrtc-client-react-native -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install team-telnyx/ai telnyx-webrtc-client-react-native --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-webrtc-client-react-native .cursor/skills/telnyx-webrtc-client-react-native && 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-webrtc-client-react-native" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-client-react-native into .cursor/skills/telnyx-webrtc-client-react-native/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-webrtc-client-react-native", 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-webrtc-client-react-native--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-webrtc-client-react-native -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install team-telnyx/ai telnyx-webrtc-client-react-native --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-webrtc-client-react-native .gemini/skills/telnyx-webrtc-client-react-native && 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-webrtc-client-react-native" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-client-react-native into .gemini/skills/telnyx-webrtc-client-react-native/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-webrtc-client-react-native", 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-webrtc-client-react-nativeInstalls 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-webrtc-client-react-native -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-webrtc-client-react-native .github/skills/telnyx-webrtc-client-react-native && 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-webrtc-client-react-native" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-client-react-native into .github/skills/telnyx-webrtc-client-react-native/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-webrtc-client-react-native", 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-webrtc-client-react-native -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-webrtc-client-react-native --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-webrtc-client-react-native .opencode/skills/telnyx-webrtc-client-react-native && 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-webrtc-client-react-native" agent skill from https://github.com/team-telnyx/ai/tree/main/skills/telnyx-webrtc-client-react-native into .opencode/skills/telnyx-webrtc-client-react-native/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "telnyx-webrtc-client-react-native", 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-webrtc-client-react-nativeBuild cross-platform VoIP calling apps with React Native using Telnyx Voice SDK.
Telnyx Webrtc Client React Native is an agent skill from team-telnyx/ai. Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. High-level reactive API with automatic lifecycle management, CallKit/ConnectionService integration, and push notifications. Use for mobile VoIP apps with minimal setup.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/webrtc-server-api.md`).
It sits in Mobile, covering Cross-platform mobile apps. It works with React Native, Android and iOS. The repository describes itself as: Official one-stop shop for AI Agents and developers building with Telnyx. The licence is MIT.
3 steps, taken from the step headings in SKILL.md.
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.
No URLs in SKILL.md. Its commands use npm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Telnyx Webrtc Client React Native loads about 3.2k tokens when it runs, and up to ~4.7k if it reads all its reference files. Until then it costs about 71 tokens; SKILL.md has 748 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). 748 words, ~3,189 tokens.
.claude/skills/telnyx-webrtc-client-react-native/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Build real-time voice communication into React Native apps (Android & iOS) using the @telnyx/react-voice-commons-sdk library.
Prerequisites: Create WebRTC credentials and generate a login token using the Telnyx server-side SDK. See the
telnyx-webrtc-*skill in your server language plugin (e.g.,telnyx-python,telnyx-javascript).
npm install @telnyx/react-voice-commons-sdkimport { TelnyxVoiceApp, createTelnyxVoipClient } from '@telnyx/react-voice-commons-sdk';
// Create VoIP client instance
const voipClient = createTelnyxVoipClient({
enableAppStateManagement: true, // Auto background/foreground handling
debug: true, // Enable logging
});
export default function App() {
return (
<TelnyxVoiceApp
voipClient={voipClient}
enableAutoReconnect={false}
debug={true}
>
<YourAppContent />
</TelnyxVoiceApp>
);
}import { createCredentialConfig } from '@telnyx/react-voice-commons-sdk';
const config = createCredentialConfig('sip_username', 'sip_password', {
debug: true,
pushNotificationDeviceToken: 'your_device_token',
});
await voipClient.login(config);import { createTokenConfig } from '@telnyx/react-voice-commons-sdk';
const config = createTokenConfig('your_jwt_token', {
debug: true,
pushNotificationDeviceToken: 'your_device_token',
});
await voipClient.loginWithToken(config);The library automatically stores credentials for seamless reconnection:
// Automatically reconnects using stored credentials
const success = await voipClient.loginFromStoredConfig();
if (!success) {
// No stored auth, show login UI
}import { useEffect, useState } from 'react';
function CallScreen() {
const [connectionState, setConnectionState] = useState(null);
const [calls, setCalls] = useState([]);
useEffect(() => {
// Subscribe to connection state
const connSub = voipClient.connectionState$.subscribe((state) => {
setConnectionState(state);
});
// Subscribe to active calls
const callsSub = voipClient.calls$.subscribe((activeCalls) => {
setCalls(activeCalls);
});
return () => {
connSub.unsubscribe();
callsSub.unsubscribe();
};
}, []);
return (/* UI */);
}useEffect(() => {
if (call) {
const sub = call.callState$.subscribe((state) => {
console.log('Call state:', state);
});
return () => sub.unsubscribe();
}
}, [call]);const call = await voipClient.newCall('+18004377950');Incoming calls are handled automatically via push notifications and the TelnyxVoiceApp wrapper. The native call UI (CallKit/ConnectionService) is displayed automatically.
// Answer incoming call
await call.answer();
// Mute/Unmute
await call.mute();
await call.unmute();
// Hold/Unhold
await call.hold();
await call.unhold();
// End call
await call.hangup();
// Send DTMF
await call.dtmf('1');google-services.json in project root// MainActivity.kt
import com.telnyx.react_voice_commons.TelnyxMainActivity
class MainActivity : TelnyxMainActivity() {
override fun onHandleIntent(intent: Intent) {
super.onHandleIntent(intent)
// Additional intent processing
}
}// index.js or App.tsx
import messaging from '@react-native-firebase/messaging';
import { TelnyxVoiceApp } from '@telnyx/react-voice-commons-sdk';
messaging().setBackgroundMessageHandler(async (remoteMessage) => {
await TelnyxVoiceApp.handleBackgroundPush(remoteMessage.data);
});// AppDelegate.swift
import PushKit
import TelnyxVoiceCommons
@UIApplicationMain
public class AppDelegate: ExpoAppDelegate, PKPushRegistryDelegate {
public override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
) -> Bool {
// Initialize VoIP push registration
TelnyxVoipPushHandler.initializeVoipRegistration()
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
// VoIP Push Token Update
public func pushRegistry(_ registry: PKPushRegistry,
didUpdate pushCredentials: PKPushCredentials,
for type: PKPushType) {
TelnyxVoipPushHandler.shared.handleVoipTokenUpdate(pushCredentials, type: type)
}
// VoIP Push Received
public func pushRegistry(_ registry: PKPushRegistry,
didReceiveIncomingPushWith payload: PKPushPayload,
for type: PKPushType,
completion: @escaping () -> Void) {
TelnyxVoipPushHandler.shared.handleVoipPush(payload, type: type, completion: completion)
}
}Note: CallKit integration is automatically handled by the internal CallBridge component.
| Option | Type | Default | Description |
|---|---|---|---|
enableAppStateManagement | boolean | true | Auto background/foreground handling |
debug | boolean | false | Enable debug logging |
| Prop | Type | Description |
|---|---|---|
voipClient | TelnyxVoipClient | The VoIP client instance |
enableAutoReconnect | boolean | Auto-reconnect on disconnect |
debug | boolean | Enable debug logging |
The library manages these AsyncStorage keys internally:
@telnyx_username - SIP username@telnyx_password - SIP password@credential_token - JWT token@push_token - Push notification tokenYou don't need to manage these manually.
| Issue | Solution |
|---|---|
| Double login | Don't call login() manually when using TelnyxVoiceApp with auto-reconnect |
| Background disconnect | Check enableAutoReconnect setting |
| Android push not working | Verify google-services.json and MainActivity extends TelnyxMainActivity |
| iOS push not working | Ensure AppDelegate implements PKPushRegistryDelegate and calls TelnyxVoipPushHandler |
| Memory leaks | Unsubscribe from RxJS observables in useEffect cleanup |
| Audio issues | iOS audio handled by CallBridge; Android check ConnectionService |
import AsyncStorage from '@react-native-async-storage/async-storage';
await AsyncStorage.multiRemove([
'@telnyx_username',
'@telnyx_password',
'@credential_token',
'@push_token',
]);<!-- BEGIN AUTO-GENERATED API REFERENCE -- do not edit below this line -->
references/webrtc-server-api.md has the server-side WebRTC API — credential creation, token generation, and push notification setup. You MUST read it when setting up authentication or push notifications.
The main public interface for the react-voice-commons module.
This class serves as the Façade for the entire module, providing a simplified API that completely hides the underlying complexity. It is the sole entry point for developers using the react-voice-commons package.
The TelnyxVoipClient is designed to be state-management agnostic, exposing all observable state via RxJS streams. This allows developers to integrate it into their chosen state management solution naturally.
login(
config):Promise<void>
A Promise that completes when the connection attempt is initiated
loginWithToken(
config):Promise<void>
A Promise that completes when the connection attempt is initiated
logout():
Promise<void>
loginFromStoredConfig():
Promise<boolean>
newCall(
destination,callerName?,callerNumber?,customHeaders?):Promise<Call>
The destination number or SIP URI to call
Optional caller name to display
Optional caller ID number
Optional custom headers to include with the call
A Promise that completes with the Call object once the invitation has been sent
handlePushNotification(
payload):Promise<void>
The push notification payload
disablePushNotifications():
void
setCallConnecting(
callId):void
The ID of the call to set to connecting state
findCallByTelnyxCall(
telnyxCall):Call
The Telnyx call object to find
queueAnswerFromCallKit(
customHeaders):void
Optional custom headers to include with the answer
queueEndFromCallKit():
void
dispose():
void
Represents a call with reactive state streams.
This class wraps the underlying Telnyx Call object and provides reactive streams for all call state changes, making it easy to integrate with any state management solution.
answer(
customHeaders?):Promise<void>
Optional custom headers to include with the answer
hangup(
customHeaders?):Promise<void>
Optional custom headers to include with the hangup request
hold():
Promise<void>
resume():
Promise<void>
mute():
Promise<void>
unmute():
Promise<void>
toggleMute():
Promise<void>
setConnecting():
void
dispose():
void
Represents the state of a call in the Telnyx system.
This enum provides a simplified view of call states, abstracting away the complexity of the underlying SIP call states.
RINGING:
"RINGING"
CONNECTING:
"CONNECTING"
ACTIVE:
"ACTIVE"
HELD:
"HELD"
ENDED:
"ENDED"
FAILED:
"FAILED"
DROPPED:
"DROPPED"
Represents the connection state to the Telnyx platform.
This enum provides a simplified view of the connection status, abstracting away the complexity of the underlying WebSocket states.
DISCONNECTED:
"DISCONNECTED"
CONNECTING:
"CONNECTING"
CONNECTED:
"CONNECTED"
RECONNECTING:
"RECONNECTING"
ERROR:
"ERROR"
<!-- END AUTO-GENERATED API REFERENCE -->
© 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
SKILL.md and 1 other file (references) in skills/telnyx-webrtc-client-react-native of team-telnyx/ai.
Open the folder on GitHubat commit 4d2ace0
Telnyx Webrtc Client React Native 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 Webrtc Client React Native this skillteam-telnyx/ai | 220 | — | ~3.2k | Automated safety check: Pass | MIT | |
| Rnn Codebasewix/react-native-navigation | 13k | — | ~2k | Automated safety check: Pass | MIT | |
| Expo Tailwind SetupCherryHQ/cherry-studio-app | 4k | 8 repos | ~3k | Automated safety check: Pass | MIT | |
| Screenmapaleqsio/screenmap | 243 | — | ~7.2k | Automated safety check: Pass | MIT | |
| Expo Brownfield Integrationmweinbach/agent-coworker | 156 | 2 repos | ~900 | Automated safety check: Notes | Custom licence | |
| Agent Devicegronxb/hot-updater | 1.8k | — | ~3.9k | Automated safety check: Pass | Custom licence |
wix/react-native-navigation
Navigate and work with the react-native-navigation (RNN) codebase.
CherryHQ/cherry-studio-app
Set up Tailwind CSS v4 in Expo with react-native-css and NativeWind v5 for universal styling
aleqsio/screenmap
Generate a visual navigation map of an Expo / React Native or NativeScript app.
mweinbach/agent-coworker
Helps add Expo and React Native to an existing native iOS or Android app, and choose between a prebuilt AAR or XCFramework and a fully integrated build.
gronxb/hot-updater
Automates interactions for iOS simulators/devices and Android emulators/devices.
hyochan/react-native-nitro-sound
Build and run repeatable react-native-nitro-sound recorder/player regression tests on an iOS Simulator or Android emulator, with explicit virtual-device selection, microphone permission, Maestro…
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
Send and receive SMS/MMS, handle opt-outs and delivery webhooks.
team-telnyx/ai
End-to-end setup for making a Telnyx AI assistant call a phone number.
team-telnyx/ai
Send transactional email, batch sends, scheduled delivery, templates, email validation, and track delivery events.
team-telnyx/ai
Manage email inboxes, list and search inbound messages, threads, sender filters, and reply to or forward messages.
Works with
Categories
Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK. Telnyx Webrtc Client React Native is an agent skill from team-telnyx/ai. Build cross-platform VoIP calling apps with React Native using Telnyx Voice SDK.
Telnyx Webrtc Client React Native fits situations like: mobile VoIP apps with minimal setup; tasks that involve Cross-platform mobile apps.
Run `npx skills add team-telnyx/ai --skill telnyx-webrtc-client-react-native -a claude-code`. Or copy the skill folder (skills/telnyx-webrtc-client-react-native in team-telnyx/ai) into .claude/skills/telnyx-webrtc-client-react-native in your project. Claude Code loads it when a task matches its description.
Run `npx skills add team-telnyx/ai --skill telnyx-webrtc-client-react-native -a codex`. Or copy the skill folder (skills/telnyx-webrtc-client-react-native in team-telnyx/ai) into .agents/skills/telnyx-webrtc-client-react-native 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-webrtc-client-react-native -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-webrtc-client-react-native, .gemini/skills/telnyx-webrtc-client-react-native, .github/skills/telnyx-webrtc-client-react-native and .opencode/skills/telnyx-webrtc-client-react-native in your project.
Going by SKILL.md and its folder, Telnyx Webrtc Client React Native needs the command-line tools its instructions call (npm). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm, which can reach the network depending on how they are called. 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 Webrtc Client React Native 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.2k 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. Its references folder adds about 1.5k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Telnyx Webrtc Client React Native: Rnn Codebase (wix/react-native-navigation, 13k stars), Expo Tailwind Setup (CherryHQ/cherry-studio-app, 4k stars), Screenmap (aleqsio/screenmap, 243 stars) and Expo Brownfield Integration (mweinbach/agent-coworker, 156 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 11 skills in this directory. The repository was last updated on October 8, 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.