Skip to main content
CLI অটোমেশনের জন্য তৈরি: এটি ডিফল্টভাবে কাঠামোবদ্ধ JSON প্রিন্ট করে, এনভায়রনমেন্ট ভ্যারিয়েবল থেকে ক্রেডেনশিয়াল নেয় এবং স্ট্যান্ডার্ড এক্সিট কোড ব্যবহার করে। প্রতিটি কমান্ড Social media studio-র একটি REST এন্ডপয়েন্টের সাথে ১:১ মেলে, তাই অ্যাপ যা করতে পারে তার সবই স্ক্রিপ্ট করা যায়।
বাইনারিটি so-me (ডেভেলপমেন্ট বিল্ড so-me-dev)। নিচের সব উদাহরণে so-me ব্যবহৃত হয়েছে। সাবকমান্ড কোলন সিনট্যাক্স ব্যবহার করে — posts:list, media:upload, agent export-tools।

আউটপুট মোড

আউটপুট ফরম্যাটিং গ্লোবাল ফ্ল্যাগ দিয়ে নিয়ন্ত্রিত হয়, যা প্রতিটি কমান্ডে প্রযোজ্য। এগুলো বাকি আর্গুমেন্টের পাশে কমান্ড লাইনে দিতে হবে (Commander এগুলোকে গ্লোবাল অপশন হিসেবে গণ্য করে)।
--table মানুষের জন্য ব্যবহার করুন, স্ক্রিপ্টের জন্য নয়। টেবিল ভিউ লম্বা ফিল্ড ছেঁটে ফেলে এবং কিছু কলাম বেছে নেয়, তাই এটি মেশিন-পার্সযোগ্য নয়। অটোমেশনে সবসময় ডিফল্ট JSON jq-তে পাইপ করুন।
ডিফল্ট ফরম্যাট CLI কনফিগে (outputFormat) সংরক্ষণ করাও যায়, কিন্তু কমান্ড লাইনের --table ওই কলের জন্য সবসময় জেতে।

JSON আউটপুট ও jq

এক্সট্র্যাকশন ও রূপান্তরের জন্য যেকোনো কমান্ড jq-তে পাইপ করুন।
তালিকা এন্ডপয়েন্ট পেজ করা এনভেলপ ফেরত দেয়, সরাসরি অ্যারে নয়। কাঠামো হলো { "data": [ ... ], "meta": { ... } }, তাই আপনাকে .data[]-তে ইনডেক্স করতে হবে। একক-অবজেক্ট কমান্ড (posts:get, posts:create, posts:update, …) অবজেক্ট সরাসরি ফেরত দেয়, তাই .id-এর মতো ফিল্ড সবচেয়ে উপরের স্তরে থাকে।

পেজিনেশন

তালিকা কমান্ড দুটি পেজিনেশন ফ্ল্যাগ গ্রহণ করে। তালিকা কমান্ডে --cursor বা --all ফ্ল্যাগ নেই — --page বাড়িয়ে পেজ করুন।
--all ফ্ল্যাগ শুধু agent export-tools-এ আছে, যেখানে এর অর্থ “প্রতিটি টুল ফরম্যাট আউটপুট দিন” — পেজিনেশনের সাথে এর সম্পর্ক নেই।

শেল স্ক্রিপ্টিং

তৈরি ও শিডিউল

-a/--accounts না দিলে posts:create --platform থেকে সোশ্যাল অ্যাকাউন্ট স্বয়ংক্রিয়ভাবে নির্ণয় করে। একাধিক অ্যাকাউন্ট মিললে কমান্ড ইন্টারেক্টিভভাবে জিজ্ঞাসা করে — তাই নন-ইন্টারেক্টিভ CI-তে -a দিয়ে সুনির্দিষ্ট অ্যাকাউন্ট ID দিন, অথবা ওই প্ল্যাটফর্মের জন্য একটিমাত্র সংযুক্ত অ্যাকাউন্ট রাখুন।

ব্যর্থ পোস্ট বাল্ক ডিলিট

সব ড্রাফট রূপান্তর

CI-র জন্য প্রমাণীকরণ

