---
title: "ThunderPhone CLI"
description: "Terminalden oturum açın, sesli AI ajanlarını ve çağrıları yönetin, MCP istemcilerini yapılandırın ve projeler için iskelet oluşturun."
---

CLI, Node.js 18.18 veya üzerini gerektirir. `npx` ile çalıştırın veya global olarak yükleyin:

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

## Oturum açın

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

Oturum açma işlemi bir doğrulama kodu yazdırır, tarayıcıyı açar ve yetkilendirmeyi bekler.
Başsız bir makinede `--no-browser` kullanın ve yazdırılan URL'yi başka bir yerde açın.
Cihazla oturum açmak için API'nin OAuth cihaz akışı desteğinin kullanıma sunulmuş olması gerekir. `THUNDERPHONE_API_KEY` içindeki bir kuruluş API
anahtarı da komutların kimliğini doğrulayabilir ve saklanan oturum açma kimlik bilgilerinden önceliklidir.

Kimlik bilgileri, `~/.config/thunderphone/credentials.json` içinde profil bazında
`0600` dosya modu ile saklanır. `XDG_CONFIG_HOME` ve `THUNDERPHONE_CONFIG_DIR`, bu
dizini geçersiz kılar. Erişim belirteçleri otomatik olarak yenilenir ve dönüşümlü yenileme belirteçleri
atomik olarak kaydedilir. Oturum açma sırasında belirteçler asla yazdırılmaz.

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

`THUNDERPHONE_PROFILE`, varsayılan profili ayarlar. Oturumu kapatma yerel kimlik bilgilerini kaldırır;
sunucu tarafındaki yetkilendirmeyi iptal etmez. Varsayılan API `https://api.thunderphone.com` adresidir.
Farklı bir API için `--api-base-url` veya `THUNDERPHONE_API_BASE_URL` kullanın. Bir profilin belirteci
farklı yapılandırılmış bir API URL'sine gönderilemez; bu URL'de ayrı bir profille oturum açın.

## Komutlar

Her komut `--json` kabul eder. Başarılı veriler stdout'a; hatalar sıfır olmayan bir çıkış koduyla stderr'e gider. `--json` olmadan çıktı, kompakt bir tablo veya alan listesidir. JSON, kimlik bilgisi alanları gizlenmiş şekilde API yanıt yapısını korur. MCP sunumu, stdout'u MCP protokolü için ayırır.

| Komut | Amaç |
| --- | --- |
| `login [--no-browser] [--scope "scopes"]` | Cihaz kodu aracılığıyla yetkilendirin |
| `logout`, `whoami` | Yerel kimlik bilgilerini kaldırın; erişilebilir organizasyonları listeleyin |
| `agents list`, `agents get ID` | Ajanları okuyun |
| `agents create --file agent.json` | Bir ajan oluşturun |
| `agents update ID --file agent.json` | Bir ajan taslağını kaydedin |
| `agents deploy ID`, `agents delete ID` | Taslağı yayına alın; bir ajanı silin |
| `numbers list` | Telefon numaralarını okuyun |
| `numbers provision --country US --area-code 415` | ABD için gelen arama numarası sağlayın |
| `numbers assign NUMBER_ID --agent ID` | Bir gelen arama ajanı atayın |
| `sms send TO --from FROM --body TEXT --idempotency-key KEY` | Güvenli yeniden yürütmeyle müşterinin bağlı operatör numarası üzerinden SMS gönderin |
| `sms list [--limit N]`, `sms get UUID` | SMS kayıtlarını listeleyin veya inceleyin |
| `call TO --agent ID --from FROM [--wait]` | Giden arama başlatın; isteğe bağlı olarak transkriptini bekleyin |
| `calls list [--limit N] [--agent ID]` | Aramaları listeleyin (sınır 1–200) |
| `calls get ID`, `calls transcript ID` | Bir aramayı veya transkriptini okuyun |
| `test run AGENT_ID [--scenario ID] --consent-to-charge` | Web kanalını kullanarak ücretlendirilebilir kaydedilmiş senaryoları çalıştırın |
| `test status RUN_ID [--agent ID]` | Bir toplu işlemi inceleyin; ajan sağlandığında senaryo ayrıntılarını görüntüleyin |
| `import VENDOR export.json` | İnceleme için bir sağlayıcı JSON içe aktarması hazırlayın |
| `imports get UUID`, `imports commit UUID` | Bir içe aktarmayı inceleyin; incelemeden sonra seçilen ajanları onaylayın |
| `mcp setup`, `mcp serve` | Bir istemci yapılandırın; stdio köprüsünü başlatın |
| `init [directory]` | Bir proje iskeleti oluşturun |

