Open in
ThunderPhone CLI
Masuk, kelola agen suara dan panggilan, konfigurasikan klien MCP, dan buat kerangka proyek dari terminal.
CLI memerlukan Node.js 18.18 atau versi lebih baru. Jalankan dengan npx, atau instal secara global:
npm install -g thunderphone
thunderphone --helpMasuk
npx thunderphone login
thunderphone whoami --jsonPerintah masuk mencetak kode verifikasi, membuka browser, lalu menunggu otorisasi.
Gunakan --no-browser pada mesin tanpa antarmuka grafis dan buka URL yang dicetak di tempat lain.
Masuk perangkat memerlukan peluncuran alur perangkat OAuth API. Kunci API organisasi
di THUNDERPHONE_API_KEY juga dapat mengautentikasi perintah dan diprioritaskan
dibandingkan kredensial masuk yang tersimpan.
Kredensial disimpan berdasarkan profil di ~/.config/thunderphone/credentials.json
dengan mode file 0600. XDG_CONFIG_HOME dan THUNDERPHONE_CONFIG_DIR menggantikan direktori
tersebut. Token akses diperbarui secara otomatis dan token penyegaran bergilir disimpan
secara atomik. Token tidak pernah dicetak oleh perintah masuk.
thunderphone login --profile work
thunderphone agents list --profile work --json
thunderphone logout --profile workTHUNDERPHONE_PROFILE menetapkan profil default. Keluar menghapus kredensial lokal;
perintah ini tidak mencabut grant server. API default adalah https://api.thunderphone.com.
Gunakan --api-base-url atau THUNDERPHONE_API_BASE_URL untuk API lain. Token sebuah profil
tidak dapat dikirim ke URL API terkonfigurasi yang berbeda; masuklah ke URL tersebut dengan profil terpisah.
Perintah
Setiap perintah menerima --json. Data yang berhasil dikirim ke stdout; kesalahan dikirim ke stderr
dengan kode keluar bukan nol. Tanpa --json, output berupa tabel ringkas atau daftar kolom.
JSON mempertahankan struktur respons API, dengan kolom kredensial disamarkan. Penyajian MCP
mencadangkan stdout untuk protokol MCP.
| Perintah | Tujuan |
|---|---|
login [--no-browser] [--scope "scopes"] | Otorisasi melalui kode perangkat |
logout, whoami | Hapus kredensial lokal; tampilkan organisasi yang dapat diakses |
agents list, agents get ID | Tampilkan agen |
agents create --file agent.json | Buat agen |
agents update ID --file agent.json | Simpan draf agen |
agents deploy ID, agents delete ID | Deploy draf; hapus agen |
numbers list | Tampilkan nomor telepon |
numbers provision --country US --area-code 415 | Sediakan nomor masuk AS |
numbers assign NUMBER_ID --agent ID | Tetapkan agen untuk panggilan masuk |
sms send TO --from FROM --body TEXT --idempotency-key KEY | Kirim SMS melalui nomor operator yang terhubung dengan pelanggan dengan pengulangan aman |
sms list [--limit N], sms get UUID | Tampilkan atau periksa rekaman SMS |
call TO --agent ID --from FROM [--wait] | Lakukan panggilan keluar; opsional menunggu transkripnya |
calls list [--limit N] [--agent ID] | Tampilkan panggilan (batas 1–200) |
calls get ID, calls transcript ID | Tampilkan satu panggilan atau transkripnya |
test run AGENT_ID [--scenario ID] --consent-to-charge | Jalankan skenario tersimpan berbayar menggunakan kanal web |
test status RUN_ID [--agent ID] | Periksa batch, dengan detail skenario saat agen diberikan |
import VENDOR export.json | Siapkan impor JSON vendor untuk ditinjau |
imports get UUID, imports commit UUID | Periksa impor; konfirmasikan agen yang dipilih setelah peninjauan |
mcp setup, mcp serve | Konfigurasikan klien; mulai bridge stdio |
init [directory] | Buat kerangka proyek |
Panggilan keluar memerlukan nomor yang mendukung panggilan keluar. THUNDERPHONE_FROM_NUMBER dapat
menyediakan --from. Nomor VoIP pelanggan tetap mendukung panggilan keluar.
Nomor yang disediakan ThunderPhone pada awalnya hanya untuk panggilan masuk; administrator organisasi dapat
meminta panggilan keluar dari halaman Nomor Telepon, tempat setiap permintaan
ditinjau secara manual. --wait secara default memiliki batas waktu satu jam; tetapkan
--timeout SECONDS untuk mengubahnya. Batas waktu menghentikan penantian tanpa mengakhiri panggilan.
SMS juga memerlukan nomor yang mendukung SMS pada akun Twilio atau Telnyx Anda yang terhubung. SMS tidak pernah dikirim dari nomor milik ThunderPhone. Gunakan kembali kunci idempotensi hanya saat mencoba ulang pengirim, penerima, dan isi yang benar-benar sama.
Impor mendukung vapi, retell, elevenlabs, dan bland. Argumen kedua adalah
jalur ke ekspor JSON vendor, bukan ID vendor jarak jauh. API menyiapkan pemetaan
secara asinkron; periksa dengan imports get UUID dan konfirmasikan hanya setelah pemetaan siap
serta Anda telah meninjau kolom yang dipetakan dan peringatannya. Lihat impor agen.
Penyiapan MCP
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 userKlien: claude-code, codex, cursor, vscode, gemini, claude-desktop, dan
windsurf. Cakupan proyek adalah default. Desktop dan Windsurf memerlukan cakupan pengguna.
Hilangkan --client untuk mendeteksi satu klien dari proyek; deteksi yang ambigu
akan meminta input secara interaktif atau gagal dengan instruksi dalam sesi noninteraktif.
Penyiapan mencetak file yang ditulis dan mempertahankan server yang tidak terkait. JSON yang ada
harus berupa JSON ketat yang valid; nilai TOML Codex dipertahankan, tetapi komentar dapat diformat ulang.
Penyiapan mengutamakan HTTP jarak jauh langsung. Dengan --api-key-env, penyiapan menulis referensi
variabel, bukan kunci. Tanpa opsi tersebut, HTTP langsung mengandalkan dukungan
OAuth klien; penyiapan tidak menggunakan file kredensial CLI. Untuk menggunakan kembali kredensial
thunderphone login pada klien apa pun yang mendukung stdio, gunakan:
{
"mcpServers": {
"thunderphone": {
"command": "npx",
"args": ["-y", "@thunderphone/mcp"]
}
}
}Wrapper memeriksa THUNDERPHONE_API_KEY, lalu profil CLI saat ini (memperbarui
jika diperlukan), kemudian mendelegasikan OAuth ke mcp-remote. THUNDERPHONE_MCP_URL menggantikan
endpoint. Wrapper tidak mengirim telemetri. Penyiapan mandiri juga tersedia melalui
npx -y @thunderphone/mcp setup --client cursor atau thunderphone-mcp setup setelah
menginstal @thunderphone/mcp secara global.
Buat proyek
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 receptionistTemplate adalah node dan python; jenis agen adalah receptionist, outbound, dan
custom. Agen default adalah resepsionis klinik gigi berbahasa Inggris/Spanyol dengan fakta
demo yang eksplisit. Proyek mencakup agent.json, skrip deployment, konfigurasi MCP untuk
Claude Code, Cursor, dan VS Code, instruksi agen, .env.example, serta README.
Scaffolding dilakukan secara offline dan menolak menimpa direktori yang tidak kosong.
Edit fakta bisnis sebelum deployment. Ekspor kunci API, nomor penelepon yang terhubung,
dan penerima pengujian Anda sebagaimana didokumentasikan dalam README yang dihasilkan. npm run deploy
atau python deploy.py membuat atau memperbarui agen, men-deploy drafnya, dan melakukan panggilan
pengujian yang dapat ditagihkan. Skrip menggunakan autentikasi kunci API; wrapper MCP CLI dan stdio
juga mendukung login perangkat. Skrip Python memerlukan Python 3.9 atau yang lebih baru.