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 কী কমান্ডগুলোকেও প্রমাণীকরণ করতে পারে এবং সংরক্ষিত লগ ইন শংসাপত্রের ওপর অগ্রাধিকার পায়।

শংসাপত্র প্রোফাইল অনুযায়ী ~/.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-এ যায়; ত্রুটি nonzero এক্সিট কোডসহ 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একটি ইনবাউন্ড এজেন্ট বরাদ্দ করুন
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-এর জন্য user স্কোপ প্রয়োজন। প্রজেক্ট থেকে একটি একক ক্লায়েন্ট শনাক্ত করতে --client বাদ দিন; শনাক্তকরণ অস্পষ্ট হলে ইন্টারঅ্যাক্টিভভাবে prompt দেখায় বা নন-ইন্টারঅ্যাক্টিভ সেশনে নির্দেশনাসহ ব্যর্থ হয়। সেটআপ যে ফাইলটিতে লিখেছে তা দেখায় এবং সম্পর্কহীন সার্ভারগুলো অপরিবর্তিত রাখে। বিদ্যমান JSON অবশ্যই বৈধ strict JSON হতে হবে; Codex TOML মানগুলো সংরক্ষিত থাকে, তবে মন্তব্যের বিন্যাস পরিবর্তিত হতে পারে।

সেটআপ সরাসরি রিমোট HTTP-কে অগ্রাধিকার দেয়। --api-key-env ব্যবহার করলে এটি কখনও কী নয়, একটি ভেরিয়েবল রেফারেন্স লেখে। এই অপশন ছাড়া, সরাসরি 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 কী, সংযুক্ত কলার নম্বর এবং আপনার পরীক্ষার প্রাপক এক্সপোর্ট করুন। npm run deploy অথবা python deploy.py এজেন্ট তৈরি বা আপডেট করে, এর ড্রাফট ডিপ্লয় করে এবং একটি বিলযোগ্য টেস্ট কল করে। স্ক্রিপ্টগুলো API-কী প্রমাণীকরণ ব্যবহার করে; CLI এবং stdio MCP র‍্যাপার ডিভাইস লগইনও সমর্থন করে। Python স্ক্রিপ্টের জন্য Python 3.9 বা পরবর্তী সংস্করণ প্রয়োজন।