VPS-এ OpenCode সেটআপ করার নিয়ম
আপনার VPS-এ OpenCode ইনস্টল করার সঠিক পদ্ধতি জানুন। নিরাপত্তার জন্য আনপ্রিভিলেজড ইউজার ব্যবহার, tmux সেশন কনফিগারেশন এবং API কি সুরক্ষিত রাখার পূর্ণাঙ্গ নির্দেশিকা এখানে দেওয়া হলো।
OpenCode কী এবং আপনি কী সেটআপ করছেন
OpenCode হলো টার্মিনালের জন্য তৈরি একটি ওপেন সোর্স AI কোডিং এজেন্ট। আপনি এটিকে একটি প্রজেক্ট ডিরেক্টরির ভেতরে চালু করেন এবং এটি আপনার কোড পড়ে, পরিবর্তনের প্রস্তাব দেয়, ফাইল এডিট করে এবং কমান্ড চালায়—সবই একটি টার্মিনাল ইউজার ইন্টারফেস (TUI) থেকে। এটি MIT লাইসেন্সপ্রাপ্ত, এটি 75টিরও বেশি মডেল প্রোভাইডারের সাথে সংযুক্ত হতে পারে এবং অক্টোবর 2026 পর্যন্ত প্রায় 219,000 GitHub স্টার নিয়ে এটি বর্তমানে সবচেয়ে জনপ্রিয় ওপেন সোর্স কোডিং এজেন্ট। একটি VPS-এ OpenCode চালানোর জন্য, আপনি এটিকে একটি ডেডিকেটেড আনপ্রিভিলেজড (unprivileged) ইউজারের অধীনে ইনস্টল করবেন, আপনার মডেল API কি (key) একটি প্রাইভেট ফাইলে রাখবেন এবং এটিকে tmux-এর ভেতরে চালু করবেন যাতে আপনার কানেকশন বিচ্ছিন্ন হলেও সেশনটি টিকে থাকে। এই গাইডটি ঠিক সেই কাজটিই সেই ক্রমানুসারে সম্পন্ন করে।
নামের বিভ্রান্তি এড়াতে একটি বিষয় মনে রাখা জরুরি। মূল রিপোজিটরি হলো anomalyco/opencode, যা Anomaly টিম (পূর্বে SST নামে পরিচিত) রক্ষণাবেক্ষণ করে এবং প্রজেক্টটি আগে sst/opencode-এ ছিল। GitHub-এ opencode-ai/opencode নামে একটি পুরোনো, সম্পর্কহীন রিপোজিটরিও রয়েছে যা এখন আর্কাইভ করা হয়েছে, তাই নিশ্চিত হয়ে নিন যে আপনি সঠিক প্রজেক্টের ডকুমেন্টেশন পড়ছেন। অফিসিয়াল সাইট হলো opencode.ai।
কেন VPS-এ OpenCode চালাবেন
একটি কোডিং এজেন্টের সেশন দীর্ঘস্থায়ী হয়। OpenCode কোনো রিফ্যাক্টর বা টেস্ট স্যুট সম্পন্ন করতে অনেক মিনিট সময় নিতে পারে। এটি আপনার ল্যাপটপে চললে, ল্যাপটপের ঢাকনা বন্ধ করলে বা Wi-Fi সংযোগ বিচ্ছিন্ন হলে সেশনটি মাঝপথেই বন্ধ হয়ে যায়। tmux-এর ভেতরে একটি VPS-এ চালালে, আপনি সংযোগ বিচ্ছিন্ন করার পরেও এজেন্ট তার কাজ চালিয়ে যেতে পারে এবং পরবর্তীতে পুনরায় যুক্ত হয়ে আপনি তার কাজের ফলাফল দেখতে পারেন। এটি tmux ব্যবহার করে VPS-এ Claude Code চালানোর মতোই একটি পদ্ধতি এবং ল্যাপটপ থেকে এজেন্টকে সরিয়ে নেওয়ার ক্ষেত্রে এটিই সবচেয়ে বড় সুবিধা।
দ্বিতীয় কারণটি হলো অবস্থান। একটি VPS আপনার ডেপ্লয় করা কোডের কাছাকাছি থাকে: রিপোজিটরি, বিল্ড টুলস, টেস্ট ডেটাবেস এবং অনেক সময় স্টেজিং এনভায়রনমেন্ট সেখানেই বা তার পাশেই থাকে। যে এজেন্ট কোড এডিট করে এবং টেস্ট চালায়, সেটি সেই মেশিনে সবচেয়ে ভালো কাজ করে যেখানে টেস্টগুলো প্রকৃতপক্ষে রান করে। যেহেতু এই সার্ভারটি আপনার নিয়ন্ত্রণে, তাই আপনি এজেন্টকে একটি নির্দিষ্ট ও নিয়ন্ত্রিত এনভায়রনমেন্ট দিতে পারেন, যা পরবর্তী সেকশনে দেখানো হয়েছে।
আপনি যদি এখনও টুল নির্বাচন করে না থাকেন, তবে VPS-এ কোডিং AI এজেন্ট চালানো নিবন্ধটি Aider এবং Goose সহ অন্যান্য টুলের সাথে তুলনা করে সিদ্ধান্ত নিতে সাহায্য করবে।
OpenCode-এর জন্য আলাদা ইউজার তৈরি করুন
এখানে একটি সৎ প্রারম্ভিক বিন্দু হলো: একটি কোডিং এজেন্ট ফাইল এডিট করে এবং কমান্ড চালায়। এটিই তার কাজ এবং এটিই ঝুঁকি। OpenCode বিল্ড, টেস্ট এবং কাজের প্রয়োজনে যেকোনো শেল কমান্ড চালাবে, আর মডেলের বিচারবুদ্ধি ভালো হলেও নিখুঁত নয়। এজেন্টটি যে অ্যাকাউন্টের অধীনে চলে, সেটিই হলো একটি ক্ষতিকর কমান্ডের পৌঁছানোর সর্বোচ্চ সীমা। তাই এটিকে root হিসেবে চালাবেন না এবং সার্ভার অ্যাডমিনিস্ট্রেটরের জন্য ব্যবহৃত একই ইউজার দিয়েও চালাবেন না।
ব্যাকগ্রাউন্ড এজেন্টের বিপরীতে, OpenCode ইন্টারঅ্যাক্টিভ, তাই এর ইউজারের একটি রিয়েল শেল এবং হোম ডিরেক্টরি প্রয়োজন:
sudo useradd --create-home --shell /bin/bash opencode
sudo -iu opencodeযে প্রজেক্টগুলোতে আপনি এটিকে কাজ করাতে চান, সেগুলো /home/opencode-এর অধীনে রাখুন এবং সেই ইউজার দিয়ে ক্লোন করুন। অ্যাকাউন্টটিকে কোনো sudo অধিকার দেবেন না। যদি এজেন্ট কোনো ধ্বংসাত্মক কমান্ড চালায়, তবে এটি কেবল এই অ্যাকাউন্টের মালিকানাধীন ফাইলগুলোই নষ্ট করতে পারবে। এটি unprivileged user হিসেবে সার্ভিস চালানোর একই যুক্তির ওপর ভিত্তি করে তৈরি। একটি git রিপোজিটরির ভেতরে কাজ করুন এবং এজেন্টকে কোনো কাজ দেওয়ার আগে commit করুন, কারণ ভুল এডিট হলে তা একটি git revert বা git restore দিয়েই পুনরুদ্ধার করা সম্ভব, যা অন্যথায় হারিয়ে যেত। আপনার commit না করা পরিবর্তনগুলো সুরক্ষিত নয়।
OpenCode ইনস্টল করা
এই প্রজেক্টে বেশ কয়েকটি ইনস্টলেশন পদ্ধতির কথা উল্লেখ আছে, যার মধ্যে দুটি সার্ভারের জন্য উপযুক্ত। ইনস্টলেশন স্ক্রিপ্টটি সবচেয়ে দ্রুত কাজ করে এবং এটিকে opencode ব্যবহারকারী হিসেবে চালালে সবকিছু সেই ব্যবহারকারীর হোম ডিরেক্টরির ভেতরেই থাকে:
curl -fsSL https://opencode.ai/install | bashসার্ভারের ক্ষেত্রে যে সাধারণ curl | bash অভ্যাসটি সব জায়গায় প্রযোজ্য, এখানেও তা অনুসরণ করুন: গুরুত্বপূর্ণ সার্ভারে কোনো স্ক্রিপ্ট চালানোর আগে তা ডাউনলোড করুন, পড়ুন এবং তারপর চালান। ইনস্টলেশনের পর একটি নতুন শেল চালু করুন যাতে ইনস্টলারের করা PATH পরিবর্তনগুলো কার্যকর হয়, এরপর বাইনারিটি কাজ করছে কি না তা যাচাই করুন:
opencode --versionআপনি যদি প্যাকেজ ম্যানেজার পছন্দ করেন এবং সার্ভারে আগে থেকেই Node.js ইনস্টল করা থাকে, তবে npm ব্যবহার করে একই টুল npm-এর গ্লোবাল প্রিফিক্সে ইনস্টল করা সম্ভব:
sudo npm install -g opencode-aiসিস্টেম-ব্যাপী Node.js-এর ক্ষেত্রে, এই প্রিফিক্স সাধারণত /usr/local বা /usr হয়, যার bin ডিরেক্টরিটি প্রতিটি ব্যবহারকারীর PATH-এ থাকে। ভার্সন ম্যানেজার বা কাস্টম প্রিফিক্স ব্যবহার করলে বাইনারিটি অন্য কোথাও থাকতে পারে, তাই opencode ব্যবহারকারীর জন্য opencode খুঁজে পেতে প্রয়োজনে আগে npm prefix -g চালান।
যে পদ্ধতিই ব্যবহার করুন না কেন, যাচাই করার উপায় একই: opencode --version কমান্ডটি একটি ভার্সন নম্বর প্রদর্শন করবে। স্ক্রিপ্ট ইনস্টলের পর command not found দেখালে বুঝতে হবে বর্তমান শেলটি আপডেট হওয়া PATH এখনো রিড করেনি, তাই লগ আউট করে পুনরায় opencode ব্যবহারকারী হিসেবে লগ ইন করুন।
উভয় কমান্ডই OpenCode 1.x লাইনটি ইনস্টল করে, যা এখনো নিয়মিত রিলিজ পায় (16 অক্টোবর 2026-এ 1.19.3), এবং এই নির্দেশিকাটি সেই ভার্সনের ওপর ভিত্তি করেই লেখা। OpenCode 2 এখন একটি আলাদা ইনস্টলেশন হিসেবে পাওয়া যাচ্ছে, যা https://opencode.ai/v2/install বা npm প্যাকেজ @opencode/cli থেকে নেওয়া যায়। এটি ভিন্নভাবে কাজ করে: প্রতিটি ব্যবহারকারী অ্যাকাউন্টের জন্য একটি শেয়ার্ড ব্যাকগ্রাউন্ড সার্ভার সেশন, পারমিশন এবং টুল এক্সিকিউশন নিয়ন্ত্রণ করে এবং টার্মিনাল তার সাথে সংযুক্ত হয়। এর মাইগ্রেশন নির্দেশিকায় বলা হয়েছে, 2 নম্বর ভার্সন ইনস্টল করার আগে প্যাকেজ ম্যানেজার দিয়ে ইনস্টল করা 1.x ভার্সনটি সরিয়ে ফেলতে হবে, কারণ উভয়ই opencode কমান্ডটি ব্যবহার করে।
API key-কে একটি ব্যক্তিগত ফাইলে রাখুন
OpenCode-এর জন্য আপনার ব্যবহৃত মডেল প্রোভাইডারের একটি key প্রয়োজন, এবং এই key ব্যবহার করে আপনার অর্থ খরচ হতে পারে, তাই এটিকে পাসওয়ার্ডের মতো সতর্কতার সাথে ব্যবহার করুন। এমন একটি ফাইল তৈরি করুন যা শুধুমাত্র opencode ইউজার পড়তে পারে, যার মোড হবে 600। কমান্ডে সরাসরি key টাইপ করার পরিবর্তে এই ফাইলে রাখুন, কারণ কমান্ডে টাইপ করলে তা আপনার shell history-তে জমা হয়ে যায়:
install -m 600 /dev/null ~/opencode.env
nano ~/opencode.envএতে আপনার প্রোভাইডারের ভেরিয়েবলটি রাখুন, উদাহরণস্বরূপ ANTHROPIC_API_KEY=... বা আপনার প্রোভাইডারের জন্য সমতুল্য কোনো ভেরিয়েবল, কারণ OpenCode স্ট্যান্ডার্ড প্রোভাইডার এনভায়রনমেন্ট ভেরিয়েবলগুলো গ্রহণ করে। এজেন্ট শুরু করার আগে আপনার shell-এ ফাইলটি লোড করুন:
set -a; source ~/opencode.env; set +aOpenCode-এ একটি ইন্টারঅ্যাক্টিভ বিকল্পও রয়েছে: TUI-এর ভেতরে থাকা /connect কমান্ডটি আপনাকে প্রোভাইডার যোগ করার প্রক্রিয়ায় সহায়তা করবে এবং ক্রেডেনশিয়ালটি ইউজারের home ডিরেক্টরিতে ~/.local/share/opencode/auth.json ফাইলে সংরক্ষণ করবে। যদি আপনি এই পদ্ধতি ব্যবহার করেন, তবে chmod 600 ~/.local/share/opencode/auth.json কমান্ড দিয়ে নিশ্চিত করুন যে ফাইলটি ব্যক্তিগত (private) রয়েছে। উভয় পদ্ধতিই আপনার কমান্ড লাইন থেকে key-কে সুরক্ষিত রাখে; যেকোনো একটি বেছে নিন এবং সেটিই অনুসরণ করুন।
tmux-এর ভেতরে OpenCode শুরু করা
VPS সেটআপের আসল সুবিধা হলো tmux, কারণ SSH সংযোগ বিচ্ছিন্ন হলেও tmux সেশন সচল থাকে। একটি সেশন শুরু করুন, আপনার প্রজেক্ট ডিরেক্টরিতে যান এবং এজেন্ট চালু করুন:
tmux new -s opencode
cd ~/my-project
opencodeআপনি দেখবেন TUI খুলে গেছে, নিচে একটি প্রম্পট আছে এবং ইন্টারফেসে আপনার প্রজেক্টের নাম দেখা যাচ্ছে। সাধারণ ভাষায় এটিকে একটি কাজ দিন, এটি ফাইলগুলো পড়া শুরু করবে এবং পরিবর্তনের প্রস্তাব দেবে। আপনি যখন বেরিয়ে যেতে চাইবেন, তখন Ctrl-b এবং তারপর d চেপে detach করুন; আপনার ল্যাপটপ বন্ধ থাকলেও এজেন্ট কাজ চালিয়ে যাবে। পরে পুনরায় যুক্ত হতে এটি ব্যবহার করুন:
tmux attach -t opencodeসেশন, কথোপকথন এবং চলমান যেকোনো কাজ ঠিক সেখানেই থাকবে যেখানে আপনি রেখে গিয়েছিলেন। সংযোগ বিচ্ছিন্ন হলেও এটি টিকে থাকে, কিন্তু সার্ভার রিবুট হলে তা হয় না; তাই রিবুট করার পর আপনাকে একইভাবে নতুন একটি tmux সেশন শুরু করতে হবে। আপনি চাইলে দ্বিতীয় একটি tmux উইন্ডো খুলে প্রথমটির পাশাপাশি আরেকটি এজেন্ট চালাতে পারেন। তবে OpenCode সেশনগুলো একে অপরের থেকে স্বাধীন থাকে, যেখানে একই সার্ভারে থাকা Claude Code সেশনগুলো একে অপরকে বার্তা পাঠাতে পারে, যা কাজ ভাগ করার একটি ভিন্ন পদ্ধতি।
মডেল নির্বাচন করুন
OpenCode প্রোভাইডার নিরপেক্ষ। এটি AI SDK এবং Models.dev ক্যাটালগ ব্যবহার করে 75টিরও বেশি প্রোভাইডারকে সাপোর্ট করে। ফলে একই টুল Anthropic, OpenAI, Google এবং লোকাল সার্ভারসহ আরও অনেক কিছুর সাথে কাজ করে। দ্রুত উপায় হলো TUI-এর ভেতরে /connect কমান্ড ব্যবহার করা, যা প্রোভাইডারদের তালিকা দেখায় এবং ক্রেডেনশিয়াল হ্যান্ডেল করে। এমন সেটআপের জন্য যা আপনি commit এবং পুনরায় তৈরি করতে পারবেন, প্রজেক্টের রুটে একটি opencode.json রাখুন এবং মডেলটিকে provider/model-id হিসেবে সেট করুন:
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/claude-sonnet-5-5"
}এমন একটি মডেল বেছে নিন যা আপনার প্রোভাইডার এখনো সাপোর্ট করে: Anthropic 15 জুন 2026 তারিখে claude-sonnet-4-20250514 রিটায়ার করেছে, তাই যেসব কনফিগারেশনে এখনো এর নাম রয়েছে সেগুলো কাজ করবে না।
একটি লোকাল মডেলও একই ফাইলের মাধ্যমে কাজ করে, কারণ যেকোনো OpenAI-সামঞ্জস্যপূর্ণ সার্ভারকে প্রোভাইডার হিসেবে ঘোষণা করা যায়। যদি আপনি একই VPS-এ Ollama দিয়ে কোনো মডেল সার্ভ করেন, তবে কনফিগারেশনটি এর লোকাল API-কে নির্দেশ করবে এবং মডেলের নাম হবে সেটিই যা আপনার বক্সে ollama list দেখায়:
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"ollama": {
"npm": "@ai-sdk/openai-compatible",
"name": "Ollama (local)",
"options": { "baseURL": "http://127.0.0.1:11434/v1" },
"models": { "your-model-name": { "name": "Local coding model" } }
}
}
}একটি বিল্ট-ইন অভ্যাস প্রথম দিন থেকেই গ্রহণ করা উচিত। OpenCode দুটি এজেন্ট নিয়ে আসে যার মধ্যে আপনি Tab কি দিয়ে অদলবদল করতে পারেন: Build, যা পূর্ণ অ্যাক্সেসসহ ডিফল্ট এজেন্ট, এবং Plan, যা বিশ্লেষণের জন্য একটি সীমাবদ্ধ এজেন্ট। এটি অনুমতি ছাড়া নিজের প্ল্যান ডিরেক্টরির বাইরে ফাইল এডিট করতে অস্বীকার করে। তবে Plan পুরোপুরি রিড-অনলি নয়, কারণ এটি এখনো শেল কমান্ড চালাতে পারে এবং একটি শেল কমান্ড ফাইল পরিবর্তন করতে পারে। Plan-এ নতুন কাজ শুরু করুন, এটিকে কোড পড়তে দিন এবং একটি পদ্ধতির প্রস্তাব করতে দিন, তারপর যখন আপনি প্ল্যানের সাথে একমত হবেন কেবল তখনই Build-এ সুইচ করুন। যদি আপনি প্রথম ধাপটিকে পুরোপুরি রিড-অনলি রাখতে চান, তবে opencode.json-এ Plan-এর জন্য এডিট এবং শেল কমান্ড অস্বীকার করুন, কারণ OpenCode deny-কে অ্যাকশন ব্লক করা হিসেবে গণ্য করে, যেখানে ask কেবল আপনার অনুমোদনের জন্য প্রম্পট করে:
{
"$schema": "https://opencode.ai/config.json",
"agent": {
"plan": {
"permission": { "edit": "deny", "bash": "deny" }
}
}
}সার্ভারে, প্রথম ধাপ যা কিছুই পরিবর্তন করতে পারে না তা একটি সাশ্রয়ী সুরক্ষা। Claude Code একই সিদ্ধান্তকে এজেন্ট না বলে পারমিশন মোড হিসেবে উপস্থাপন করে, এবং ডিফল্ট হিসেবে অটো মোডে এর পরিবর্তন পড়ার মতো বিষয় যদি আপনি উভয় টুলই ব্যবহার করেন, কারণ একটি সেশন যে মোডে শুরু হয় তা নির্ধারণ করে যে একটি নজরবিহীন এজেন্ট কতটা পরিবর্তন করতে পারবে।
ব্লাস্ট রেডিয়াস বা প্রভাবের পরিধি
একটি কোডিং এজেন্ট নিষ্ক্রিয় নয়, তাই এই সেটআপটি কী করে এবং কী করে না তা স্পষ্টভাবে বুঝে নিন। এতে ফাইল ক্ষতিগ্রস্ত হওয়ার ঝুঁকি থাকে: opencode ব্যবহারকারী শুধুমাত্র তার নিজের হোম ডিরেক্টরির মালিক, তাই কোনো এডিট বা ডিলিট অপারেশন সেই সীমানার বাইরে যেতে পারে না। এতে ক্রেডেনশিয়াল এক্সপোজারের ঝুঁকি থাকে: কি (key) ফাইলটি একটি নির্দিষ্ট অ্যাকাউন্টে 600 মোডে সংরক্ষিত থাকে। এই সেটআপটি নির্ধারণ করে না যে অ্যাকাউন্টটি বৈধভাবে কী কী করতে পারবে, তাই প্রজেক্ট ডিরেক্টরিতে যদি প্রোডাকশন ডেপ্লয় ক্রেডেনশিয়াল থাকে, তবে এজেন্ট সেগুলো ব্যবহার করতে পারবে; তাই এজেন্টের অ্যাকাউন্ট থেকে এই ধরনের ফাইল সম্পূর্ণ দূরে রাখুন।
OpenClaw-এর মতো গেটওয়ে এজেন্টের বিপরীতে, OpenCode 1.x একটি ইন্টারঅ্যাক্টিভ টার্মিনাল প্রোগ্রাম, কোনো ডেমোন (daemon) নয়। ডিফল্টভাবে এটি কোনো লিসেনিং পোর্ট খোলে না (শুধুমাত্র --port, --hostname, বা --mdns ফ্ল্যাগ ব্যবহার করলে TUI লিসেনিং মোডে যায়) এবং এর কোনো দীর্ঘস্থায়ী সার্ভিস নেই, তাই এর জন্য কোনো systemd ইউনিট লিখতে হয় না বা ফায়ারওয়ালে পোর্ট ওপেন করতে হয় না। OpenCode 2-এ শেয়ার্ড ব্যাকগ্রাউন্ড সার্ভার থাকায় এই বিষয়টি পরিবর্তিত হয়েছে, তাই মাইগ্রেট করার আগে এই পয়েন্টটি পুনরায় যাচাই করে নিন। কন্টেইনমেন্ট বা সীমাবদ্ধতা মূলত ইউজার অ্যাকাউন্ট এবং প্রজেক্ট ডিরেক্টরির ওপর নির্ভর করে, আর এই কারণেই এই গাইডের প্রথম অংশটি সবচেয়ে গুরুত্বপূর্ণ।
এর চারপাশের সুরক্ষায় সাধারণ সতর্কতা অবলম্বন করা প্রয়োজন, কারণ একটি কোডিং VPS মূলত একটি পাবলিক সার্ভার: VPS-এ SSH হার্ডেনিং-এর নিয়ম অনুযায়ী রুট লগইন বন্ধ রেখে শুধুমাত্র কি-ভিত্তিক (key-only) SSH ব্যবহার করুন, ডিফল্ট-ডিনাই ফায়ারওয়াল সেট করুন এবং নিয়মিত আপডেট করুন। এছাড়া এজেন্ট যা তৈরি করছে তা পর্যালোচনা করুন। পুশ করার আগে এর ডিফস (diffs) পড়ুন, ঠিক যেভাবে আপনি একজন নতুন কন্ট্রিবিউটরের পুল রিকোয়েস্ট যাচাই করেন, কারণ আপনিই সেই ব্যক্তি যিনি ফলাফলটি ডেপ্লয় করছেন।
পরিশেষে, টুলটিকে সবসময় আপ-টু-ডেট রাখুন। OpenCode ঘনঘন রিলিজ হয় এবং আপডেটগুলোতে এমন সব ফিক্স থাকে যা আপনার সার্ভারে কমান্ড চালানো প্রোগ্রামের জন্য অত্যন্ত গুরুত্বপূর্ণ। আপডেট করার পদ্ধতিটি আপনার ইন্সটলেশনের মতোই হবে: opencode ব্যবহারকারী হিসেবে ইন্সটল স্ক্রিপ্টটি পুনরায় চালান, অথবা যদি npm দিয়ে ইন্সটল করে থাকেন তবে sudo npm update -g opencode-ai কমান্ডটি চালান, এরপর opencode --version দিয়ে নতুন ভার্সনটি নিশ্চিত করুন। উভয় পদ্ধতিই আপনাকে 1.x লাইনে রাখবে; OpenCode 2-এ যাওয়া একটি আলাদা মাইগ্রেশন প্রক্রিয়া। কয়েক মাস পুরনো বিল্ডের ত্রুটি ঠিক করার চেয়ে মাঝে মাঝে এক মিনিটের রক্ষণাবেক্ষণ অনেক বেশি সাশ্রয়ী।
FAQ
OpenCode কি পেইড API-এর পরিবর্তে লোকাল মডেল ব্যবহার করতে পারে?
হ্যাঁ। OpenCode যেকোনো OpenAI-সামঞ্জস্যপূর্ণ সার্ভারকে প্রোভাইডার হিসেবে গণ্য করে, তাই একই VPS-এ Ollama দ্বারা সার্ভ করা মডেল কাজ করবে। opencode.json-এ লোকাল baseURL এবং Ollama যে মডেলের নাম রিপোর্ট করে তা দিয়ে প্রোভাইডার ঘোষণা করুন। মূল চ্যালেঞ্জ হলো হার্ডওয়্যার, কারণ সত্যিকারের কোডিং কাজের জন্য উপযুক্ত মডেলের প্রচুর মেমোরি প্রয়োজন, তাই ডাউনলোড করার আগে মডেলের জন্য সার্ভারের আকার নির্ধারণ করুন।
ল্যাপটপ বন্ধ করার পর OpenCode কীভাবে চালু রাখব?
VPS-এ tmux-এর ভেতরে এটি চালান। tmux new -s opencode দিয়ে একটি নামযুক্ত সেশনে এজেন্ট শুরু করুন, Ctrl-b তারপর d চেপে ডিটাচ করুন, এবং আপনার SSH কানেকশন শেষ হওয়ার পরেও সেশনটি সার্ভারে চলতে থাকবে। যেকোনো সময় tmux attach -t opencode দিয়ে পুনরায় অ্যাটাচ করুন এবং কথোপকথন ও চলমান কাজ সেখানেই থাকবে। সার্ভার রিবুট করলে সেশন শেষ হয়ে যায়, তাই রিবুটের পর নতুন সেশন শুরু করুন।
আমার VPS-এ OpenCode-কে কমান্ড চালাতে দেওয়া কি নিরাপদ?
যদি আপনি এটিকে নিয়ন্ত্রণে রাখেন তবে এটি পরিচালনাযোগ্য। OpenCode-কে sudo ছাড়া একটি ডেডিকেটেড unprivileged ইউজার দিন, এর প্রজেক্টগুলো git-এ রাখুন এবং প্রতিটি কাজের আগে commit করুন যাতে ভুল এডিট রোলব্যাক করা যায়, API কি-টি মোড 600 সহ একটি ফাইলে সংরক্ষণ করুন, এবং Build এজেন্টকে কিছু পরিবর্তন করতে দেওয়ার আগে প্রথম ধাপের জন্য এর Plan এজেন্ট ব্যবহার করুন। যদি আপনি প্রথম ধাপটিকে কঠোরভাবে রিড-অনলি রাখতে চান তবে Plan-এর জন্য এডিট এবং শেল কমান্ড deny-এ সেট করুন। এজেন্ট তখন কেবল সেই অ্যাকাউন্টের মালিকানাধীন ফাইলগুলোই ক্ষতি করতে পারবে এবং সার্ভারের বাকি অংশ নাগালের বাইরে থাকবে।
OpenCode এবং Claude Code-এর মধ্যে পার্থক্য কী?
OpenCode হলো ওপেন সোর্স (MIT) এবং প্রোভাইডার নিরপেক্ষ, যা একটি ইন্টারফেসের মাধ্যমে 75টিরও বেশি মডেল প্রোভাইডারের সাথে সংযুক্ত হয়, যার মধ্যে লোকাল মডেলও রয়েছে। Claude Code হলো Anthropic-এর নিজস্ব টার্মিনাল এজেন্ট, যা Anthropic-এর মডেলগুলোর জন্য তৈরি। যদি আপনি অনেক প্রোভাইডার জুড়ে একটি টুল চান, অথবা লোকাল মডেলসহ সম্পূর্ণ সেলফ-হোস্টেড স্ট্যাক চান, তবে OpenCode উপযুক্ত। উভয়ই tmux-এর ভেতরে একই unprivileged-user সেটআপে VPS-এ ভালোভাবে চলে।