Open in
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 --helpAutentificare
npx thunderphone login
thunderphone whoami --jsonAutentificarea 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 workTHUNDERPHONE_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, whoami | Eliminați acreditările locale; listați organizațiile accesibile |
agents list, agents get ID | Citiți agenți |
agents create --file agent.json | Creați un agent |
agents update ID --file agent.json | Salvați o schiță de agent |
agents deploy ID, agents delete ID | Implementați schița; ștergeți un agent |
numbers list | Citiți numere de telefon |
numbers provision --country US --area-code 415 | Furnizați un număr de intrare din SUA |
numbers assign NUMBER_ID --agent ID | Atribuiți un agent pentru apeluri primite |
sms send TO --from FROM --body TEXT --idempotency-key KEY | Trimiteți SMS printr-un număr de operator conectat de client, cu reluare sigură |
sms list [--limit N], sms get UUID | Listaț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 ID | Citiți un apel sau transcrierea acestuia |
test run AGENT_ID [--scenario ID] --consent-to-charge | Rulaț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.json | Pregătiți pentru revizuire un import JSON de la un furnizor |
imports get UUID, imports commit UUID | Inspectați un import; confirmați agenții selectați după revizuire |
mcp setup, mcp serve | Configuraț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 userClienț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ă.