---
title: "ThunderPhone CLI"
description: "Logg inn, administrer stemmeagenter og samtaler, konfigurer MCP-klienter og opprett prosjektskall fra terminalen."
---

CLI-en krever Node.js 18.18 eller nyere. Kjør den med `npx`, eller installer den globalt:

```bash
npm install -g thunderphone
thunderphone --help
```

## Logg inn

```bash
npx thunderphone login
thunderphone whoami --json
```

Innlogging skriver ut en bekreftelseskode, åpner nettleseren og venter på autorisering.
Bruk `--no-browser` på en hodeløs maskin, og åpne den utskrevne URL-en et annet sted.
Enhetsinnlogging krever at API-ets OAuth-enhetsflyt er rullet ut. En API-nøkkel for organisasjonen
i `THUNDERPHONE_API_KEY` kan også autentisere kommandoer og har prioritet
foran lagrede innloggingsopplysninger.

Innloggingsopplysninger lagres per profil i `~/.config/thunderphone/credentials.json`
med filmodus `0600`. `XDG_CONFIG_HOME` og `THUNDERPHONE_CONFIG_DIR` overstyrer
katalogen. Tilgangstokener fornyes automatisk, og roterende oppdateringstokener
lagres atomisk. Tokener skrives aldri ut ved innlogging.

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

`THUNDERPHONE_PROFILE` angir standardprofilen. Utlogging fjerner lokale innloggingsopplysninger;
den tilbakekaller ikke servertilgangen. Standard-API-et er `https://api.thunderphone.com`.
Bruk `--api-base-url` eller `THUNDERPHONE_API_BASE_URL` for et annet API. En profils token
kan ikke sendes til en annen konfigurert API-URL; logg inn på den URL-en med en separat profil.

## Kommandoer

Alle kommandoer godtar `--json`. Data ved vellykket kjøring sendes til stdout; feil sendes til stderr
med en avslutningskode som ikke er null. Uten `--json` er utdataene en kompakt tabell eller feltliste.
JSON beholder API-svarstrukturen, med legitimasjonsfelt sladdet. MCP-servering
reserverer stdout for MCP-protokollen.

| Kommando | Formål |
| --- | --- |
| `login [--no-browser] [--scope "scopes"]` | Autoriser via en enhetskode |
| `logout`, `whoami` | Fjern lokale legitimasjonsopplysninger; list tilgjengelige organisasjoner |
| `agents list`, `agents get ID` | Les agenter |
| `agents create --file agent.json` | Opprett en agent |
| `agents update ID --file agent.json` | Lagre et agentutkast |
| `agents deploy ID`, `agents delete ID` | Distribuer utkastet; slett en agent |
| `numbers list` | Les telefonnumre |
| `numbers provision --country US --area-code 415` | Klargjør et amerikansk innkommende nummer |
| `numbers assign NUMBER_ID --agent ID` | Tilordne en innkommende agent |
| `sms send TO --from FROM --body TEXT --idempotency-key KEY` | Send SMS via et operatørnummer kunden har koblet til, med trygg gjentakelse |
| `sms list [--limit N]`, `sms get UUID` | List eller undersøk SMS-poster |
| `call TO --agent ID --from FROM [--wait]` | Foreta et utgående anrop; vent eventuelt på transkripsjonen |
| `calls list [--limit N] [--agent ID]` | List anrop (grense 1–200) |
| `calls get ID`, `calls transcript ID` | Les ett anrop eller transkripsjonen |
| `test run AGENT_ID [--scenario ID] --consent-to-charge` | Kjør fakturerbare lagrede scenarioer via nettkanalen |
| `test status RUN_ID [--agent ID]` | Undersøk en gruppe, med scenariodetaljer når en agent er oppgitt |
| `import VENDOR export.json` | Forbered en leverandør-JSON-import for gjennomgang |
| `imports get UUID`, `imports commit UUID` | Undersøk en import; fullfør valgte agenter etter gjennomgang |
| `mcp setup`, `mcp serve` | Konfigurer en klient; start stdio-broen |
| `init [directory]` | Opprett grunnstrukturen for et prosjekt |

