{
  "schemaVersion": "1.0",
  "item": {
    "slug": "telnyx-cli",
    "name": "Telnyx Cli",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/teamtelnyx/telnyx-cli",
    "canonicalUrl": "https://clawhub.ai/teamtelnyx/telnyx-cli",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/telnyx-cli",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=telnyx-cli",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "CHANGELOG.md",
      "README.md",
      "SKILL.md",
      "config.json",
      "setup.sh",
      "test.sh"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/telnyx-cli"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/telnyx-cli",
    "agentPageUrl": "https://openagent3.xyz/skills/telnyx-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/telnyx-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/telnyx-cli/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Then review README.md for any prerequisites, environment setup, or post-install checks. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Telnyx CLI",
        "body": "Telnyx API integration for Clawdbot: messaging, phone numbers, webhooks, and account management."
      },
      {
        "title": "1. Install CLI",
        "body": "npm install -g @telnyx/api-cli"
      },
      {
        "title": "2. Configure API Key",
        "body": "telnyx auth setup\n\nPaste your API key from: https://portal.telnyx.com/#/app/api-keys\n\nSaves to ~/.config/telnyx/config.json (persistent)."
      },
      {
        "title": "3. Verify",
        "body": "telnyx number list"
      },
      {
        "title": "Commands",
        "body": "CategoryCommandDescriptionMessagingtelnyx message sendSend SMS/email/WhatsApptelnyx message listList messagestelnyx message getGet message statusPhone Numberstelnyx number listYour phone numberstelnyx number searchSearch available numberstelnyx number buyPurchase a numbertelnyx number releaseRelease a numberCallstelnyx call listView callstelnyx call getGet call detailsWebhookstelnyx webhook listList webhookstelnyx debugger listView webhook eventstelnyx debugger retryRetry failed webhooksAccounttelnyx account getAccount info & balance"
      },
      {
        "title": "Messaging",
        "body": "# Send SMS\ntelnyx message send --from +15551234567 --to +15559876543 --text \"Hello!\"\n\n# List messages\ntelnyx message list\n\n# Get status\ntelnyx message get MESSAGE_ID"
      },
      {
        "title": "Phone Numbers",
        "body": "# List\ntelnyx number list\n\n# Search\ntelnyx number search --country US --npa 415\n\n# Buy\ntelnyx number buy --number \"+15551234567\"\n\n# Release\ntelnyx number release \"+15551234567\""
      },
      {
        "title": "Webhooks & Debugging",
        "body": "# List webhooks\ntelnyx webhook list\n\n# View failed deliveries\ntelnyx debugger list --status failed\n\n# Retry failed\ntelnyx debugger retry EVENT_ID"
      },
      {
        "title": "Account",
        "body": "# Account info\ntelnyx account get\n\n# Check balance\ntelnyx account get --output json | jq '.balance'"
      },
      {
        "title": "Output Formats",
        "body": "# Table (default)\ntelnyx number list\n\n# JSON\ntelnyx number list --output json\n\n# CSV\ntelnyx number list --output csv"
      },
      {
        "title": "Bulk Messaging",
        "body": "#!/bin/bash\nwhile read phone; do\n  telnyx message send --from +15551234567 --to \"$phone\" --text \"Hello!\"\n  sleep 1  # Rate limiting\ndone < recipients.txt"
      },
      {
        "title": "Monitor Webhooks",
        "body": "#!/bin/bash\nwhile true; do\n  FAILED=$(telnyx debugger list --status failed --output json | jq '.data | length')\n  [ \"$FAILED\" -gt 0 ] && echo \"⚠️  $FAILED failed webhooks\"\n  sleep 300\ndone"
      },
      {
        "title": "Export Data",
        "body": "# CSV export\ntelnyx call list --limit 1000 --output csv > calls.csv\n\n# JSON export\ntelnyx number list --output json > numbers.json"
      },
      {
        "title": "Tips",
        "body": "Rate limit: 100 req/s — add sleep 1 for bulk operations\nUse --output json or --output csv to change format\nGet help: telnyx COMMAND --help (e.g., telnyx message --help)\nAPI Key location: ~/.config/telnyx/config.json"
      },
      {
        "title": "Integration with Clawdbot",
        "body": "# In cron jobs\n0 9 * * * telnyx call list --limit 10 > /tmp/daily-calls.txt\n\n# In heartbeat\ntelnyx debugger list --status failed\n\n# In scripts\nBALANCE=$(telnyx account get --output json | jq '.balance')\necho \"Balance: $BALANCE\""
      },
      {
        "title": "Companion Skills",
        "body": "This skill is the primary Telnyx interface. Two companion skills handle account lifecycle steps that this skill cannot:\n\nSkillPurposeInstalltelnyx-bot-signupCreate a new account OR sign into an existing one (generates API key)clawhub install telnyx-bot-signuptelnyx-freemium-upgradeUpgrade freemium account to professional tierclawhub install telnyx-freemium-upgrade\n\nNote: 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."
      },
      {
        "title": "Pre-flight: Before Any Telnyx Operation",
        "body": "Before executing a Telnyx CLI command, run through this checklist:\n\n1. Is `telnyx` CLI installed?\n   NO  → npm install -g @telnyx/api-cli\n\n2. Does ~/.config/telnyx/config.json exist with an api_key?\n   NO  → Hand off to **telnyx-bot-signup** (see below)\n         Works for both new AND existing accounts.\n\n3. Does `telnyx account get` succeed?\n   NO (401 auth error)  → API key is invalid/expired.\n                           Hand off to **telnyx-bot-signup** to generate a fresh key.\n   NO (network error)   → Check connectivity.\n   YES                  → Proceed with the requested operation."
      },
      {
        "title": "When to Hand Off to telnyx-bot-signup",
        "body": "Hand off to the telnyx-bot-signup skill when ANY of these are true:\n\nNo API key exists (~/.config/telnyx/config.json missing or empty, no TELNYX_API_KEY env var)\nAPI key exists but telnyx account get returns 401 (key invalid/expired/revoked)\nUser says they lost their API key or can't access the portal\nUser wants to create a new Telnyx account\n\nDo 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.\n\nWhat 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.\n\nAfter signup/signin completes:\n\nStore the returned API key:\nmkdir -p ~/.config/telnyx\necho '{\"api_key\":\"<KEY_FROM_SIGNUP>\"}' > ~/.config/telnyx/config.json\n\n\nAlso export it for the current session:\nexport TELNYX_API_KEY=\"<KEY_FROM_SIGNUP>\"\n\n\nIf 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."
      },
      {
        "title": "When to Hand Off to telnyx-freemium-upgrade",
        "body": "Hand off to the telnyx-freemium-upgrade skill when a CLI command fails with a freemium restriction. Detect these scenarios:\n\nTriggerHow you see itExampleError 10039SMS send fails: \"destination not verified\"telnyx message send --to +39... --text \"test\"Error D60Voice call fails: \"destination not verified\"Outbound call to unverified numberError 10038Feature blocked: \"not available on current plan\"Porting, short codes, SIM, managed accountsNumber limit hitSecond telnyx number buy failsAlready have 1 number (freemium max)Cannot add fundsBalance top-up or payment method rejectedFreemium accounts cannot add balanceAccount inactive/deactivatedAccount shows deactivated due to $0 balancetelnyx account get shows inactive status\n\nAlso trigger proactively when the user's intent clearly requires professional tier before even making the API call:\n\nUser 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\n\nBefore handing off, check if the upgrade was already attempted:\n\n1. Read ~/.telnyx/upgrade.json (cache from the upgrade skill)\n\n2. If decision == \"APPROVED\"\n   → Account is already upgraded. Do NOT hand off.\n     Retry the operation directly. If it still fails, the API key\n     may need to be refreshed: telnyx auth setup\n\n3. If decision == \"REJECTED\" and used_methods includes \"github_oauth\"\n   → GitHub method exhausted. Do NOT hand off.\n     Tell the user: \"Your upgrade was not approved. Contact\n     support at https://support.telnyx.com or try LinkedIn\n     verification when available.\"\n\n4. If decision == \"PASS_TO_HUMAN\"\n   → Under manual review. Do NOT hand off.\n     Tell the user: \"Your upgrade is under review. I'll check\n     back periodically.\" (The upgrade skill's cron job handles this.)\n\n5. If no cache or status is \"failed\" / \"polling_timeout\"\n   → Hand off to **telnyx-freemium-upgrade**.\n\nAfter upgrade completes (APPROVED):\n\nRetry the original operation that triggered the upgrade.\n\n\nIf 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."
      },
      {
        "title": "Full Lifecycle Flow",
        "body": "User: \"Send SMS to +393406879636\"\n│\n├── telnyx CLI installed? ──NO──→ npm install -g @telnyx/api-cli\n│\n├── API key configured? ──NO──→ **telnyx-bot-signup** (ask for email)\n│                                 → PoW → magic link → API key\n│                                 → Store key → continue\n│\n├── API key valid? (`telnyx account get`)\n│   └── NO (401) → **telnyx-bot-signup** (ask for email)\n│                   → PoW → magic link → fresh API key\n│                   → Store key → continue\n│\n├── telnyx message send --from ... --to +39... --text \"...\"\n│   │\n│   ├── Success → Done\n│   │\n│   └── Error 10039 (destination not verified)\n│       │\n│       ├── Check upgrade cache (~/.telnyx/upgrade.json)\n│       │   ├── APPROVED → Retry (key may need refresh)\n│       │   ├── REJECTED → Inform user, suggest support\n│       │   ├── PASS_TO_HUMAN → Inform user, wait for review\n│       │   └── No cache / failed → Continue to upgrade\n│       │\n│       └── **telnyx-freemium-upgrade** → GitHub verification → poll\n│           │\n│           ├── APPROVED → retry SMS (key may need refresh via bot-signup)\n│           ├── REJECTED → Inform user\n│           └── PASS_TO_HUMAN → Cron job polls, notify on resolution"
      },
      {
        "title": "Companion Skill Not Installed",
        "body": "If you need to hand off but the companion skill is not installed:\n\ntelnyx-bot-signup missing:\n\nI need to set up your Telnyx API key. Install the signup/signin skill:\nclawhub install telnyx-bot-signup\n\nOr get your API key manually from https://portal.telnyx.com/#/app/api-keys and run telnyx auth setup\n\ntelnyx-freemium-upgrade missing:\n\nYour account is on the freemium tier, which doesn't support this operation. Install the upgrade skill:\nclawhub install telnyx-freemium-upgrade\n\nOr upgrade manually via https://portal.telnyx.com/#/account/account-levels/upgrade"
      },
      {
        "title": "CLI not found",
        "body": "npm install -g @telnyx/api-cli"
      },
      {
        "title": "API key not configured",
        "body": "# Reconfigure\ntelnyx auth setup\n\n# Or check existing config\ncat ~/.config/telnyx/config.json"
      },
      {
        "title": "Connection issues",
        "body": "# Test connection\ntelnyx account get"
      },
      {
        "title": "Resources",
        "body": "Telnyx Docs: https://developers.telnyx.com\nAPI Portal: https://portal.telnyx.com\nTelnyx CLI: https://github.com/team-telnyx/telnyx-api-cli"
      }
    ],
    "body": "Telnyx CLI\n\nTelnyx API integration for Clawdbot: messaging, phone numbers, webhooks, and account management.\n\nSetup\n1. Install CLI\nnpm install -g @telnyx/api-cli\n\n2. Configure API Key\ntelnyx auth setup\n\n\nPaste your API key from: https://portal.telnyx.com/#/app/api-keys\n\nSaves to ~/.config/telnyx/config.json (persistent).\n\n3. Verify\ntelnyx number list\n\nCommands\nCategory\tCommand\tDescription\nMessaging\ttelnyx message send\tSend SMS/email/WhatsApp\n\ttelnyx message list\tList messages\n\ttelnyx message get\tGet message status\nPhone Numbers\ttelnyx number list\tYour phone numbers\n\ttelnyx number search\tSearch available numbers\n\ttelnyx number buy\tPurchase a number\n\ttelnyx number release\tRelease a number\nCalls\ttelnyx call list\tView calls\n\ttelnyx call get\tGet call details\nWebhooks\ttelnyx webhook list\tList webhooks\n\ttelnyx debugger list\tView webhook events\n\ttelnyx debugger retry\tRetry failed webhooks\nAccount\ttelnyx account get\tAccount info & balance\nUsage\nMessaging\n# Send SMS\ntelnyx message send --from +15551234567 --to +15559876543 --text \"Hello!\"\n\n# List messages\ntelnyx message list\n\n# Get status\ntelnyx message get MESSAGE_ID\n\nPhone Numbers\n# List\ntelnyx number list\n\n# Search\ntelnyx number search --country US --npa 415\n\n# Buy\ntelnyx number buy --number \"+15551234567\"\n\n# Release\ntelnyx number release \"+15551234567\"\n\nWebhooks & Debugging\n# List webhooks\ntelnyx webhook list\n\n# View failed deliveries\ntelnyx debugger list --status failed\n\n# Retry failed\ntelnyx debugger retry EVENT_ID\n\nAccount\n# Account info\ntelnyx account get\n\n# Check balance\ntelnyx account get --output json | jq '.balance'\n\nOutput Formats\n# Table (default)\ntelnyx number list\n\n# JSON\ntelnyx number list --output json\n\n# CSV\ntelnyx number list --output csv\n\nExamples\nBulk Messaging\n#!/bin/bash\nwhile read phone; do\n  telnyx message send --from +15551234567 --to \"$phone\" --text \"Hello!\"\n  sleep 1  # Rate limiting\ndone < recipients.txt\n\nMonitor Webhooks\n#!/bin/bash\nwhile true; do\n  FAILED=$(telnyx debugger list --status failed --output json | jq '.data | length')\n  [ \"$FAILED\" -gt 0 ] && echo \"⚠️  $FAILED failed webhooks\"\n  sleep 300\ndone\n\nExport Data\n# CSV export\ntelnyx call list --limit 1000 --output csv > calls.csv\n\n# JSON export\ntelnyx number list --output json > numbers.json\n\nTips\nRate limit: 100 req/s — add sleep 1 for bulk operations\nUse --output json or --output csv to change format\nGet help: telnyx COMMAND --help (e.g., telnyx message --help)\nAPI Key location: ~/.config/telnyx/config.json\nIntegration with Clawdbot\n# In cron jobs\n0 9 * * * telnyx call list --limit 10 > /tmp/daily-calls.txt\n\n# In heartbeat\ntelnyx debugger list --status failed\n\n# In scripts\nBALANCE=$(telnyx account get --output json | jq '.balance')\necho \"Balance: $BALANCE\"\n\nCompanion Skills\n\nThis skill is the primary Telnyx interface. Two companion skills handle account lifecycle steps that this skill cannot:\n\nSkill\tPurpose\tInstall\ntelnyx-bot-signup\tCreate a new account OR sign into an existing one (generates API key)\tclawhub install telnyx-bot-signup\ntelnyx-freemium-upgrade\tUpgrade freemium account to professional tier\tclawhub install telnyx-freemium-upgrade\n\nNote: 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.\n\nPre-flight: Before Any Telnyx Operation\n\nBefore executing a Telnyx CLI command, run through this checklist:\n\n1. Is `telnyx` CLI installed?\n   NO  → npm install -g @telnyx/api-cli\n\n2. Does ~/.config/telnyx/config.json exist with an api_key?\n   NO  → Hand off to **telnyx-bot-signup** (see below)\n         Works for both new AND existing accounts.\n\n3. Does `telnyx account get` succeed?\n   NO (401 auth error)  → API key is invalid/expired.\n                           Hand off to **telnyx-bot-signup** to generate a fresh key.\n   NO (network error)   → Check connectivity.\n   YES                  → Proceed with the requested operation.\n\nWhen to Hand Off to telnyx-bot-signup\n\nHand off to the telnyx-bot-signup skill when ANY of these are true:\n\nNo API key exists (~/.config/telnyx/config.json missing or empty, no TELNYX_API_KEY env var)\nAPI key exists but telnyx account get returns 401 (key invalid/expired/revoked)\nUser says they lost their API key or can't access the portal\nUser wants to create a new Telnyx account\n\nDo 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.\n\nWhat 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.\n\nAfter signup/signin completes:\n\nStore the returned API key:\nmkdir -p ~/.config/telnyx\necho '{\"api_key\":\"<KEY_FROM_SIGNUP>\"}' > ~/.config/telnyx/config.json\n\nAlso export it for the current session:\nexport TELNYX_API_KEY=\"<KEY_FROM_SIGNUP>\"\n\nIf 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.\nWhen to Hand Off to telnyx-freemium-upgrade\n\nHand off to the telnyx-freemium-upgrade skill when a CLI command fails with a freemium restriction. Detect these scenarios:\n\nTrigger\tHow you see it\tExample\nError 10039\tSMS send fails: \"destination not verified\"\ttelnyx message send --to +39... --text \"test\"\nError D60\tVoice call fails: \"destination not verified\"\tOutbound call to unverified number\nError 10038\tFeature blocked: \"not available on current plan\"\tPorting, short codes, SIM, managed accounts\nNumber limit hit\tSecond telnyx number buy fails\tAlready have 1 number (freemium max)\nCannot add funds\tBalance top-up or payment method rejected\tFreemium accounts cannot add balance\nAccount inactive/deactivated\tAccount shows deactivated due to $0 balance\ttelnyx account get shows inactive status\n\nAlso trigger proactively when the user's intent clearly requires professional tier before even making the API call:\n\nUser says\tWhy it needs upgrade\n\"Send SMS to +39...\" (international)\tUnverified destination (10039)\n\"Port my number from AT&T\"\tPorting blocked on freemium (10038)\n\"Buy 5 phone numbers\"\t1 number limit on freemium\n\"Set up a SIP trunk\"\tSIP blocked on freemium (10038)\n\"Create a managed account\"\tManaged accounts blocked (10038)\n\"Add $50 to my balance\"\tFreemium can't add funds\n\nBefore handing off, check if the upgrade was already attempted:\n\n1. Read ~/.telnyx/upgrade.json (cache from the upgrade skill)\n\n2. If decision == \"APPROVED\"\n   → Account is already upgraded. Do NOT hand off.\n     Retry the operation directly. If it still fails, the API key\n     may need to be refreshed: telnyx auth setup\n\n3. If decision == \"REJECTED\" and used_methods includes \"github_oauth\"\n   → GitHub method exhausted. Do NOT hand off.\n     Tell the user: \"Your upgrade was not approved. Contact\n     support at https://support.telnyx.com or try LinkedIn\n     verification when available.\"\n\n4. If decision == \"PASS_TO_HUMAN\"\n   → Under manual review. Do NOT hand off.\n     Tell the user: \"Your upgrade is under review. I'll check\n     back periodically.\" (The upgrade skill's cron job handles this.)\n\n5. If no cache or status is \"failed\" / \"polling_timeout\"\n   → Hand off to **telnyx-freemium-upgrade**.\n\n\nAfter upgrade completes (APPROVED):\n\nRetry the original operation that triggered the upgrade.\n\nIf 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.\n\nFull Lifecycle Flow\nUser: \"Send SMS to +393406879636\"\n│\n├── telnyx CLI installed? ──NO──→ npm install -g @telnyx/api-cli\n│\n├── API key configured? ──NO──→ **telnyx-bot-signup** (ask for email)\n│                                 → PoW → magic link → API key\n│                                 → Store key → continue\n│\n├── API key valid? (`telnyx account get`)\n│   └── NO (401) → **telnyx-bot-signup** (ask for email)\n│                   → PoW → magic link → fresh API key\n│                   → Store key → continue\n│\n├── telnyx message send --from ... --to +39... --text \"...\"\n│   │\n│   ├── Success → Done\n│   │\n│   └── Error 10039 (destination not verified)\n│       │\n│       ├── Check upgrade cache (~/.telnyx/upgrade.json)\n│       │   ├── APPROVED → Retry (key may need refresh)\n│       │   ├── REJECTED → Inform user, suggest support\n│       │   ├── PASS_TO_HUMAN → Inform user, wait for review\n│       │   └── No cache / failed → Continue to upgrade\n│       │\n│       └── **telnyx-freemium-upgrade** → GitHub verification → poll\n│           │\n│           ├── APPROVED → retry SMS (key may need refresh via bot-signup)\n│           ├── REJECTED → Inform user\n│           └── PASS_TO_HUMAN → Cron job polls, notify on resolution\n\nCompanion Skill Not Installed\n\nIf you need to hand off but the companion skill is not installed:\n\ntelnyx-bot-signup missing:\n\nI need to set up your Telnyx API key. Install the signup/signin skill:\n\nclawhub install telnyx-bot-signup\n\n\nOr get your API key manually from https://portal.telnyx.com/#/app/api-keys and run telnyx auth setup\n\ntelnyx-freemium-upgrade missing:\n\nYour account is on the freemium tier, which doesn't support this operation. Install the upgrade skill:\n\nclawhub install telnyx-freemium-upgrade\n\n\nOr upgrade manually via https://portal.telnyx.com/#/account/account-levels/upgrade\n\nTroubleshooting\nCLI not found\nnpm install -g @telnyx/api-cli\n\nAPI key not configured\n# Reconfigure\ntelnyx auth setup\n\n# Or check existing config\ncat ~/.config/telnyx/config.json\n\nConnection issues\n# Test connection\ntelnyx account get\n\nResources\nTelnyx Docs: https://developers.telnyx.com\nAPI Portal: https://portal.telnyx.com\nTelnyx CLI: https://github.com/team-telnyx/telnyx-api-cli"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/teamtelnyx/telnyx-cli",
    "publisherUrl": "https://clawhub.ai/teamtelnyx/telnyx-cli",
    "owner": "teamtelnyx",
    "version": "1.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/telnyx-cli",
    "downloadUrl": "https://openagent3.xyz/downloads/telnyx-cli",
    "agentUrl": "https://openagent3.xyz/skills/telnyx-cli/agent",
    "manifestUrl": "https://openagent3.xyz/skills/telnyx-cli/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/telnyx-cli/agent.md"
  }
}