ThunderPhone 2.0 เปิดให้ใช้งานแล้วเริ่มใช้งานได้ด้วยตัวเอง ราคาเริ่มต้น 2 เซนต์ต่อนาที.อ่านประกาศเปิดตัว

Getting Started

ThunderPhone CLI

เข้าสู่ระบบ จัดการเอเจนต์เสียงและการโทร กำหนดค่าไคลเอนต์ MCP และสร้างโครงร่างโปรเจ็กต์จากเทอร์มินัล

CLI ต้องใช้ Node.js 18.18 หรือใหม่กว่า เรียกใช้ด้วย npx หรือติดตั้งแบบโกลบอล:

npm install -g thunderphone
thunderphone --help

เข้าสู่ระบบ

npx thunderphone login
thunderphone whoami --json

การเข้าสู่ระบบจะแสดงรหัสยืนยัน เปิดเบราว์เซอร์ และรอการอนุญาต ใช้ --no-browser บนเครื่องแบบไม่มีหน้าจอ และเปิด URL ที่แสดงไว้จากที่อื่น การเข้าสู่ระบบอุปกรณ์ต้องอาศัยการเปิดใช้ OAuth device flow ของ API คีย์ API ขององค์กรใน THUNDERPHONE_API_KEY ยังสามารถใช้ยืนยันคำสั่งได้ และมีลำดับความสำคัญเหนือข้อมูลรับรองการเข้าสู่ระบบที่จัดเก็บไว้

ข้อมูลรับรองจะจัดเก็บแยกตามโปรไฟล์ใน ~/.config/thunderphone/credentials.json ด้วยโหมดไฟล์ 0600 โดย XDG_CONFIG_HOME และ THUNDERPHONE_CONFIG_DIR จะแทนที่ไดเรกทอรี โทเค็นการเข้าถึงจะรีเฟรชโดยอัตโนมัติ และโทเค็นรีเฟรชแบบหมุนเวียนจะถูกบันทึกแบบอะตอมมิก ระบบจะไม่แสดงโทเค็นระหว่างการเข้าสู่ระบบ

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

THUNDERPHONE_PROFILE กำหนดโปรไฟล์เริ่มต้น การออกจากระบบจะลบข้อมูลรับรองในเครื่อง แต่จะไม่เพิกถอนการอนุญาตบนเซิร์ฟเวอร์ API เริ่มต้นคือ https://api.thunderphone.com ใช้ --api-base-url หรือ THUNDERPHONE_API_BASE_URL สำหรับ API อื่น โทเค็นของโปรไฟล์ ไม่สามารถส่งไปยัง URL ของ API ที่กำหนดค่าไว้ต่างกันได้ ให้เข้าสู่ระบบ URL นั้นด้วยโปรไฟล์แยกต่างหาก

คำสั่ง

ทุกคำสั่งรองรับ --json ข้อมูลที่สำเร็จจะส่งไปยัง stdout ส่วนข้อผิดพลาดจะส่งไปยัง stderr พร้อมรหัสออกที่ไม่เป็นศูนย์ หากไม่ใช้ --json เอาต์พุตจะเป็นตารางหรือรายการฟิลด์แบบกระชับ JSON จะคงโครงสร้างการตอบกลับของ API โดยปกปิดฟิลด์ข้อมูลรับรอง การให้บริการ MCP จะสงวน stdout ไว้สำหรับโพรโทคอล MCP

คำสั่งวัตถุประสงค์
login [--no-browser] [--scope "scopes"]อนุญาตผ่านรหัสอุปกรณ์
logout, whoamiลบข้อมูลรับรองในเครื่อง; แสดงรายการองค์กรที่เข้าถึงได้
agents list, agents get IDอ่านข้อมูลเอเจนต์
agents create --file agent.jsonสร้างเอเจนต์
agents update ID --file agent.jsonบันทึกฉบับร่างเอเจนต์
agents deploy ID, agents delete IDปรับใช้ฉบับร่าง; ลบเอเจนต์
numbers listอ่านข้อมูลหมายเลขโทรศัพท์
numbers provision --country US --area-code 415จัดเตรียมหมายเลขขาเข้าของสหรัฐอเมริกา
numbers assign NUMBER_ID --agent IDกำหนดเอเจนต์ขาเข้า
call TO --agent ID --from FROM [--wait]โทรออก; เลือกรอทรานสคริปต์ได้
calls list [--limit N] [--agent ID]แสดงรายการสาย (จำกัด 1–200)
calls get ID, calls transcript IDอ่านข้อมูลสายหนึ่งหรือทรานสคริปต์
test run AGENT_ID [--scenario ID] --consent-to-chargeเรียกใช้สถานการณ์ที่บันทึกไว้และมีค่าใช้จ่ายผ่านช่องทางเว็บ
test status RUN_ID [--agent ID]ตรวจสอบแบตช์ พร้อมรายละเอียดสถานการณ์เมื่อระบุเอเจนต์
import VENDOR export.jsonเตรียมการนำเข้า JSON จากผู้ให้บริการเพื่อตรวจสอบ
imports get UUID, imports commit UUIDตรวจสอบการนำเข้า; ยืนยันเอเจนต์ที่เลือกหลังตรวจสอบ
mcp setup, mcp serveกำหนดค่าไคลเอ็นต์; เริ่มสะพาน stdio
init [directory]สร้างโครงร่างโปรเจกต์