CLI এই ক্রমে ক্রেডেনশিয়াল খোঁজে: প্রথমে --api-key ফ্ল্যাগ, তারপর SOME_API_KEY এনভায়রনমেন্ট ভ্যারিয়েবল, তারপর auth:login-এর সংরক্ষিত API কী। অটোমেশনের জন্য এনভায়রনমেন্ট ভ্যারিয়েবল ভালো, যাতে ডিস্কে কিছু লেখা না হয়।

GitHub Actions

আপনার API কী রিপোজিটরি সিক্রেট (SOME_API_KEY) হিসেবে রাখুন। CLI এটি স্বয়ংক্রিয়ভাবে এনভায়রনমেন্ট থেকে পড়ে — কখনো ওয়ার্কফ্লো ফাইলে কী বসাবেন না বা রিপোজিটরিতে কমিট করবেন না।

ত্রুটি সামলানো

এক্সিট কোড

ব্যর্থ হলে CLI নন-জিরো এক্সিট কোড (process.exitCode = 1) সেট করে, ফলে &&, set -e এবং if গার্ড প্রত্যাশিতভাবে কাজ করে।

ভার্বোস ত্রুটি

পূর্ণ ত্রুটির বিবরণ, সম্ভব হলে স্ট্যাক ট্রেসসহ, দেখতে --verbose ব্যবহার করুন:
API ক্লায়েন্ট যেসব সাধারণ ত্রুটির অবস্থা সামনে আনে:

রেট লিমিট সামলানো

রেট-লিমিটেড অনুরোধ (HTTP 429) এক্সিট কোড 1 দিয়ে বেরিয়ে যায়। স্ক্রিপ্টে ব্যাকঅফসহ রিট্রাই লজিক যোগ করুন:

এজেন্ট টুল ডেফিনিশন

CLI Social media studio-র টুল ক্যাটালগ AI এজেন্ট ফ্রেমওয়ার্কের ব্যবহারযোগ্য ফরম্যাটে এক্সপোর্ট করতে পারে। agent export-tools MCP সার্ভার থেকে (POST /mcp-এ একটি tools/list JSON-RPC কল) প্রামাণিক টুল তালিকা লাইভ আনে এবং আপনার বেছে নেওয়া ফরম্যাটে আউটপুট দেয়। MCP সার্ভারই একমাত্র সত্যের উৎস, তাই এক্সপোর্ট করা ডেফিনিশন সবসময় লাইভ ক্যাটালগের সাথে মেলে।
string
mcp, openai, anthropic, hermes, openclaw-এর একটি। --all না দিলে আবশ্যক।
string
আউটপুট একটি ফাইলে লিখুন (এবং সাথের যেকোনো ফাইলও পাশে লিখুন)। পাথ ডিরেক্টরির মতো দেখালে (কোনো ফাইল এক্সটেনশন নেই, বা শেষে স্ল্যাশ আছে) ফরম্যাটের ডিফল্ট ফাইলনাম যুক্ত হয়। বাদ দিলে প্রাথমিক আউটপুট stdout-এ লেখা হয়।
boolean
default:"false"
সমর্থিত প্রতিটি ফরম্যাট আউটপুট দিন। --out-কে ডিরেক্টরি ধরা হয় (ডিফল্ট ./agent-tools) এবং প্রতিটি ফরম্যাট নিজস্ব সাবডিরেক্টরিতে লেখা হয়।

সমর্থিত ফরম্যাট

উদাহরণ

প্রতিটি ফরম্যাট একই tools/list রেসপন্স থেকে তৈরি, তাই এক্সপোর্ট করা ডেফিনিশন লাইভ টুল ক্যাটালগের সাথে সিঙ্কে থাকে। টুলের নাম snake_case (যেমন create_post) এবং CLI-র resource:verb কমান্ডগুলোর অনুরূপ। MCP ট্রান্সপোর্টে একই টুলগুলো mcp_so-me-studio_<tool_name> (যেমন mcp_so-me-studio_create_post) হিসেবে নিবন্ধিত হয়।

সেলফ-হোস্টেড ইনস্ট্যান্স

CLI-কে ফ্ল্যাগ বা এনভায়রনমেন্ট ভ্যারিয়েবলের মাধ্যমে কাস্টম API URL-এ নির্দেশ করুন: