Open in
ThunderPhone CLI
Log in, beheer spraakagenten en oproepen, configureer MCP-clients en zet projecten op vanuit de terminal.
De CLI vereist Node.js 18.18 of later. Voer deze uit met npx, of installeer deze globaal:
npm install -g thunderphone
thunderphone --helpInloggen
npx thunderphone login
thunderphone whoami --jsonInloggen toont een verificatiecode, opent de browser en wacht op autorisatie.
Gebruik --no-browser op een headless machine en open de getoonde URL elders.
Inloggen op een apparaat vereist de uitrol van de OAuth-apparaatstroom van de API. Een API-sleutel van een organisatie
in THUNDERPHONE_API_KEY kan ook opdrachten verifiëren en krijgt voorrang
op opgeslagen inloggegevens.
Inloggegevens worden per profiel opgeslagen in ~/.config/thunderphone/credentials.json
met bestandsmodus 0600. XDG_CONFIG_HOME en THUNDERPHONE_CONFIG_DIR overschrijven de
map. Toegangstokens worden automatisch vernieuwd en roterende vernieuwingstokens worden
atomair opgeslagen. Tokens worden nooit getoond tijdens het inloggen.
thunderphone login --profile work
thunderphone agents list --profile work --json
thunderphone logout --profile workTHUNDERPHONE_PROFILE stelt het standaardprofiel in. Uitloggen verwijdert lokale inloggegevens;
het trekt de serverautorisatie niet in. De standaard-API is https://api.thunderphone.com.
Gebruik --api-base-url of THUNDERPHONE_API_BASE_URL voor een andere API. Het token van een profiel
kan niet naar een andere geconfigureerde API-URL worden verzonden; log voor die URL in met een afzonderlijk profiel.
Opdrachten
Elke opdracht accepteert --json. Succesvolle gegevens gaan naar stdout; fouten gaan naar stderr
met een exitcode die niet nul is. Zonder --json is de uitvoer een compacte tabel of lijst met velden.
JSON behoudt de structuur van de API-respons, waarbij referentievelden zijn weggelakt. MCP-serving
reserveert stdout voor het MCP-protocol.
| Opdracht | Doel |
|---|---|
login [--no-browser] [--scope "scopes"] | Autoriseren via een apparaatcode |
logout, whoami | Lokale referenties verwijderen; toegankelijke organisaties weergeven |
agents list, agents get ID | Agenten ophalen |
agents create --file agent.json | Een agent maken |
agents update ID --file agent.json | Een agentconcept opslaan |
agents deploy ID, agents delete ID | Het concept implementeren; een agent verwijderen |
numbers list | Telefoonnummers ophalen |
numbers provision --country US --area-code 415 | Een inkomend nummer in de VS provisioneren |
numbers assign NUMBER_ID --agent ID | Een inkomende agent toewijzen |
sms send TO --from FROM --body TEXT --idempotency-key KEY | SMS verzenden via een providernummer dat de klant heeft gekoppeld, met veilige herhaling |
sms list [--limit N], sms get UUID | SMS-records weergeven of inspecteren |
call TO --agent ID --from FROM [--wait] | Een uitgaande oproep plaatsen; optioneel wachten op het transcript |
calls list [--limit N] [--agent ID] | Oproepen weergeven (limiet 1–200) |
calls get ID, calls transcript ID | Eén oproep of het transcript ervan ophalen |
test run AGENT_ID [--scenario ID] --consent-to-charge | Betaalbare opgeslagen scenario's uitvoeren via het webkanaal |
test status RUN_ID [--agent ID] | Een batch inspecteren, met scenariodetails wanneer een agent is opgegeven |
import VENDOR export.json | Een JSON-import van een leverancier voorbereiden voor beoordeling |
imports get UUID, imports commit UUID | Een import inspecteren; geselecteerde agenten na beoordeling vastleggen |
mcp setup, mcp serve | Een client configureren; de stdio-bridge starten |
init [directory] | Een projectstructuur genereren |
Uitgaande oproepen vereisen een nummer dat geschikt is voor uitgaande oproepen. THUNDERPHONE_FROM_NUMBER kan
--from leveren. VoIP-nummers van klanten blijven uitgaande oproepen ondersteunen.
Door ThunderPhone geprovisioneerde nummers zijn aanvankelijk alleen inkomend; een
organisatiebeheerder kan uitgaande oproepen aanvragen op de pagina Telefoonnummers, waar elk verzoek
handmatig wordt beoordeeld. --wait gebruikt standaard een time-out van één uur; stel
--timeout SECONDS in om dit te wijzigen. Een time-out stopt het wachten zonder de oproep te beëindigen.
SMS vereist ook een nummer met SMS-ondersteuning in je gekoppelde Twilio- of Telnyx- account. Er wordt nooit verzonden vanaf een nummer van ThunderPhone. Hergebruik een idempotentiesleutel alleen wanneer je exact dezelfde afzender, ontvanger en berichttekst opnieuw probeert.
Imports ondersteunen vapi, retell, elevenlabs en bland. Het tweede argument is een
pad naar een JSON-export van een leverancier, geen externe leverancier-ID. De API bereidt asynchroon een toewijzing
voor; inspecteer deze met imports get UUID en leg deze pas vast wanneer deze klaar is
en je de toegewezen velden en waarschuwingen hebt beoordeeld. Zie agentimports.
MCP-configuratie
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 userClients: claude-code, codex, cursor, vscode, gemini, claude-desktop en
windsurf. Projectscope is de standaardinstelling. Desktop en Windsurf vereisen gebruikersscope.
Laat --client weg om één client uit het project te detecteren; bij onduidelijke detectie
wordt interactief om invoer gevraagd of mislukt de configuratie met instructies in een niet-interactieve sessie.
De configuratie toont het bestand dat is geschreven en behoudt niet-gerelateerde servers. Bestaande JSON
moet geldige strikte JSON zijn; Codex TOML-waarden blijven behouden, maar opmerkingen kunnen opnieuw worden opgemaakt.
De configuratie geeft de voorkeur aan rechtstreekse externe HTTP. Met --api-key-env schrijft deze een variabeleverwijzing,
nooit de sleutel. Zonder die optie is rechtstreekse HTTP afhankelijk van de OAuth-ondersteuning van de client;
het gebruikt niet het CLI-inloggegevensbestand. Gebruik het volgende om thunderphone login-
inloggegevens opnieuw te gebruiken in elke client die stdio ondersteunt:
{
"mcpServers": {
"thunderphone": {
"command": "npx",
"args": ["-y", "@thunderphone/mcp"]
}
}
}De wrapper controleert THUNDERPHONE_API_KEY, daarna het huidige CLI-profiel (en vernieuwt dit
indien nodig), en delegeert vervolgens OAuth aan mcp-remote. THUNDERPHONE_MCP_URL overschrijft
het eindpunt. Er wordt geen telemetrie verzonden. Zelfstandige configuratie is ook beschikbaar via
npx -y @thunderphone/mcp setup --client cursor of thunderphone-mcp setup na het globaal
installeren van @thunderphone/mcp.
Een project maken
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 receptionistTemplates zijn node en python; agenttypen zijn receptionist, outbound en
custom. De standaardagent is een Engels-/Spaanstalige tandartsreceptionist met expliciete
demofeiten. Projecten bevatten agent.json, deployscripts, MCP-configuraties voor
Claude Code, Cursor en VS Code, agentinstructies, .env.example en een README.
Scaffolding werkt offline en weigert een niet-lege directory te overschrijven.
Bewerk de bedrijfsgegevens vóór de deployment. Exporteer de API-sleutel, het gekoppelde
bellernummer en je testontvanger zoals beschreven in de gegenereerde README. npm run deploy
of python deploy.py maakt de agent aan of werkt deze bij, deployt het concept en plaatst een
factureerbare testoproep. De scripts gebruiken authenticatie met API-sleutel; de CLI en stdio MCP-
wrapper ondersteunen ook inloggen via apparaat. Python-scripts vereisen Python 3.9 of hoger.