การโทรออกต้องมีหมายเลขผู้ให้บริการที่เชื่อมต่ออยู่ THUNDERPHONE_FROM_NUMBER สามารถ ระบุค่าให้ --from ได้ หมายเลขที่ ThunderPhone จัดเตรียมให้ใช้สำหรับสายเข้าเท่านั้น --wait มีค่าเริ่มต้น เป็นหมดเวลาหนึ่งชั่วโมง ตั้งค่า --timeout SECONDS เพื่อเปลี่ยนแปลง การหมดเวลาจะหยุดการรอ โดยไม่วางสาย

การนำเข้ารองรับ vapi, retell, elevenlabs และ bland อาร์กิวเมนต์ที่สองคือ พาธไปยังไฟล์ส่งออก JSON ของผู้ให้บริการ ไม่ใช่ ID ระยะไกลของผู้ให้บริการ API จะเตรียมการแมป แบบอะซิงโครนัส ให้ตรวจสอบด้วย imports get UUID และยืนยันหลังจากพร้อมแล้วเท่านั้น และหลังจากที่คุณตรวจสอบฟิลด์ที่แมปและคำเตือนแล้ว ดู การนำเข้าเอเจนต์

การตั้งค่า 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 user

ไคลเอนต์ ได้แก่ claude-code, codex, cursor, vscode, gemini, claude-desktop และ windsurf ขอบเขตโปรเจ็กต์เป็นค่าเริ่มต้น Desktop และ Windsurf ต้องใช้ขอบเขตผู้ใช้ ละเว้น --client เพื่อตรวจหาไคลเอนต์เดียวจากโปรเจ็กต์ การตรวจหาที่กำกวม จะแสดงพรอมป์แบบโต้ตอบ หรือล้มเหลวพร้อมคำแนะนำในเซสชันแบบไม่โต้ตอบ การตั้งค่าจะแสดงไฟล์ที่เขียนและคงเซิร์ฟเวอร์ที่ไม่เกี่ยวข้องไว้ JSON ที่มีอยู่ ต้องเป็น JSON แบบเคร่งครัดที่ถูกต้อง ค่า TOML ของ Codex จะถูกเก็บไว้ แต่ความคิดเห็นอาจถูกจัดรูปแบบใหม่

การตั้งค่าจะเลือกใช้ remote HTTP โดยตรงก่อน เมื่อใช้ --api-key-env ระบบจะเขียน การอ้างอิงตัวแปร ไม่เขียนคีย์ หากไม่มีตัวเลือกนี้ HTTP โดยตรงจะอาศัยการรองรับ OAuth ของไคลเอนต์ และจะไม่ใช้ไฟล์ข้อมูลรับรองของ CLI หากต้องการใช้ข้อมูลรับรองจาก thunderphone login ซ้ำในไคลเอนต์ใดก็ตามที่รองรับ stdio ให้ใช้:

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

ตัวหุ้มจะตรวจสอบ THUNDERPHONE_API_KEY จากนั้นตรวจสอบโปรไฟล์ CLI ปัจจุบัน (รีเฟรช เมื่อจำเป็น) แล้วมอบหมาย OAuth ให้ mcp-remote THUNDERPHONE_MCP_URL จะแทนที่ ปลายทาง ระบบไม่ส่ง telemetry การตั้งค่าแบบสแตนด์อโลนยังทำได้ผ่าน npx -y @thunderphone/mcp setup --client cursor หรือ thunderphone-mcp setup หลังจาก ติดตั้ง @thunderphone/mcp แบบโกลบอล

สร้างโปรเจ็กต์

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

เทมเพลตคือ node และ python ประเภทเอเจนต์คือ receptionist, outbound และ custom เอเจนต์เริ่มต้นคือพนักงานต้อนรับคลินิกทันตกรรมภาษาอังกฤษ/สเปนที่มี ข้อมูลเดโมระบุไว้อย่างชัดเจน โปรเจ็กต์ประกอบด้วย agent.json, สคริปต์ปรับใช้, การกำหนดค่า MCP สำหรับ Claude Code, Cursor และ VS Code, คำสั่งสำหรับเอเจนต์, .env.example และ README การสร้างโครงร่างทำงานแบบออฟไลน์และจะไม่เขียนทับไดเรกทอรีที่ไม่ว่าง

แก้ไขข้อมูลธุรกิจก่อนปรับใช้ ส่งออกคีย์ API หมายเลขผู้โทรที่เชื่อมต่อ และผู้รับการทดสอบของคุณตามที่ระบุไว้ใน README ที่สร้างขึ้น npm run deploy หรือ python deploy.py จะสร้างหรืออัปเดตเอเจนต์ ปรับใช้ฉบับร่าง และโทรทดสอบที่มีค่าใช้จ่าย สคริปต์ใช้การยืนยันตัวตนด้วยคีย์ API ส่วน CLI และตัวหุ้ม MCP แบบ stdio ยังรองรับการเข้าสู่ระบบด้วยอุปกรณ์ สคริปต์ Python ต้องใช้ Python 3.9 หรือใหม่กว่า