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 किसी अन्य स्थान पर खोलें। डिवाइस लॉग इन के लिए API का OAuth डिवाइस-फ्लो रोलआउट आवश्यक है। THUNDERPHONE_API_KEY में मौजूद संगठन 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 के लिए --api-base-url या THUNDERPHONE_API_BASE_URL का उपयोग करें। किसी प्रोफ़ाइल का टोकन किसी अलग कॉन्फ़िगर किए गए API URL पर नहीं भेजा जा सकता; अलग प्रोफ़ाइल के साथ उस URL में लॉग इन करें।

कमांड्स

हर कमांड --json स्वीकार करती है। सफल डेटा stdout पर जाता है; त्रुटियाँ stderr पर नॉनज़ीरो एग्ज़िट कोड के साथ जाती हैं। --json के बिना, आउटपुट एक कॉम्पैक्ट टेबल या फ़ील्ड सूची होता है। JSON API रिस्पॉन्स स्ट्रक्चर बनाए रखता है, जिसमें क्रेडेंशियल फ़ील्ड रिडैक्ट किए जाते हैं। MCP सर्विंग MCP प्रोटोकॉल के लिए stdout आरक्षित रखती है।

कमांडउद्देश्य
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एक US इनबाउंड नंबर प्रोविज़न करें
numbers assign NUMBER_ID --agent IDएक इनबाउंड एजेंट असाइन करें
sms send TO --from FROM --body TEXT --idempotency-key KEYसुरक्षित रीप्ले के साथ ग्राहक-कनेक्टेड कैरियर नंबर से SMS भेजें
sms list [--limit N], sms get UUIDSMS रिकॉर्ड सूचीबद्ध करें या जाँचें
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 के लिए आपके कनेक्टेड Twilio या Telnyx अकाउंट पर SMS-सक्षम नंबर भी आवश्यक है। यह कभी भी ThunderPhone के स्वामित्व वाले नंबर से नहीं भेजता। आइडेम्पोटेंसी कुंजी का पुन: उपयोग केवल उसी प्रेषक, प्राप्तकर्ता और बॉडी के साथ दोबारा प्रयास करते समय करें।

इंपोर्ट 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 होना चाहिए; Codex TOML मान बनाए रखे जाते हैं, लेकिन टिप्पणियाँ दोबारा फ़ॉर्मैट हो सकती हैं।

सेटअप डायरेक्ट रिमोट HTTP को प्राथमिकता देता है। --api-key-env के साथ, यह वेरिएबल रेफ़रेंस लिखता है, कभी भी key नहीं। उस विकल्प के बिना, डायरेक्ट HTTP क्लाइंट के OAuth समर्थन पर निर्भर करता है; यह CLI क्रेडेंशियल फ़ाइल का उपयोग नहीं करता। किसी भी stdio-सक्षम क्लाइंट में thunderphone login क्रेडेंशियल का पुनः उपयोग करने के लिए, यह उपयोग करें:

{
  "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 को ग्लोबली इंस्टॉल करने के बाद thunderphone-mcp setup के माध्यम से भी उपलब्ध है।

प्रोजेक्ट बनाएं

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, डिप्लॉय स्क्रिप्ट, Claude Code, Cursor और VS Code के लिए MCP कॉन्फ़िगरेशन, एजेंट निर्देश, .env.example, और एक README शामिल होते हैं। स्कैफ़ोल्डिंग ऑफ़लाइन है और गैर-खाली डायरेक्टरी को ओवरराइट करने से मना करती है।

डिप्लॉयमेंट से पहले बिज़नेस तथ्यों को एडिट करें। जनरेट किए गए README में बताए अनुसार API key, कनेक्टेड कॉलर नंबर और अपने टेस्ट प्राप्तकर्ता को एक्सपोर्ट करें। npm run deploy या python deploy.py एजेंट बनाता या अपडेट करता है, उसका ड्राफ़्ट डिप्लॉय करता है, और एक बिल योग्य टेस्ट कॉल करता है। स्क्रिप्ट API-key ऑथेंटिकेशन का उपयोग करती हैं; CLI और stdio MCP रैपर डिवाइस लॉगिन का भी समर्थन करते हैं। Python स्क्रिप्ट के लिए Python 3.9 या बाद का संस्करण आवश्यक है।