ThunderPhone 2.0 este acum disponibil.Self-service, de la 2 ¢/min.Citiți anunțul

Getting Started

ThunderPhone CLI

Conectați-vă, gestionați agenți vocali și apeluri, configurați clienți MCP și creați structuri de proiecte din terminal.

CLI necesită Node.js 18.18 sau o versiune ulterioară. Rulați-l cu npx sau instalați-l global:

npm install -g thunderphone
thunderphone --help

Autentificare

npx thunderphone login
thunderphone whoami --json

Autentificarea afișează un cod de verificare, deschide browserul și așteaptă autorizarea. Utilizați --no-browser pe o mașină fără interfață grafică și deschideți URL-ul afișat în altă parte. Autentificarea dispozitivului necesită implementarea fluxului OAuth pentru dispozitive al API-ului. O cheie API a organizației din THUNDERPHONE_API_KEY poate autentifica, de asemenea, comenzile și are prioritate față de datele de autentificare stocate.

Datele de autentificare sunt stocate pe profil în ~/.config/thunderphone/credentials.json cu modul de fișier 0600. XDG_CONFIG_HOME și THUNDERPHONE_CONFIG_DIR suprascriu directorul. Tokenurile de acces se reîmprospătează automat, iar tokenurile de reîmprospătare rotative sunt salvate atomic. Tokenurile nu sunt afișate niciodată de autentificare.

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

THUNDERPHONE_PROFILE stabilește profilul implicit. Deautentificarea elimină datele de autentificare locale; nu revocă autorizarea de pe server. API-ul implicit este https://api.thunderphone.com. Utilizați --api-base-url sau THUNDERPHONE_API_BASE_URL pentru un alt API. Tokenul unui profil nu poate fi trimis către un URL API configurat diferit; autentificați-vă la acel URL cu un profil separat.

Comenzi

Fiecare comandă acceptă --json. Datele reușite sunt trimise la stdout; erorile sunt trimise la stderr cu un cod de ieșire diferit de zero. Fără --json, rezultatul este un tabel compact sau o listă de câmpuri. JSON păstrează structura răspunsului API, cu câmpurile de acreditare redactate. Servirea MCP rezervă stdout pentru protocolul MCP.

ComandăScop
login [--no-browser] [--scope "scopes"]Autorizați printr-un cod de dispozitiv
logout, whoamiEliminați acreditările locale; listați organizațiile accesibile
agents list, agents get IDCitiți agenți
agents create --file agent.jsonCreați un agent
agents update ID --file agent.jsonSalvați o schiță de agent
agents deploy ID, agents delete IDImplementați schița; ștergeți un agent
numbers listCitiți numere de telefon
numbers provision --country US --area-code 415Furnizați un număr de intrare din SUA
numbers assign NUMBER_ID --agent IDAtribuiți un agent pentru apeluri primite
sms send TO --from FROM --body TEXT --idempotency-key KEYTrimiteți SMS printr-un număr de operator conectat de client, cu reluare sigură
sms list [--limit N], sms get UUIDListați sau inspectați înregistrări SMS
call TO --agent ID --from FROM [--wait]Efectuați un apel de ieșire; opțional, așteptați transcrierea acestuia
calls list [--limit N] [--agent ID]Listați apeluri (limită 1–200)
calls get ID, calls transcript IDCitiți un apel sau transcrierea acestuia
test run AGENT_ID [--scenario ID] --consent-to-chargeRulați scenarii salvate facturabile prin canalul web
test status RUN_ID [--agent ID]Inspectați un lot, cu detalii despre scenarii atunci când este furnizat un agent
import VENDOR export.jsonPregătiți pentru revizuire un import JSON de la un furnizor
imports get UUID, imports commit UUIDInspectați un import; confirmați agenții selectați după revizuire
mcp setup, mcp serveConfigurați un client; porniți puntea stdio
init [directory]Generați structura unui proiect

Apelurile de ieșire necesită un număr activat pentru apeluri de ieșire. THUNDERPHONE_FROM_NUMBER poate furniza --from. Numerele VoIP ale clienților continuă să accepte apeluri de ieșire. Numerele furnizate de ThunderPhone sunt inițial doar pentru apeluri primite; un administrator al organizației poate solicita apeluri de ieșire din pagina Numere de telefon, unde fiecare solicitare este revizuită manual. --wait folosește implicit un termen de expirare de o oră; setați --timeout SECONDS pentru a-l modifica. Expirarea termenului oprește așteptarea fără a încheia apelul.

SMS necesită, de asemenea, un număr compatibil SMS în contul Twilio sau Telnyx conectat. Nu trimite niciodată de la un număr deținut de ThunderPhone. Reutilizați o cheie de idempotentă numai atunci când reîncercați cu exact același expeditor, destinatar și conținut.

Importurile acceptă vapi, retell, elevenlabs și bland. Al doilea argument este o cale către un export JSON al furnizorului, nu un ID de furnizor la distanță. API-ul pregătește o mapare asincron; inspectați-o cu imports get UUID și confirmați-o numai după ce este pregătită și ați revizuit câmpurile mapate și avertismentele. Consultați importuri de agenți.

Configurarea 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

Clienți: claude-code, codex, cursor, vscode, gemini, claude-desktop și windsurf. Scopul de proiect este implicit. Desktop și Windsurf necesită scop de utilizator. Omiteți --client pentru a detecta un singur client din proiect; detectarea ambiguă solicită interactiv o alegere sau eșuează cu instrucțiuni într-o sesiune neinteractivă. Configurarea afișează fișierul scris și păstrează serverele fără legătură. Fișierul JSON existent trebuie să fie JSON strict valid; valorile TOML Codex sunt păstrate, însă comentariile pot fi reformatare.

Configurarea preferă HTTP remote direct. Cu --api-key-env, scrie o referință la variabilă, niciodată cheia. Fără această opțiune, HTTP direct se bazează pe suportul OAuth al clientului; nu utilizează fișierul de acreditări al CLI-ului. Pentru a reutiliza acreditările thunderphone login în orice client compatibil cu stdio, utilizați:

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

Wrapperul verifică THUNDERPHONE_API_KEY, apoi profilul CLI curent (reîmprospătându-l când este necesar), apoi deleagă OAuth către mcp-remote. THUNDERPHONE_MCP_URL suprascrie endpointul. Nu transmite telemetrie. Configurarea independentă este disponibilă și prin npx -y @thunderphone/mcp setup --client cursor sau thunderphone-mcp setup după instalarea globală a @thunderphone/mcp.

Creați un proiect

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

Șabloanele sunt node și python; tipurile de agenți sunt receptionist, outbound și custom. Agentul implicit este un recepționer pentru cabinet stomatologic în engleză/spaniolă, cu date demonstrative explicite. Proiectele includ agent.json, scripturi de implementare, configurații MCP pentru Claude Code, Cursor și VS Code, instrucțiuni pentru agent, .env.example și un README. Generarea structurii funcționează offline și refuză să suprascrie un director nevid.

Editați informațiile despre afacere înainte de implementare. Exportați cheia API, numărul conectat al apelantului și destinatarul de test conform documentației din README-ul generat. npm run deploy sau python deploy.py creează sau actualizează agentul, implementează versiunea sa ciornă și plasează un apel de test facturabil. Scripturile utilizează autentificarea cu cheie API; CLI-ul și wrapperul MCP stdio acceptă, de asemenea, autentificarea pe dispozitiv. Scripturile Python necesită Python 3.9 sau o versiune ulterioară.