ThunderPhone 2.0 уже доступний.Підключайте самостійно — від 2 ¢/хв.Прочитати анонс

Getting Started

ThunderPhone CLI

Увійдіть, керуйте голосовими агентами й дзвінками, налаштовуйте клієнти MCP і створюйте структуру проєктів із термінала.

Для CLI потрібна Node.js 18.18 або новішої версії. Запустіть її через npx або встановіть глобально:

npm install -g thunderphone
thunderphone --help

Увійдіть

npx thunderphone login
thunderphone whoami --json

Вхід виводить код підтвердження, відкриває браузер і очікує авторизації. На машині без графічного інтерфейсу використовуйте --no-browser і відкрийте виведену URL-адресу в іншому місці. Вхід із пристрою потребує підтримки потоку OAuth для пристроїв в API. Ключ API організації в THUNDERPHONE_API_KEY також може автентифікувати команди й має пріоритет над збереженими обліковими даними для входу.

Облікові дані зберігаються за профілями у ~/.config/thunderphone/credentials.json з режимом доступу до файлу 0600. XDG_CONFIG_HOME і THUNDERPHONE_CONFIG_DIR перевизначають каталог. Токени доступу оновлюються автоматично, а ротаційні токени оновлення зберігаються атомарно. Токени ніколи не виводяться під час входу.

thunderphone login --profile work
thunderphone agents list --profile work --json
thunderphone logout --profile work

THUNDERPHONE_PROFILE встановлює профіль за замовчуванням. Вихід видаляє локальні облікові дані; він не відкликає дозвіл на сервері. API за замовчуванням — https://api.thunderphone.com. Використовуйте --api-base-url або THUNDERPHONE_API_BASE_URL для іншого API. Токен профілю не можна надсилати на іншу налаштовану URL-адресу API; увійдіть на цю URL-адресу за допомогою окремого профілю.

Команди

Кожна команда приймає --json. Дані в разі успіху надсилаються до stdout; помилки — до stderr із ненульовим кодом завершення. Без --json виводиться компактна таблиця або список полів. JSON зберігає структуру відповіді API, а поля облікових даних редагуються. Обслуговування MCP резервує stdout для протоколу MCP.

КомандаПризначення
login [--no-browser] [--scope "scopes"]Авторизуватися за допомогою коду пристрою
logout, whoamiВидалити локальні облікові дані; перелічити доступні організації
agents list, agents get IDОтримати агентів
agents create --file agent.jsonСтворити агента
agents update ID --file agent.jsonЗберегти чернетку агента
agents deploy ID, agents delete IDРозгорнути чернетку; видалити агента
numbers listОтримати номери телефонів
numbers provision --country US --area-code 415Підключити вхідний номер США
numbers assign NUMBER_ID --agent IDПризначити агента для вхідних дзвінків
sms send TO --from FROM --body TEXT --idempotency-key KEYНадіслати SMS через номер оператора, підключений клієнтом, із безпечним повторним виконанням
sms list [--limit N], sms get UUIDПерелічити або переглянути записи SMS
call TO --agent ID --from FROM [--wait]Здійснити вихідний дзвінок; за потреби дочекатися його транскрипту
calls list [--limit N] [--agent ID]Перелічити дзвінки (ліміт 1–200)
calls get ID, calls transcript IDОтримати один дзвінок або його транскрипт
test run AGENT_ID [--scenario ID] --consent-to-chargeЗапустити платні збережені сценарії через вебканал
test status RUN_ID [--agent ID]Переглянути пакет із деталями сценарію, якщо вказано агента
import VENDOR export.jsonПідготувати імпорт JSON постачальника для перевірки
imports get UUID, imports commit UUIDПереглянути імпорт; підтвердити вибраних агентів після перевірки
mcp setup, mcp serveНалаштувати клієнт; запустити міст stdio
init [directory]Створити каркас проєкту

