Open in
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 workTHUNDERPHONE_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 або новішої версії.