---
title: "ThunderPhone CLI"
description: "Ingia, simamia maejenti ya sauti na simu, sanidi wateja wa MCP, na anzisha miundo ya miradi kutoka kwenye terminal."
---

CLI inahitaji Node.js 18.18 au toleo jipya zaidi. Iendeshe kwa `npx`, au isakinishe kimataifa:

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

## Ingia

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

Amri ya kuingia huchapisha msimbo wa uthibitishaji, hufungua kivinjari, na kusubiri uidhinishaji.
Tumia `--no-browser` kwenye mashine isiyo na kiolesura cha picha na ufungue URL iliyochapishwa kwingineko.
Kuingia kwa kifaa kunahitaji API iwe imewezeshwa kwa OAuth device-flow. Ufunguo wa API wa shirika
katika `THUNDERPHONE_API_KEY` unaweza pia kuthibitisha amri na hupewa kipaumbele
kuliko taarifa za kuingia zilizohifadhiwa.

Taarifa za uthibitishaji huhifadhiwa kwa wasifu katika `~/.config/thunderphone/credentials.json`
kwa ruhusa ya faili `0600`. `XDG_CONFIG_HOME` na `THUNDERPHONE_CONFIG_DIR` hubatilisha saraka.
Tokeni za ufikiaji hujisasisha kiotomatiki na tokeni za kusasisha zinazobadilika huhifadhiwa kwa atomiki.
Tokeni hazichapishwi kamwe na amri ya kuingia.

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

`THUNDERPHONE_PROFILE` huweka wasifu chaguo-msingi. Kuondoka huondoa taarifa za uthibitishaji za ndani;
hakubatilishi idhini ya seva. API chaguo-msingi ni `https://api.thunderphone.com`.
Tumia `--api-base-url` au `THUNDERPHONE_API_BASE_URL` kwa API nyingine. Tokeni ya wasifu
haiwezi kutumwa kwa URL tofauti ya API iliyosanidiwa; ingia kwenye URL hiyo kwa wasifu tofauti.

## Amri

Kila amri hukubali `--json`. Data iliyofanikiwa huenda kwenye stdout; hitilafu huenda kwenye stderr
kwa msimbo wa kutoka usio sifuri. Bila `--json`, matokeo ni jedwali fupi au orodha ya sehemu.
JSON huhifadhi muundo wa jibu la API, huku sehemu za taarifa za uthibitishaji zikifichwa. Utoaji wa MCP
huhifadhi stdout kwa itifaki ya MCP.

| Amri | Kusudi |
| --- | --- |
| `login [--no-browser] [--scope "scopes"]` | Idhinisha kupitia msimbo wa kifaa |
| `logout`, `whoami` | Ondoa taarifa za uthibitishaji za ndani; orodhesha mashirika yanayoweza kufikiwa |
| `agents list`, `agents get ID` | Soma ejenti |
| `agents create --file agent.json` | Unda ejenti |
| `agents update ID --file agent.json` | Hifadhi rasimu ya ejenti |
| `agents deploy ID`, `agents delete ID` | Weka rasimu kazini; futa ejenti |
| `numbers list` | Soma nambari za simu |
| `numbers provision --country US --area-code 415` | Toa nambari ya Marekani ya kupokea simu |
| `numbers assign NUMBER_ID --agent ID` | Weka ejenti wa simu zinazoingia |
| `call TO --agent ID --from FROM [--wait]` | Piga simu ya kutoka; kwa hiari subiri transkripti yake |
| `calls list [--limit N] [--agent ID]` | Orodhesha simu (kikomo 1–200) |
| `calls get ID`, `calls transcript ID` | Soma simu moja au transkripti yake |
| `test run AGENT_ID [--scenario ID] --consent-to-charge` | Endesha senario zilizohifadhiwa zinazotozwa malipo kwa kutumia kituo cha wavuti |
| `test status RUN_ID [--agent ID]` | Kagua kundi, pamoja na maelezo ya senario ejenti anapotolewa |
| `import VENDOR export.json` | Andaa uagizaji wa JSON wa mtoa huduma kwa ukaguzi |
| `imports get UUID`, `imports commit UUID` | Kagua uagizaji; thibitisha ejenti zilizochaguliwa baada ya ukaguzi |
| `mcp setup`, `mcp serve` | Sanidi mteja; anzisha daraja la stdio |
| `init [directory]` | Unda muundo wa awali wa mradi |