Utgående anrop krever et nummer med utgående anrop aktivert. `THUNDERPHONE_FROM_NUMBER` kan
angi `--from`. Kundens VoIP-numre fortsetter å støtte utgående anrop.
Numre klargjort av ThunderPhone starter som kun innkommende; en organisasjonsadministrator kan
be om utgående anrop fra siden Telefonnumre, der hver forespørsel
gjennomgås manuelt. `--wait` har som standard en tidsgrense på én time; angi
`--timeout SECONDS` for å endre den. En tidsavbrudd stopper ventingen uten å avslutte anropet.

SMS krever også et SMS-kompatibelt nummer på Twilio- eller Telnyx-kontoen din
som er koblet til. Det sendes aldri fra et nummer som eies av ThunderPhone. Gjenbruk en idempotensnøkkel
bare når du prøver på nytt med nøyaktig samme avsender, mottaker og innhold.

Importer støtter `vapi`, `retell`, `elevenlabs` og `bland`. Det andre argumentet er en
bane til en leverandør-JSON-eksport, ikke en ekstern leverandør-ID. API-et forbereder en tilordning
asynkront; undersøk den med `imports get UUID`, og fullfør først når den er klar
og du har gjennomgått de tilordnede feltene og advarslene. Se [agentimporter](/nb/guides/import-agents).

## MCP-oppsett

```bash
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` og
`windsurf`. Prosjektomfang er standard. Desktop og Windsurf krever brukeromfang.
Utelat `--client` for å oppdage én enkelt klient fra prosjektet; tvetydig oppdagelse
ber om valg interaktivt eller mislykkes med instruksjoner i en ikke-interaktiv økt.
Oppsettet skriver ut filen det opprettet og bevarer urelaterte servere. Eksisterende JSON
må være gyldig, streng JSON; Codex TOML-verdier bevares, men kommentarer kan omformateres.

Oppsett foretrekker direkte ekstern HTTP. Med `--api-key-env` skriver det en
variabelreferanse, aldri nøkkelen. Uten det alternativet er direkte HTTP avhengig av klientens
OAuth-støtte; det bruker ikke CLI-legitimasjonsfilen. Bruk følgende for å gjenbruke
`thunderphone login`-legitimasjon i en klient som støtter stdio:

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

Omslaget sjekker `THUNDERPHONE_API_KEY`, deretter gjeldende CLI-profil (og oppdaterer
ved behov), før det delegerer OAuth til `mcp-remote`. `THUNDERPHONE_MCP_URL` overstyrer
endepunktet. Det sender ingen telemetri. Frittstående oppsett er også tilgjengelig via
`npx -y @thunderphone/mcp setup --client cursor` eller `thunderphone-mcp setup` etter at
du har installert `@thunderphone/mcp` globalt.

## Opprett et prosjekt

```bash
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
```

Maler er `node` og `python`; agenttyper er `receptionist`, `outbound` og
`custom`. Standardagenten er en engelsk/spansk stemmeagent for en tannlegepraksis med eksplisitte
demoopplysninger. Prosjekter inkluderer `agent.json`, distribusjonsskript, MCP-konfigurasjoner for
Claude Code, Cursor og VS Code, agentinstruksjoner, `.env.example` og en README.
Skjelettopprettelsen er frakoblet og nekter å overskrive en ikke-tom katalog.

Rediger virksomhetsopplysningene før distribusjon. Eksporter API-nøkkelen, det tilkoblede
oppringingsnummeret og testmottakeren din som beskrevet i den genererte README-en. `npm run deploy`
eller `python deploy.py` oppretter eller oppdaterer agenten, distribuerer utkastet og gjennomfører et
fakturerbart testanrop. Skriptene bruker autentisering med API-nøkkel; CLI-en og stdio MCP-omslaget
støtter også enhetsinnlogging. Python-skript krever Python 3.9 eller nyere.
