Telnyx Cli

Telnyx API integration for Clawdbot. Send SMS/email/WhatsApp messages, manage phone numbers, query call logs, debug webhooks, and access your Telnyx account....

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 657 · 0 current installs · 0 all-time installs
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The skill's stated purpose (wrap the Telnyx CLI) matches the required binary and example commands. However the SKILL.md also instructs automatic handoff to companion skills that create API keys and perform account upgrades (telnyx-bot-signup, telnyx-freemium-upgrade). Generating API keys on the user's behalf and writing them to disk is outside the narrow scope of a CLI wrapper and isn't justified by the simple purpose description.
!
Instruction Scope
Runtime instructions include installing a global npm package, running 'telnyx auth setup', and an explicit automated flow to call a 'bot_signup' endpoint to generate API keys. The doc even instructs 'Do NOT ask whether the user has an account' — this gives the agent wide discretion to trigger account creation/sign-in and write credentials to ~/.config/telnyx/config.json without a clear consent/confirmation step.
Install Mechanism
No formal install spec is declared (instruction-only), but SKILL.md and setup.sh instruct npm install -g @telnyx/api-cli. That's a common, moderately-privileged operation (global npm install) and expected for a CLI integration, but it requires network access and may require elevated permissions on some systems.
Credentials
The skill does not request environment variables or other service credentials directly (declares none). It does, however, instruct storing an API key in ~/.config/telnyx/config.json and relies on companion skills to create that key. Requesting no env vars is consistent, but delegating API-key creation to an external handoff increases the surface for credential creation/exfiltration and should be reviewed.
Persistence & Privilege
The skill does not request always:true, does not modify other skill configs, and only writes to per-user config paths (~/.config/telnyx). These behaviors are typical for a CLI helper. The automatic handoff behavior increases the attack surface only insofar as companion skills are invoked.
What to consider before installing
This skill looks like a straightforward Telnyx CLI helper, but it also includes an automated account/signup flow that will generate and store API keys on the user's behalf via companion skills. Before installing or running: 1) Don't run setup.sh blindly — inspect it (it runs npm install -g and telnyx auth setup). 2) Ask the skill author what the 'telnyx-bot-signup' endpoint is, where it runs, and review its source before allowing any handoff that will generate API keys. 3) Prefer creating your Telnyx API key yourself via the Telnyx portal and only use the CLI with your own key. 4) If you do allow automated signup, ensure the resulting ~/.config/telnyx/config.json file is permissioned securely and confirm the exact flow (where magic links are sent and what third parties are involved). Because the companion/account-creation behavior expands the skill's scope beyond a simple CLI wrapper, treat it with caution and verify companion skill code and endpoints first.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.1.0
Download zip
latestvk976231v5dept0zt0wj13c17mn81f8be

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

📞 Clawdis
Binstelnyx

SKILL.md

Telnyx CLI

Telnyx API integration for Clawdbot: messaging, phone numbers, webhooks, and account management.

Setup

1. Install CLI

npm install -g @telnyx/api-cli

2. Configure API Key

telnyx auth setup

Paste your API key from: https://portal.telnyx.com/#/app/api-keys

Saves to ~/.config/telnyx/config.json (persistent).

3. Verify

telnyx number list

Commands

CategoryCommandDescription
Messagingtelnyx message sendSend SMS/email/WhatsApp
telnyx message listList messages
telnyx message getGet message status
Phone Numberstelnyx number listYour phone numbers
telnyx number searchSearch available numbers
telnyx number buyPurchase a number
telnyx number releaseRelease a number
Callstelnyx call listView calls
telnyx call getGet call details
Webhookstelnyx webhook listList webhooks
telnyx debugger listView webhook events
telnyx debugger retryRetry failed webhooks
Accounttelnyx account getAccount info & balance

Usage

Messaging

# Send SMS
telnyx message send --from +15551234567 --to +15559876543 --text "Hello!"

# List messages
telnyx message list

# Get status
telnyx message get MESSAGE_ID

Phone Numbers

# List
telnyx number list

# Search
telnyx number search --country US --npa 415

# Buy
telnyx number buy --number "+15551234567"

# Release
telnyx number release "+15551234567"

Webhooks & Debugging

# List webhooks
telnyx webhook list

# View failed deliveries
telnyx debugger list --status failed