Giden aramalar, giden arama etkin bir numara gerektirir. `THUNDERPHONE_FROM_NUMBER`, `--from` sağlayabilir. Müşteri VoIP numaraları giden aramaları desteklemeye devam eder. ThunderPhone tarafından sağlanan numaralar başlangıçta yalnızca gelen aramalara açıktır; bir organizasyon yöneticisi, her isteğin manuel olarak incelendiği Telefon Numaraları sayfasından giden arama talep edebilir. `--wait` varsayılan olarak bir saatlik zaman aşımı kullanır; değiştirmek için `--timeout SECONDS` ayarlayın. Zaman aşımı, aramayı sonlandırmadan beklemeyi durdurur.

SMS için ayrıca bağlı Twilio veya Telnyx hesabınızda SMS özellikli bir numara gerekir. ThunderPhone'a ait bir numaradan asla gönderim yapmaz. İdempotensi anahtarını yalnızca tamamen aynı gönderici, alıcı ve ileti gövdesini yeniden denerken yeniden kullanın.

İçe aktarmalar `vapi`, `retell`, `elevenlabs` ve `bland` destekler. İkinci bağımsız değişken, uzak bir sağlayıcı kimliği değil, sağlayıcı JSON dışa aktarma dosyasının yoludur. API eşlemeyi eşzamansız olarak hazırlar; `imports get UUID` ile inceleyin ve yalnızca hazır olduğunda ve eşlenen alanları ve uyarıları gözden geçirdiğinizde onaylayın. [Ajan içe aktarmaları](/tr/guides/import-agents) bölümüne bakın.

## MCP kurulumu

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

İstemciler: `claude-code`, `codex`, `cursor`, `vscode`, `gemini`, `claude-desktop` ve
`windsurf`. Varsayılan olarak proje kapsamı kullanılır. Desktop ve Windsurf, kullanıcı kapsamı gerektirir.
Projeden tek bir istemciyi algılamak için `--client` seçeneğini atlayın; belirsiz algılama,
etkileşimli olarak sorar veya etkileşimsiz oturumda yönergelerle başarısız olur.
Kurulum, yazdığı dosyayı gösterir ve ilgisiz sunucuları korur. Mevcut JSON
geçerli katı JSON olmalıdır; Codex TOML değerleri korunur ancak yorumlar yeniden biçimlendirilebilir.

Kurulum doğrudan uzak HTTP'yi tercih eder. `--api-key-env` ile anahtarı değil,
bir değişken referansı yazar. Bu seçenek olmadan doğrudan HTTP, istemcinin
OAuth desteğine dayanır; CLI kimlik bilgileri dosyasını kullanmaz. `thunderphone login`
kimlik bilgilerini stdio destekleyen herhangi bir istemcide yeniden kullanmak için şunu kullanın:

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

Sarmalayıcı önce `THUNDERPHONE_API_KEY` değerini, ardından mevcut CLI profilini kontrol eder
(gerektiğinde yeniler), sonra OAuth'u `mcp-remote` aracına devreder. `THUNDERPHONE_MCP_URL`,
uç noktayı geçersiz kılar. Telemetri göndermez. Bağımsız kurulum ayrıca
`npx -y @thunderphone/mcp setup --client cursor` veya `@thunderphone/mcp` paketini genel olarak
yükledikten sonra `thunderphone-mcp setup` aracılığıyla da kullanılabilir.

## Proje oluşturma

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

Şablonlar `node` ve `python`; ajan türleri ise `receptionist`, `outbound` ve
`custom` seçenekleridir. Varsayılan ajan, açık demo bilgilerine sahip İngilizce/İspanyolca bir diş kliniği
resepsiyonistidir. Projeler; `agent.json`, yayına alma betikleri, Claude Code, Cursor ve VS Code için MCP yapılandırmaları,
ajan yönergeleri, `.env.example` ve bir README içerir.
İskelet oluşturma çevrimdışıdır ve boş olmayan bir dizinin üzerine yazmayı reddeder.

Yayına almadan önce işletme bilgilerini düzenleyin. Oluşturulan README'de belgelendiği şekilde API anahtarını,
bağlı arayan numarasını ve test alıcınızı dışa aktarın. `npm run deploy`
veya `python deploy.py`, ajanı oluşturur ya da günceller, taslağını yayına alır ve ücretlendirilebilir bir test araması başlatır.
Betikler API anahtarı kimlik doğrulamasını kullanır; CLI ve stdio MCP sarmalayıcısı
ayrıca cihazla oturum açmayı da destekler. Python betikleri Python 3.9 veya sonraki bir sürümü gerektirir.
