Pi ইনস্টলেশন এবং OmniProxy কনফিগারেশন
আপনার টার্মিনালে এমন একটি অ্যাসিস্ট্যান্ট চান যা ফাইল পড়তে এবং প্রজেক্ট পরিদর্শন করতে পারে, কিন্তু চিন্তিত যে ইনস্টলেশন এবং কনফিগারেশন খুব জটিল হবে? Pi হালকা এবং ডিফল্টরূপে ফিচারগুলোর একটি ন্যূনতম সেট অন্তর্ভুক্ত করে। এটি ইনস্টল করার পর, আপনি আপনার কাজের পদ্ধতির সাথে মানানসই কমান্ড, ওয়ার্কফ্লো এবং ইন্টারফেস ধীরে ধীরে যোগ করতে পারেন।
Pi হলো একটি ছোট টার্মিনাল অ্যাসিস্ট্যান্ট—একটি প্রোগ্রাম যা কমান্ড লাইনে সরাসরি আপনার সাথে কথা বলে, ফাইল পড়ে এবং কাজ সম্পন্ন করে। এর একটি ছোট সিস্টেম প্রম্পট আছে এবং ডিফল্টরূপে মাত্র কয়েকটি টুল আছে। যদি আপনার অন্য কমান্ড, ওয়ার্কফ্লো বা ইন্টারফেসের প্রয়োজন হয়, তবে আপনি পরে এক্সটেনশনের মাধ্যমে সেগুলো যোগ করতে পারেন। এক্সটেনশন হলো এমন কম্পোনেন্ট যা Pi-তে সক্ষমতা যোগ করে এবং আপনি সেগুলো তৈরি করার পর অন্যদের সাথে শেয়ার করতে পারেন।
সাব-এজেন্ট একটি কাজের অংশ অন্য অ্যাসিস্ট্যান্টের কাছে অর্পণ করে, যখন প্ল্যান মোড এক্সিকিউশন শুরু হওয়ার আগে ধাপগুলো সংগঠিত করে। কোনো ফিচারই ডিফল্টরূপে অন্তর্ভুক্ত নয়, তবে আপনি Pi-কে সেগুলো তৈরি করতে বলতে পারেন অথবা অন্যদের শেয়ার করা প্যাকেজ ইনস্টল করতে পারেন।
শুরু করার আগে
macOS এবং Linux একটি ইনস্টলেশন স্ক্রিপ্ট ব্যবহার করে—একটি একক কমান্ড যা স্বয়ংক্রিয়ভাবে Pi ডাউনলোড এবং ইনস্টল করে। Windows-এ, Pi হোমপেজে প্রদত্ত PowerShell কমান্ড ব্যবহার করুন। PowerShell হলো Windows-এর সাথে অন্তর্ভুক্ত কমান্ড-লাইন এনভায়রনমেন্ট। আপনি WSL-এও Pi ইনস্টল করতে পারেন, যা Windows-এর মধ্যে উপলব্ধ Linux এনভায়রনমেন্ট।
যদি আপনি npm দিয়ে ইনস্টল করতে চান, তবে আপনার Node.js 22.19 বা তার পরবর্তী সংস্করণ প্রয়োজন। npm হলো Node.js-এর সাথে ব্যবহৃত প্যাকেজ ম্যানেজার এবং কমান্ড লাইন থেকে Pi ইনস্টল করতে পারে।
macOS Linux
install.sh
- অফিসিয়াল স্ক্রিপ্ট curl করুন
- ইনস্টলার ডিপেন্ডেন্সিগুলো পিন করে
- pi update দিয়ে আপডেট করুন
Windows
install.ps1
- অফিসিয়াল PowerShell কমান্ড
- Git for Windows Bash প্রদান করে
- আপনি WSL-ও ব্যবহার করতে পারেন
Node আগে থেকেই ইনস্টল করা আছে
npm
- Node 22.19+ প্রয়োজন
- প্যাকেজের নাম হলো pi-coding-agent
- যোগ করুন --ignore-scripts
প্রথমবার Pi ইনস্টল এবং চালু করা
macOS বা Linux-এ, একটি টার্মিনাল খুলুন এবং চালান:
curl -fsSL https://pi.dev/install.sh | sh
Windows-এ, PowerShell খুলুন এবং চালান:
powershell -c "irm https://pi.dev/install.ps1 | iex"
যদি Node.js 22.19 বা তার পরবর্তী সংস্করণ আগে থেকেই ইনস্টল করা থাকে, তবে আপনি কুইকস্টার্ট থেকে বিকল্প কমান্ডটিও ব্যবহার করতে পারেন:
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
ইনস্টলেশন স্ক্রিপ্টটি একটি ইন্টারেক্টিভ টার্মিনালে প্রশ্ন করার জন্য বিরতি নিতে পারে। চালিয়ে যেতে অন-স্ক্রিন প্রম্পটগুলো অনুসরণ করুন। যদি আপনার কাছে ইতিমধ্যে Node-এর একটি কম্প্যাটিবল সংস্করণ থাকে, তবে এই npm কমান্ডটি প্রশ্ন করবে না। অন্য ডিরেক্টরিতে Pi ইনস্টল করতে, যোগ করুন --prefix /your/directory। ২০২৬-১০-০৯ তারিখে, এটি Pi 1.1.0 ইনস্টল করেছিল।
একটি সাধারণ npm ইনস্টলেশনের জন্য ডিপেন্ডেন্সি লাইফসাইকেল স্ক্রিপ্টের প্রয়োজন হয় না, যা হলো সেই স্ক্রিপ্ট যা প্যাকেজগুলো ইনস্টলেশনের সময় স্বয়ংক্রিয়ভাবে চালায়। ইনস্টলেশন স্ক্রিপ্ট ডিপেন্ডেন্সিগুলো পিন করে; এরপর, Pi আপডেট করুন pi updateদিয়ে। npm ইনস্টলেশনের জন্য, আপনার প্যাকেজ ম্যানেজার দ্বারা প্রদত্ত আপডেট পদ্ধতি ব্যবহার করুন। Nix ব্যবহারকারীদের Pi-এর flake থেকে ইনস্টল করা উচিত। flake হলো একটি Nix কনফিগারেশন যা সফটওয়্যার এবং এর ডিপেন্ডেন্সি বর্ণনা করে, এবং pi update Nix ইনস্টলেশন আপডেট করতে পারে না।
ইনস্টলেশনের পর, প্রথমে নিশ্চিত করুন যে আপনার টার্মিনাল Pi খুঁজে পাচ্ছে:
pi --version
Windows-এ, যদি আপনি চান মডেলগুলো Bash কমান্ড এক্সিকিউট করুক, তবে বেশিরভাগ স্থানীয় ব্যবহারকারীর জন্য Git for Windows ইনস্টল করার পরামর্শ দেওয়া হয়। Bash হলো কমান্ড এনভায়রনমেন্ট যা Pi কিছু কমান্ড চালানোর জন্য ব্যবহার করে। Pi পরীক্ষা করে shellPath সেটিং ~/.pi/agent/settings.jsonএ, Program Files-এর অধীনে Git Bash, এবং তারপর bash.exe PATH-এ, সেই ক্রমে। shellPath Bash-এর অবস্থান নির্দিষ্ট করে, যখন PATH হলো সেই ডিরেক্টরিগুলোর তালিকা যেখানে সিস্টেম কমান্ড খোঁজে।
Pi শুরু করার পর, আপনি লিখতে পারেন !printf 'Bash is working\n' এটি পরীক্ষা করতে। যদি আপনার ফাইল এবং টুলগুলো ইতিমধ্যে WSL-এ থাকে, তবে কুইকস্টার্ট অনুসরণ করে সেই Linux এনভায়রনমেন্টে Pi ইনস্টল করুন।
এরপর, সেই ফোল্ডারে প্রবেশ করুন যা আপনি Pi-কে পরিদর্শন বা কাজ করতে দিতে চান, এবং তারপর এটি শুরু করুন:
cd /path/to/folder
pi
এই ফোল্ডারটি Pi-এর বর্তমান কাজের পরিধি হয়ে ওঠে। Pi এটি ফাইল এবং কনফিগারেশন আবিষ্কার করতে এবং সেশনগুলো গ্রুপ করতে ব্যবহার করে।
OmniProxy থেকে সংযোগের মানগুলো সংগ্রহ করুন
প্রথমে, OmniProxy থেকে এই তিনটি মান সংগ্রহ করুন:
baseUrl: https://your-omniproxy-origin.example/v1
apiKey: <YOUR_OMNIPROXY_API_KEY>
Model ID: Copy the full ID from the current OmniProxy model list
baseUrl হলো API এন্ডপয়েন্ট যেখানে Pi অনুরোধ পাঠায় এবং এটি অবশ্যই অন্তর্ভুক্ত করতে হবে /v1. apiKey হলো API অ্যাক্সেস করার জন্য ব্যবহৃত কী (key)। Model ID হলো কল করার জন্য মডেলের নাম এবং এটি অবশ্যই বর্তমান OmniProxy মডেল তালিকা থেকে সম্পূর্ণ কপি করতে হবে।
সেট করুন api কে openai-completionsহিসেবে, যেমন কম্প্যাটিবল API উদাহরণে দেখানো হয়েছে। এই ফিল্ডটি Pi-কে বলে যে অনুরোধ পাঠানোর সময় কোন API ফরম্যাট ব্যবহার করতে হবে।
সম্পূর্ণ মডেল আইডি কপি করুন, নামের যেকোনো স্লাশসহ। ২০২৬-১০-০৯ তারিখে, প্রোভাইডার ডকুমেন্টেশনে দুটি রেফারেন্স আইডি ছিল gemini-3.8-flash এবং grok-4.7। তালিকায় নেই এমন কোনো নাম কপি করবেন না।
টুল কনফিগারেশন লিখুন
Pi-এর ব্যবহারকারী-স্তরের কাস্টম মডেল কনফিগারেশন সংরক্ষিত হয় models.jsonএ। এই ফাইলটি এজেন্ট ডিরেক্টরিতে অবস্থিত, যা ডিফল্টরূপে ~/.pi/agentহিসেবে থাকে, তাই এর সম্পূর্ণ পাথ হলো ~/.pi/agent/models.json। যদি PI_CODING_AGENT_DIR এনভায়রনমেন্ট ভেরিয়েবল সেট করা থাকে, তবে Pi পরিবর্তে সেই ভেরিয়েবল দ্বারা নির্দিষ্ট ডিরেক্টরি ব্যবহার করে। এনভায়রনমেন্ট ভেরিয়েবল হলো সিস্টেম দ্বারা সরবরাহ করা একটি কনফিগারেশন মান যা প্রোগ্রামগুলো পড়ার জন্য ব্যবহার করে।
কম্প্যাটিবল API উদাহরণে দেখানো কনফিগারেশন লিখুন:
{
"providers": {
"omniproxy": {
"baseUrl": "https://your-omniproxy-origin.example/v1",
"api": "openai-completions",
"apiKey": "<YOUR_OMNIPROXY_API_KEY>",
"models": [
{ "id": "gemini-3.8-flash", "input": ["text"] },
{ "id": "grok-4.7", "input": ["text"] }
]
}
}
}
providers সংযুক্ত পরিষেবাগুলো তালিকাভুক্ত করে, যখন models সেই মডেলগুলো তালিকাভুক্ত করে যা নির্বাচন করা যেতে পারে। প্রতিটি মডেলের id অবশ্যই বর্তমান OmniProxy মডেল তালিকার সম্পূর্ণ মডেল আইডির সাথে মিলতে হবে। input নির্দেশ করে যে মডেলটি এখানে টেক্সট ইনপুটের জন্য কনফিগার করা হয়েছে।
apiKey প্রবেশ করানো যেতে পারে একটি লিটারেল মান হিসেবে, অথবা $NAME অথবা ${NAME} হিসেবে যাতে Pi এটি একটি এনভায়রনমেন্ট ভেরিয়েবল থেকে পড়তে পারে। একটি মান যা শুরু হয় ! দিয়ে তা একটি কমান্ড হিসেবে গণ্য হয় এবং প্রতিটি অনুরোধের জন্য এক্সিকিউট করা হয়। কোনো রিয়েল কী (key) রিপোজিটরিতে কমিট করবেন না। যদি গেটওয়ে কী (key) যাচাই না করে, তবে আপনি একটি প্লেসহোল্ডার স্ট্রিং লিখতে পারেন যা শুধুমাত্র আপনার স্থানীয় মেশিনে ব্যবহৃত হয়। ২০২৬-১০-০৯ তারিখে, Pi এই কনফিগারেশন দিয়ে সফলভাবে ফাইলটি পড়েছিল।
খোলা /model এই ফাইলটি রিলোড করে। /model হলো Pi-তে মডেল দেখার এবং নির্বাচন করার ইন্টারফেস। কাস্টম মডেলগুলো উপস্থিত হয় না /model এ যতক্ষণ না Pi তাদের ক্রেডেনশিয়াল সমাধান করতে পারে। একটি মডেল নির্বাচন করার পর, চাপুন Ctrl+S নতুন সেশনের জন্য এটিকে ডিফল্ট মডেল হিসেবে সংরক্ষণ করতে।
ফাইল
models.json
- ডিফল্ট ডিরেক্টরি: ~/.pi/agent
- providers-এর অধীনে একটি এন্ট্রি যোগ করুন
- api-কে completions হিসেবে সেট করুন
ঠিকানা
baseUrl
- /v1 অন্তর্ভুক্ত করুন
- apiKey একটি ভেরিয়েবল রেফারেন্স করতে পারে
- মডেল আইডি অবশ্যই সঠিক হতে হবে
নির্বাচন করুন
/model
- এটি খোলা ফাইলটি রিলোড করে
- আপনার যোগ করা মডেলটি নির্বাচন করুন
- Ctrl+S এটিকে ডিফল্ট হিসেবে সংরক্ষণ করে
একটি বাস্তব কাজ দিয়ে যাচাই করুন
কনফিগারেশন সম্পন্ন করার পর, আপনি ফাইলযুক্ত একটি ডিরেক্টরিতে একটি নন-ইন্টারেক্টিভ চেক করতে পারেন। নন-ইন্টারেক্টিভ মোড মানে Pi এই একক কাজটি সম্পন্ন করে এবং তারপর চলমান কথোপকথনে প্রবেশ না করে বেরিয়ে যায়। মানটি প্রতিস্থাপন করুন --model এর পরে বর্তমান OmniProxy তালিকা থেকে সম্পূর্ণ আইডি দিয়ে:
pi -p --provider omniproxy --model gemini-3.8-flash --tools read "Read the first line of the file you specify. Do not modify the file."
এখানে, --tools read শুধুমাত্র রিড টুল সক্ষম করে, এবং কাজটি Pi-কে ফাইলটি পরিবর্তন না করার জন্যও স্পষ্টভাবে নির্দেশ দেয়। ২০২৬-১০-০৯ তারিখে, Pi 1.1.0 সফলভাবে ফাইলের বিষয়বস্তু পড়েছিল। প্রথম রেসপন্সটি প্রায় দুই মিনিট সময় নিয়েছিল।
আপনি ইন্টারেক্টিভ মোডও ব্যবহার করতে পারেন: ডিরেক্টরিতে প্রবেশ করুন, চালান pi, এবং তারপর একটি মডেল নির্বাচন করুন /modelদিয়ে। কুইকস্টার্টের একটি উদাহরণ কাজ Pi-কে ব্যাখ্যা করতে বলে যে রিপোজিটরিটি কীভাবে সংগঠিত এবং কীভাবে এর চেকগুলো চালাতে হয়। পর্যবেক্ষণ করুন যে এটি ফাইলগুলো পড়ে এবং একটি ব্যাখ্যা প্রদান করে কিনা, তারপর OmniProxy-এর অনুরোধ লগে উৎস এবং মডেল আইডি নিশ্চিত করুন।
চালু করুন
pi চালু হয়
- প্রথমে ফোল্ডারে cd করুন
- pi --version আউটপুট দেয়
- মডেলের নাম ইন্টারফেসের নিচে উপস্থিত হয়
কাজ
এটি ডিরেক্টরিটি পড়েছে
- রিপোজিটরিটি কীভাবে সংগঠিত তা জিজ্ঞাসা করুন
- এর তালিকাভুক্ত ফাইলগুলো পর্যালোচনা করুন
- শুধুমাত্র সফল কনফিগারেশন সেভের ওপর নির্ভর করবেন না
লগ
গেটওয়েতে দৃশ্যমান
- উৎস হলো Pi
- মডেল আইডি মিলে যায়
- কী (key) স্থানীয় মেশিনে রাখুন
সাধারণ ত্রুটি
piখুঁজে পাওয়া যাচ্ছে না: টার্মিনালটি পুনরায় খুলুন এবং চেষ্টা করুনpi --versionআবার। npm ইনস্টলেশনের জন্য, নিশ্চিত করুন যে গ্লোবাল বিন ডিরেক্টরিটি PATH-এ আছে।- কাস্টম মডেলগুলো উপস্থিত হচ্ছে না
/model: নিশ্চিত করুন যেmodels.jsonআছে~/.pi/agent/এ, যাচাই করুন যেapiKeyসমাধান করা যেতে পারে, এবং তারপর পুনরায় খুলুন/model। - Windows রিপোর্ট করে যে Bash খুঁজে পাওয়া যাচ্ছে না: Git for Windows ইনস্টল করুন, অথবা সেট করুন
shellPathএ~/.pi/agent/settings.json। JSON-এ ব্যাকস্ল্যাশ অবশ্যই দুবার লিখতে হবে। - অনুরোধটি প্রত্যাখ্যাত হয়েছে: পরীক্ষা করুন যে
apiহলোopenai-completionsএবং যেbaseUrlশেষ হয়/v1দিয়ে। পরিষেবাটি নিজেকে কম্প্যাটিবল হিসেবে বর্ণনা করে বলেই অতিরিক্ত কম্প্যাটিবিলিটি অপশন সক্ষম করবেন না। - মডেল আইডি অবৈধ: বর্তমান OmniProxy তালিকা থেকে এটি আবার কপি করুন।
অফিসিয়াল রেফারেন্স
ইনস্টলেশন কমান্ডের জন্য, দেখুন Pi website এবং Quickstart। মডেল ফাইলের জন্য, দেখুন Choose a Model এবং Configuration। Windows কমান্ড এনভায়রনমেন্টের জন্য, দেখুন Run Pi on Windows। উদাহরণে ব্যবহৃত মডেল আইডির জন্য, দেখুন Gemini model list এবং xAI models page.
আপনার নিজস্ব OmniProxy কনফিগারেশন থেকে প্রতিটি প্লেসহোল্ডার মান দিয়ে প্রতিস্থাপন করুন। কখনোই একটি বাস্তব কি প্রকাশ করবেন না।
একটি সংরক্ষিত ফলাফল বা HTTP 200 নিজে থেকেই এজেন্টের পূর্ণ সামঞ্জস্যতা প্রমাণ করে না। OmniProxy-এর কল লগে উৎস এবং মডেল পরীক্ষা করুন।