Simu za kutoka zinahitaji nambari ya opereta iliyounganishwa. `THUNDERPHONE_FROM_NUMBER` inaweza
kutoa `--from`. Nambari zilizotolewa na ThunderPhone ni za kupokea simu pekee. `--wait` kwa chaguo-msingi
ina muda wa kuisha wa saa moja; weka `--timeout SECONDS` kuubadilisha. Muda wa kuisha husimamisha kusubiri
bila kukatisha simu.

Uagizaji unaauni `vapi`, `retell`, `elevenlabs`, na `bland`. Hoja ya pili ni njia ya
hamisho la JSON la mtoa huduma, si ID ya mbali ya mtoa huduma. API huandaa ulinganishaji
kwa njia isiyo ya wakati mmoja; ukague kwa `imports get UUID` na uthibitishe tu baada ya kuwa tayari
na baada ya kukagua sehemu zilizolinganishwa na maonyo. Tazama [uagizaji wa ejenti](/sw/guides/import-agents).

## Usanidi wa MCP

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

Wateja: `claude-code`, `codex`, `cursor`, `vscode`, `gemini`, `claude-desktop`, na
`windsurf`. Wigo wa mradi ndio chaguo-msingi. Desktop na Windsurf zinahitaji wigo wa mtumiaji.
Ondoa `--client` ili kugundua mteja mmoja kutoka kwenye mradi; ugunduzi usio wazi
huomba maelezo kwa kuingiliana au hushindwa pamoja na maagizo katika kipindi kisicho cha kuingiliana.
Usanidi huchapisha faili iliyoandika na huhifadhi seva zisizohusiana. JSON iliyopo
lazima iwe JSON halali na thabiti; thamani za TOML za Codex huhifadhiwa lakini maoni yanaweza kupangwa upya.

Usanidi hupendelea HTTP ya mbali ya moja kwa moja. Ukiwa na `--api-key-env`, huandika
rejeleo la kigeu, kamwe si ufunguo. Bila chaguo hilo, HTTP ya moja kwa moja hutegemea
usaidizi wa OAuth wa mteja; haitumii faili ya vitambulisho ya CLI. Ili kutumia tena vitambulisho vya
`thunderphone login` katika mteja wowote unaoweza kutumia stdio, tumia:

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

Kifunika hukagua `THUNDERPHONE_API_KEY`, kisha wasifu wa sasa wa CLI (husasisha
inapohitajika), kisha hukabidhi OAuth kwa `mcp-remote`. `THUNDERPHONE_MCP_URL` hubatilisha
endpoint. Haitoi telemetria. Usanidi wa pekee pia unapatikana kupitia
`npx -y @thunderphone/mcp setup --client cursor` au `thunderphone-mcp setup` baada ya
kusakinisha `@thunderphone/mcp` kimataifa.

## Unda mradi

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

Violezo ni `node` na `python`; aina za ejenti ni `receptionist`, `outbound`, na
`custom`. Ejenti chaguo-msingi ni mhudumu wa mapokezi wa meno wa Kiingereza/Kihispania mwenye taarifa
za onyesho zilizo wazi. Miradi inajumuisha `agent.json`, hati za kusambaza, usanidi wa MCP wa
Claude Code, Cursor na VS Code, maagizo ya ejenti, `.env.example`, na README.
Uundaji wa msingi hufanyika bila mtandao na hukataa kuandika juu ya saraka isiyo tupu.

Hariri taarifa za biashara kabla ya usambazaji. Hamisha ufunguo wa API, nambari ya mpigaji
iliyounganishwa, na mpokeaji wako wa majaribio kama ilivyoelezwa katika README iliyoundwa. `npm run deploy`
au `python deploy.py` huunda au husasisha ejenti, husambaza rasimu yake, na hupiga simu ya majaribio
inayotozwa. Hati hutumia uthibitishaji wa ufunguo wa API; CLI na kifunika cha stdio MCP
pia vinaunga mkono kuingia kwa kifaa. Hati za Python zinahitaji Python 3.9 au toleo jipya zaidi.
