---
title: "ThunderPhone CLI"
description: "Log ind, administrer stemmeagenter og opkald, konfigurer MCP-klienter, og opret projektstrukturer fra terminalen."
---

CLI'en kræver Node.js 18.18 eller nyere. Kør den med `npx`, eller installer den globalt:

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

## Log ind

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

Login viser en bekræftelseskode, åbner browseren og venter på godkendelse.
Brug `--no-browser` på en maskine uden grafisk brugerflade, og åbn den viste URL et andet sted.
Enhedslogin kræver API'ets udrulning af OAuth-enhedsflowet. En organisations-API-
nøgle i `THUNDERPHONE_API_KEY` kan også godkende kommandoer og har forrang
frem for gemte loginoplysninger.

Loginoplysninger gemmes pr. profil i `~/.config/thunderphone/credentials.json`
med filtilstanden `0600`. `XDG_CONFIG_HOME` og `THUNDERPHONE_CONFIG_DIR` tilsidesætter
mappen. Adgangstokens opdateres automatisk, og roterende opdateringstokens
gemmes atomisk. Tokens vises aldrig af login.

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

`THUNDERPHONE_PROFILE` angiver standardprofilen. Logout fjerner lokale loginoplysninger;
det tilbagekalder ikke servergodkendelsen. Standard-API'et er `https://api.thunderphone.com`.
Brug `--api-base-url` eller `THUNDERPHONE_API_BASE_URL` til et andet API. En profils token
kan ikke sendes til en anden konfigureret API-URL; log ind på den URL med en separat profil.

## Kommandoer

Hver kommando accepterer `--json`. Vellykkede data sendes til stdout; fejl sendes til stderr
med en exitkode, der ikke er nul. Uden `--json` er outputtet en kompakt tabel eller feltliste.
JSON bevarer API-svarstrukturen med redigerede legitimationsfelter. MCP-servering
reserverer stdout til MCP-protokollen.

| Kommando | Formål |
| --- | --- |
| `login [--no-browser] [--scope "scopes"]` | Godkend via en enhedskode |
| `logout`, `whoami` | Fjern lokale legitimationsoplysninger; vis tilgængelige organisationer |
| `agents list`, `agents get ID` | Læs agenter |
| `agents create --file agent.json` | Opret en agent |
| `agents update ID --file agent.json` | Gem et agentudkast |
| `agents deploy ID`, `agents delete ID` | Udrul udkastet; slet en agent |
| `numbers list` | Læs telefonnumre |
| `numbers provision --country US --area-code 415` | Klargør et amerikansk indgående nummer |
| `numbers assign NUMBER_ID --agent ID` | Tildel en indgående agent |
| `sms send TO --from FROM --body TEXT --idempotency-key KEY` | Send SMS via et operatørnummer, kunden har tilsluttet, med sikker gentagelse |
| `sms list [--limit N]`, `sms get UUID` | Vis eller inspicer SMS-poster |
| `call TO --agent ID --from FROM [--wait]` | Foretag et udgående opkald; vent eventuelt på dets transskription |
| `calls list [--limit N] [--agent ID]` | Vis opkald (grænse 1–200) |
| `calls get ID`, `calls transcript ID` | Læs ét opkald eller dets transskription |
| `test run AGENT_ID [--scenario ID] --consent-to-charge` | Kør fakturerbare gemte scenarier via webkanalen |
| `test status RUN_ID [--agent ID]` | Inspicer en batch med scenariedetaljer, når en agent er angivet |
| `import VENDOR export.json` | Forbered en leverandør-JSON-import til gennemgang |
| `imports get UUID`, `imports commit UUID` | Inspicer en import; bekræft valgte agenter efter gennemgang |
| `mcp setup`, `mcp serve` | Konfigurer en klient; start stdio-broen |
| `init [directory]` | Opret grundstrukturen for et projekt |

Udgående opkald kræver et nummer med aktiverede udgående opkald. `THUNDERPHONE_FROM_NUMBER` kan
angive `--from`. Kundens VoIP-numre understøtter fortsat udgående opkald.
ThunderPhone-klargjorte numre starter som kun indgående; en organisationsadministrator kan
anmode om udgående opkald fra siden Telefonnumre, hvor hver anmodning
gennemgås manuelt. `--wait` har som standard en timeout på en time; angiv
`--timeout SECONDS` for at ændre den. En timeout stopper ventetiden uden at afslutte opkaldet.

SMS kræver også et SMS-kompatibelt nummer på din tilsluttede Twilio- eller Telnyx-
konto. Den sender aldrig fra et nummer, der ejes af ThunderPhone. Genbrug kun en idempotens-
nøgle, når du prøver igen med præcis samme afsender, modtager og brødtekst.

Import understøtter `vapi`, `retell`, `elevenlabs` og `bland`. Det andet argument er en
sti til en leverandørs JSON-eksport, ikke et eksternt leverandør-ID. API'et forbereder en mapping
asynkront; inspicer den med `imports get UUID`, og bekræft først, når den er klar,
og du har gennemgået de mappede felter og advarsler. Se [agentimporter](/da/guides/import-agents).

## MCP-opsætning

```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`. Projektscope er standard. Desktop og Windsurf kræver brugerscope.
Udelad `--client` for at registrere en enkelt klient fra projektet; tvetydig registrering
spørger interaktivt eller fejler med instruktioner i en ikke-interaktiv session.
Opsætningen viser den fil, den skrev, og bevarer ikke-relaterede servere. Eksisterende JSON
skal være gyldig streng JSON; Codex TOML-værdier bevares, men kommentarer kan blive omformateret.

Opsætningen foretrækker direkte fjern-HTTP. Med `--api-key-env` skriver den en
variabelreference, aldrig nøglen. Uden den indstilling er direkte HTTP afhængig af klientens
OAuth-understøttelse; den bruger ikke CLI-legitimationsfilen. Brug følgende for at genbruge
`thunderphone login`-legitimationsoplysninger i enhver stdio-kompatibel klient:

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

Wrapperen kontrollerer `THUNDERPHONE_API_KEY`, derefter den aktuelle CLI-profil (opdaterer
ved behov) og overdrager derefter OAuth til `mcp-remote`. `THUNDERPHONE_MCP_URL` tilsidesætter
endepunktet. Den udsender ingen telemetri. Selvstændig opsætning er også tilgængelig via
`npx -y @thunderphone/mcp setup --client cursor` eller `thunderphone-mcp setup` efter
global installation af `@thunderphone/mcp`.

## Opret et projekt

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

Skabelonerne er `node` og `python`; agenttyperne er `receptionist`, `outbound` og
`custom`. Standardagenten er en engelsksproget/spansksproget tandlægereceptionist med eksplicitte
demofakta. Projekter inkluderer `agent.json`, deploy-scripts, MCP-konfigurationer til
Claude Code, Cursor og VS Code, agentinstruktioner, `.env.example` og en README.
Stilladsgenerering foregår offline og nægter at overskrive en ikke-tom mappe.

Rediger virksomhedsoplysningerne før deploy. Eksporter API-nøglen, det tilknyttede
opkaldernummer og din testmodtager som dokumenteret i den genererede README. `npm run deploy`
eller `python deploy.py` opretter eller opdaterer agenten, deployer dens kladde og foretager et
fakturerbart testopkald. Scripts bruger API-nøgleautentificering; CLI'en og stdio MCP-wrapperen
understøtter også enhedslogin. Python-scripts kræver Python 3.9 eller nyere.