# Retry failed
telnyx debugger retry EVENT_ID

Account

# Account info
telnyx account get

# Check balance
telnyx account get --output json | jq '.balance'

Output Formats

# Table (default)
telnyx number list

# JSON
telnyx number list --output json

# CSV
telnyx number list --output csv

Examples

Bulk Messaging

#!/bin/bash
while read phone; do
  telnyx message send --from +15551234567 --to "$phone" --text "Hello!"
  sleep 1  # Rate limiting
done < recipients.txt

Monitor Webhooks

#!/bin/bash
while true; do
  FAILED=$(telnyx debugger list --status failed --output json | jq '.data | length')
  [ "$FAILED" -gt 0 ] && echo "⚠️  $FAILED failed webhooks"
  sleep 300
done

Export Data

# CSV export
telnyx call list --limit 1000 --output csv > calls.csv

# JSON export
telnyx number list --output json > numbers.json

Tips

  • Rate limit: 100 req/s — add sleep 1 for bulk operations
  • Use --output json or --output csv to change format
  • Get help: telnyx COMMAND --help (e.g., telnyx message --help)
  • API Key location: ~/.config/telnyx/config.json

Integration with Clawdbot

# In cron jobs
0 9 * * * telnyx call list --limit 10 > /tmp/daily-calls.txt

# In heartbeat
telnyx debugger list --status failed

# In scripts
BALANCE=$(telnyx account get --output json | jq '.balance')
echo "Balance: $BALANCE"

Companion Skills

This skill is the primary Telnyx interface. Two companion skills handle account lifecycle steps that this skill cannot:

SkillPurposeInstall
telnyx-bot-signupCreate a new account OR sign into an existing one (generates API key)clawhub install telnyx-bot-signup
telnyx-freemium-upgradeUpgrade freemium account to professional tierclawhub install telnyx-freemium-upgrade

Note: telnyx-bot-signup handles both signup and signin. The bot_signup endpoint accepts both new and existing emails — it sends a magic sign-in link either way. The flow is identical: PoW challenge → email → magic link → session token → API key.

Pre-flight: Before Any Telnyx Operation

Before executing a Telnyx CLI command, run through this checklist:

1. Is `telnyx` CLI installed?
   NO  → npm install -g @telnyx/api-cli

2. Does ~/.config/telnyx/config.json exist with an api_key?
   NO  → Hand off to **telnyx-bot-signup** (see below)
         Works for both new AND existing accounts.

3. Does `telnyx account get` succeed?
   NO (401 auth error)  → API key is invalid/expired.
                           Hand off to **telnyx-bot-signup** to generate a fresh key.
   NO (network error)   → Check connectivity.
   YES                  → Proceed with the requested operation.

When to Hand Off to telnyx-bot-signup

Hand off to the telnyx-bot-signup skill when ANY of these are true:

  • No API key exists (~/.config/telnyx/config.json missing or empty, no TELNYX_API_KEY env var)
  • API key exists but telnyx account get returns 401 (key invalid/expired/revoked)
  • User says they lost their API key or can't access the portal
  • User wants to create a new Telnyx account

Do NOT ask whether the user has an account or not. The bot_signup endpoint handles both cases transparently — just ask for their email and proceed.

What telnyx-bot-signup does: PoW challenge → submit email → magic sign-in link sent to email → session token → POST /v2/api_keys → fresh API key. Works identically for new and existing accounts.

After signup/signin completes:

  1. Store the returned API key:
    mkdir -p ~/.config/telnyx
    echo '{"api_key":"<KEY_FROM_SIGNUP>"}' > ~/.config/telnyx/config.json
    
  2. Also export it for the current session:
    export TELNYX_API_KEY="<KEY_FROM_SIGNUP>"
    
  3. If the account is new, it starts on freemium tier. Return here and proceed with the original operation. If it hits a freemium wall, the upgrade flow below will trigger automatically.

When to Hand Off to telnyx-freemium-upgrade

Hand off to the telnyx-freemium-upgrade skill when a CLI command fails with a freemium restriction. Detect these scenarios:

