ThunderPhone 2.0 är här.Kom igång på egen hand, från 2 ¢/min.Läs lanseringsnyheten

Getting Started

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 --help

Logga in

npx thunderphone login
thunderphone whoami --json

Inloggning 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 work

THUNDERPHONE_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.

KommandoSyfte
login [--no-browser] [--scope "scopes"]Auktorisera via en enhetskod
logout, whoamiTa bort lokala autentiseringsuppgifter; lista åtkomliga organisationer
agents list, agents get IDLäs agenter
agents create --file agent.jsonSkapa en agent
agents update ID --file agent.jsonSpara ett agentutkast
agents deploy ID, agents delete IDDistribuera utkastet; ta bort en agent
numbers listLäs telefonnummer
numbers provision --country US --area-code 415Tilldela ett amerikanskt inkommande nummer
numbers assign NUMBER_ID --agent IDTilldela en inkommande agent
sms send TO --from FROM --body TEXT --idempotency-key KEYSkicka SMS via ett kundanslutet operatörsnummer med säker återupprepning
sms list [--limit N], sms get UUIDLista 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 IDLäs ett samtal eller dess transkript
test run AGENT_ID [--scenario ID] --consent-to-chargeKö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.jsonFörbered en JSON-import från en leverantör för granskning
imports get UUID, imports commit UUIDGranska en import; verkställ valda agenter efter granskning
mcp setup, mcp serveKonfigurera 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 user

Klienter: 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 receptionist

Mallar ä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.