ThunderPhone 2.0 متاح الآن.خدمة ذاتية، ابتداءً من 2 سنت/دقيقة.اقرأ الإعلان

Getting Started

واجهة سطر أوامر ThunderPhone

سجّل الدخول، وأدِر وكلاء الصوت والمكالمات، واضبط عملاء MCP، وأنشئ هياكل المشاريع من الطرفية.

تتطلب واجهة CLI إصدار Node.js 18.18 أو أحدث. شغّلها باستخدام npx، أو ثبّتها على مستوى النظام:

npm install -g thunderphone
thunderphone --help

تسجيل الدخول

npx thunderphone login
thunderphone whoami --json

يطبع تسجيل الدخول رمز تحقق، ويفتح المتصفح، وينتظر التفويض. استخدم --no-browser على جهاز بلا واجهة رسومية وافتح عنوان URL المطبوع في مكان آخر. يتطلب تسجيل دخول الجهاز تفعيل تدفق أجهزة OAuth الخاص بواجهة 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؛ سجّل الدخول إلى ذلك العنوان باستخدام ملف شخصي منفصل.

الأوامر

يقبل كل أمر --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تعيين وكيل وارد
sms send TO --from FROM --body TEXT --idempotency-key KEYإرسال رسالة SMS عبر رقم مشغّل متصل بالعميل مع إعادة آمنة
sms list [--limit N], sms get UUIDعرض سجلات SMS أو فحصها
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. تستمر أرقام VoIP الخاصة بالعملاء في دعم المكالمات الصادرة. تبدأ الأرقام التي يوفرها ThunderPhone كأرقام واردة فقط؛ ويمكن لمسؤول المؤسسة طلب تفعيل المكالمات الصادرة من صفحة أرقام الهواتف، حيث تُراجع كل طلبات يدويًا. تكون القيمة الافتراضية لـ --wait مهلة ساعة واحدة؛ اضبط --timeout SECONDS لتغييرها. توقف المهلة الانتظار من دون إنهاء المكالمة.

تتطلب SMS أيضًا رقمًا يدعم SMS في حساب Twilio أو Telnyx المتصل لديك. ولا تُرسل أبدًا من رقم تملكه ThunderPhone. أعد استخدام مفتاح عدم التكرار فقط عند إعادة محاولة المرسل والمستلم والنص نفسه تمامًا.

يدعم الاستيراد vapi وretell وelevenlabs وbland. الوسيط الثاني هو مسار إلى تصدير JSON من مورّد، وليس معرّف مورّد بعيد. تُعد 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 صارمًا وصالحًا؛ تُحفظ قيم Codex TOML لكن قد يُعاد تنسيق التعليقات.

يفضّل الإعداد 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 نقطة النهاية. لا يرسل أي بيانات قياس عن بُعد. يتوفر الإعداد المستقل أيضًا عبر 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 أو إصدارًا أحدث.