Для вихідних дзвінків потрібен номер із підтримкою вихідних дзвінків. THUNDERPHONE_FROM_NUMBER може задати --from. Клієнтські номери VoIP і надалі підтримують вихідні дзвінки. Номери, підключені через ThunderPhone, спочатку доступні лише для вхідних дзвінків; адміністратор організації може надіслати запит на вихідні дзвінки на сторінці «Номери телефонів», де кожен запит перевіряється вручну. За замовчуванням --wait має тайм-аут одну годину; установіть --timeout SECONDS, щоб змінити його. Тайм-аут припиняє очікування, не завершуючи дзвінок.

Для SMS також потрібен номер із підтримкою SMS у вашому підключеному обліковому записі Twilio або Telnyx. SMS ніколи не надсилаються із номера, що належить ThunderPhone. Повторно використовуйте ключ ідемпотентності лише під час повторної спроби з точно тим самим відправником, одержувачем і текстом.

Імпорт підтримує vapi, retell, elevenlabs і bland. Другий аргумент — це шлях до експорту JSON постачальника, а не віддалений ідентифікатор постачальника. API асинхронно готує зіставлення; перегляньте його за допомогою imports get UUID і підтверджуйте лише після того, як воно буде готове та ви переглянете зіставлені поля й попередження. Див. імпорт агентів.

Налаштування MCP

thunderphone mcp setup --client cursor --api-key-env THUNDERPHONE_API_KEY
thunderphone mcp setup --client codex --scope user --api-key-env THUNDERPHONE_API_KEY
thunderphone mcp setup --client claude-desktop --scope user

Клієнти: claude-code, codex, cursor, vscode, gemini, claude-desktop і windsurf. За замовчуванням використовується область проєкту. Desktop і Windsurf потребують області користувача. Не вказуйте --client, щоб виявити один клієнт у проєкті; неоднозначне виявлення запитує вибір в інтерактивному режимі або завершується помилкою з інструкціями в неінтерактивному сеансі. Налаштування виводить записаний файл і зберігає непов’язані сервери. Наявний JSON має бути дійсним строгим JSON; значення TOML для Codex зберігаються, але форматування коментарів може змінитися.

Налаштування надає перевагу прямому віддаленому HTTP. З --api-key-env воно записує посилання на змінну, а не ключ. Без цього параметра прямий HTTP використовує підтримку OAuth клієнта; файл облікових даних CLI не використовується. Щоб повторно використати облікові дані thunderphone login у будь-якому клієнті з підтримкою stdio, використовуйте:

{
  "mcpServers": {
    "thunderphone": {
      "command": "npx",
      "args": ["-y", "@thunderphone/mcp"]
    }
  }
}

Обгортка перевіряє THUNDERPHONE_API_KEY, потім поточний профіль CLI (оновлюючи його за потреби), а потім передає OAuth до mcp-remote. THUNDERPHONE_MCP_URL перевизначає кінцеву точку. Вона не надсилає телеметрію. Автономне налаштування також доступне через npx -y @thunderphone/mcp setup --client cursor або thunderphone-mcp setup після глобального встановлення @thunderphone/mcp.

Створення проєкту

npx create-thunderphone-agent my-receptionist
npx create-thunderphone-agent my-outbound --template python --agent-type outbound
# Equivalent:
thunderphone init my-receptionist --template node --agent-type receptionist

Шаблони: node і python; типи агентів: receptionist, outbound і custom. Агент за замовчуванням — англо-іспанський голосовий агент-реєстратор стоматологічної клініки з явними демонстраційними фактами. Проєкти містять agent.json, скрипти розгортання, конфігурації MCP для Claude Code, Cursor і VS Code, інструкції для агента, .env.example та README. Генерація каркаса працює офлайн і не перезаписує непорожній каталог.

Відредагуйте факти про компанію перед розгортанням. Експортуйте API-ключ, підключений номер абонента та одержувача тестового виклику, як описано в згенерованому README. npm run deploy або python deploy.py створює чи оновлює агента, розгортає його чернетку та здійснює платний тестовий виклик. Скрипти використовують автентифікацію за API-ключем; CLI та обгортка MCP stdio також підтримують вхід з пристрою. Скрипти Python потребують Python 3.9 або новішої версії.