TriggerHow you see itExample
Error 10039SMS send fails: "destination not verified"telnyx message send --to +39... --text "test"
Error D60Voice call fails: "destination not verified"Outbound call to unverified number
Error 10038Feature blocked: "not available on current plan"Porting, short codes, SIM, managed accounts
Number limit hitSecond telnyx number buy failsAlready have 1 number (freemium max)
Cannot add fundsBalance top-up or payment method rejectedFreemium accounts cannot add balance
Account inactive/deactivatedAccount shows deactivated due to $0 balancetelnyx account get shows inactive status

Also trigger proactively when the user's intent clearly requires professional tier before even making the API call:

User saysWhy it needs upgrade
"Send SMS to +39..." (international)Unverified destination (10039)
"Port my number from AT&T"Porting blocked on freemium (10038)
"Buy 5 phone numbers"1 number limit on freemium
"Set up a SIP trunk"SIP blocked on freemium (10038)
"Create a managed account"Managed accounts blocked (10038)
"Add $50 to my balance"Freemium can't add funds

Before handing off, check if the upgrade was already attempted:

1. Read ~/.telnyx/upgrade.json (cache from the upgrade skill)

2. If decision == "APPROVED"
   → Account is already upgraded. Do NOT hand off.
     Retry the operation directly. If it still fails, the API key
     may need to be refreshed: telnyx auth setup

3. If decision == "REJECTED" and used_methods includes "github_oauth"
   → GitHub method exhausted. Do NOT hand off.
     Tell the user: "Your upgrade was not approved. Contact
     support at https://support.telnyx.com or try LinkedIn
     verification when available."

4. If decision == "PASS_TO_HUMAN"
   → Under manual review. Do NOT hand off.
     Tell the user: "Your upgrade is under review. I'll check
     back periodically." (The upgrade skill's cron job handles this.)

5. If no cache or status is "failed" / "polling_timeout"
   → Hand off to **telnyx-freemium-upgrade**.

After upgrade completes (APPROVED):

  1. Retry the original operation that triggered the upgrade.

  2. If the retry still fails with the same error, the API key needs to be refreshed to pick up professional-tier permissions. Use telnyx-bot-signup to generate a fresh key (same email, sign-in flow) — this is easier than asking the user to visit the portal.

Full Lifecycle Flow

User: "Send SMS to +393406879636"
│
├── telnyx CLI installed? ──NO──→ npm install -g @telnyx/api-cli
│
├── API key configured? ──NO──→ **telnyx-bot-signup** (ask for email)
│                                 → PoW → magic link → API key
│                                 → Store key → continue
│
├── API key valid? (`telnyx account get`)
│   └── NO (401) → **telnyx-bot-signup** (ask for email)
│                   → PoW → magic link → fresh API key
│                   → Store key → continue
│
├── telnyx message send --from ... --to +39... --text "..."
│   │
│   ├── Success → Done
│   │
│   └── Error 10039 (destination not verified)
│       │
│       ├── Check upgrade cache (~/.telnyx/upgrade.json)
│       │   ├── APPROVED → Retry (key may need refresh)
│       │   ├── REJECTED → Inform user, suggest support
│       │   ├── PASS_TO_HUMAN → Inform user, wait for review
│       │   └── No cache / failed → Continue to upgrade
│       │
│       └── **telnyx-freemium-upgrade** → GitHub verification → poll
│           │
│           ├── APPROVED → retry SMS (key may need refresh via bot-signup)
│           ├── REJECTED → Inform user
│           └── PASS_TO_HUMAN → Cron job polls, notify on resolution

Companion Skill Not Installed

If you need to hand off but the companion skill is not installed:

telnyx-bot-signup missing:

I need to set up your Telnyx API key. Install the signup/signin skill:

clawhub install telnyx-bot-signup

Or get your API key manually from https://portal.telnyx.com/#/app/api-keys and run telnyx auth setup

telnyx-freemium-upgrade missing:

Your account is on the freemium tier, which doesn't support this operation. Install the upgrade skill:

clawhub install telnyx-freemium-upgrade

Or upgrade manually via https://portal.telnyx.com/#/account/account-levels/upgrade


Troubleshooting

CLI not found

npm install -g @telnyx/api-cli

API key not configured

# Reconfigure
telnyx auth setup

# Or check existing config
cat ~/.config/telnyx/config.json

Connection issues

# Test connection
telnyx account get

Resources

Files

6 total
Select a file
Select a file to preview.

Comments

Loading comments…