Open in
ThunderPhone CLI
Logga in, hantera röstagentar och samtal, konfigurera MCP-klienter och skapa projektmallar från terminalen.
CLI:t kräver Node.js 18.18 eller senare. Kör det med npx eller installera det globalt:
npm install -g thunderphone
thunderphone --helpLogga in
npx thunderphone login
thunderphone whoami --jsonInloggning skriver ut en verifieringskod, öppnar webbläsaren och väntar på auktorisering.
Använd --no-browser på en huvudlös dator och öppna den utskrivna URL:en någon annanstans.
Enhetsinloggning kräver att API:ets OAuth-enhetsflöde har lanserats. En organisations-API-
nyckel i THUNDERPHONE_API_KEY kan också autentisera kommandon och har företräde
framför sparade inloggningsuppgifter.
Inloggningsuppgifter lagras per profil i ~/.config/thunderphone/credentials.json
med filbehörigheten 0600. XDG_CONFIG_HOME och THUNDERPHONE_CONFIG_DIR åsidosätter
katalogen. Åtkomsttoken uppdateras automatiskt och roterande uppdateringstoken sparas
atomärt. Token skrivs aldrig ut vid inloggning.
thunderphone login --profile work
thunderphone agents list --profile work --json
thunderphone logout --profile workTHUNDERPHONE_PROFILE anger standardprofilen. Utloggning tar bort lokala inloggningsuppgifter;
den återkallar inte serverbehörigheten. Standard-API:t är https://api.thunderphone.com.
Använd --api-base-url eller THUNDERPHONE_API_BASE_URL för ett annat API. En profils token
kan inte skickas till en annan konfigurerad API-URL; logga in på den URL:en med en separat profil.
Kommandon
Varje kommando accepterar --json. Lyckade data skickas till stdout; fel skickas till stderr
med en slutkod som inte är noll. Utan --json är utdata en kompakt tabell eller fältlista.
JSON behåller API-svarets struktur, med autentiseringsfält maskerade. MCP-servering
reserverar stdout för MCP-protokollet.
| Kommando | Syfte |
|---|---|
login [--no-browser] [--scope "scopes"] | Auktorisera via en enhetskod |
logout, whoami | Ta bort lokala autentiseringsuppgifter; lista åtkomliga organisationer |
agents list, agents get ID | Läs agenter |
agents create --file agent.json | Skapa en agent |
agents update ID --file agent.json | Spara ett agentutkast |
agents deploy ID, agents delete ID | Distribuera utkastet; ta bort en agent |
numbers list | Läs telefonnummer |
numbers provision --country US --area-code 415 | Tilldela ett amerikanskt inkommande nummer |
numbers assign NUMBER_ID --agent ID | Tilldela en inkommande agent |
sms send TO --from FROM --body TEXT --idempotency-key KEY | Skicka SMS via ett kundanslutet operatörsnummer med säker återupprepning |
sms list [--limit N], sms get UUID | Lista eller granska SMS-poster |
call TO --agent ID --from FROM [--wait] | Ring ett utgående samtal; vänta valfritt på dess transkript |
calls list [--limit N] [--agent ID] | Lista samtal (gräns 1–200) |
calls get ID, calls transcript ID | Läs ett samtal eller dess transkript |
test run AGENT_ID [--scenario ID] --consent-to-charge | Kör fakturerbara sparade scenarier med webbkanalen |
test status RUN_ID [--agent ID] | Granska en batch, med scenariodetaljer när en agent anges |
import VENDOR export.json | Förbered en JSON-import från en leverantör för granskning |
imports get UUID, imports commit UUID | Granska en import; verkställ valda agenter efter granskning |
mcp setup, mcp serve | Konfigurera en klient; starta stdio-bryggan |
init [directory] | Skapa projektstruktur |
Utgående samtal kräver ett nummer med stöd för utgående samtal. THUNDERPHONE_FROM_NUMBER kan
ange --from. Kunders VoIP-nummer fortsätter att stödja utgående samtal.
Nummer som tillhandahålls av ThunderPhone är initialt endast inkommande; en organisationsadministratör kan
begära utgående samtal på sidan Telefonnumren, där varje begäran
granskas manuellt. --wait har som standard en tidsgräns på en timme; ange
--timeout SECONDS för att ändra den. En tidsgräns slutar vänta utan att avsluta samtalet.
SMS kräver också ett SMS-kapabelt nummer på ditt anslutna Twilio- eller Telnyx- konto. Det skickar aldrig från ett nummer som ägs av ThunderPhone. Återanvänd endast en idempotensnyckel när du försöker igen med exakt samma avsändare, mottagare och meddelandetext.
Importer stöder vapi, retell, elevenlabs och bland. Det andra argumentet är en
sökväg till en JSON-export från en leverantör, inte ett fjärranslutet leverantörs-ID. API:t förbereder en mappning
asynkront; granska den med imports get UUID och verkställ först när den är klar
och du har granskat de mappade fälten och varningarna. Se agentimporter.
MCP-konfiguration
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 userKlienter: claude-code, codex, cursor, vscode, gemini, claude-desktop och
windsurf. Projektscope är standard. Desktop och Windsurf kräver användarscope.
Utelämna --client för att identifiera en enskild klient från projektet; tvetydig identifiering
frågar interaktivt eller misslyckas med instruktioner i en icke-interaktiv session.
Konfigurationen skriver ut filen den skapade och bevarar orelaterade servrar. Befintlig JSON
måste vara giltig strikt JSON; Codex TOML-värden bevaras men kommentarer kan omformateras.
Konfigurationen föredrar direkt fjärr-HTTP. Med --api-key-env skriver den en
variabelreferens, aldrig nyckeln. Utan det alternativet förlitar sig direkt HTTP på klientens
OAuth-stöd; den använder inte CLI:ts autentiseringsfil. Om du vill återanvända autentiseringsuppgifter från thunderphone login
i en klient som stöder stdio använder du:
{
"mcpServers": {
"thunderphone": {
"command": "npx",
"args": ["-y", "@thunderphone/mcp"]
}
}
}Omslutningen kontrollerar THUNDERPHONE_API_KEY, sedan den aktuella CLI-profilen (och uppdaterar
vid behov), och delegerar därefter OAuth till mcp-remote. THUNDERPHONE_MCP_URL åsidosätter
slutpunkten. Den skickar ingen telemetri. Fristående konfiguration är också tillgänglig via
npx -y @thunderphone/mcp setup --client cursor eller thunderphone-mcp setup efter att
du har installerat @thunderphone/mcp globalt.
Skapa ett projekt
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 receptionistMallar är node och python; agenttyper är receptionist, outbound och
custom. Standardagenten är en engelskspråkig/spanskspråkig tandläkarreceptionist med tydliga
demofakta. Projekt innehåller agent.json, distributionsskript, MCP-konfigurationer för
Claude Code, Cursor och VS Code, agentinstruktioner, .env.example och en README.
Projektgenereringen sker offline och vägrar att skriva över en icke-tom katalog.
Redigera verksamhetsfakta före distributionen. Exportera API-nyckeln, det anslutna
uppringarnumret och din testmottagare enligt dokumentationen i den genererade README-filen. npm run deploy
eller python deploy.py skapar eller uppdaterar agenten, distribuerar dess utkast och genomför ett
debiterbart testsamtal. Skripten använder API-nyckelautentisering; CLI:t och stdio MCP-omslutningen
stöder även enhetsinloggning. Python-skript kräver Python 3.9 eller senare.