VPS पर OpenCode कैसे इंस्टॉल और सेटअप करें
OpenCode को VPS पर सुरक्षित रूप से चलाने का तरीका जानें। इस गाइड में unprivileged user के तहत इंस्टॉलेशन, tmux का उपयोग और API key को सुरक्षित रखने की पूरी प्रक्रिया दी गई है।
OpenCode क्या है और आप क्या सेटअप कर रहे हैं
OpenCode टर्मिनल के लिए बनाया गया एक ओपन सोर्स AI कोडिंग एजेंट है। आप इसे किसी प्रोजेक्ट डायरेक्टरी के अंदर शुरू करते हैं, और यह आपके कोड को पढ़ता है, बदलावों का प्रस्ताव देता है, फाइलों को एडिट करता है और कमांड्स चलाता है, यह सब एक टर्मिनल यूजर इंटरफेस (TUI) के माध्यम से होता है। यह MIT लाइसेंस प्राप्त है, यह 75 से अधिक मॉडल प्रोवाइडर्स से जुड़ता है, और 2026 के मध्य तक लगभग 165,000 GitHub स्टार्स के साथ यह सबसे अधिक स्टार प्राप्त ओपन सोर्स कोडिंग एजेंट है। VPS पर OpenCode चलाने के लिए, आप इसे एक समर्पित unprivileged यूजर के तहत इंस्टॉल करते हैं, अपनी मॉडल API key को एक प्राइवेट फाइल में रखते हैं, और इसे tmux के अंदर शुरू करते हैं ताकि आपका कनेक्शन कटने पर भी सेशन बना रहे। यह गाइड ठीक यही प्रक्रिया अपनाती है।
नाम को लेकर एक बात भ्रम से बचाती है। आधिकारिक रिपॉजिटरी anomalyco/opencode है, जिसे Anomaly टीम (जिसे पहले SST के नाम से जाना जाता था) द्वारा मेंटेन किया जाता है, और यह प्रोजेक्ट पहले sst/opencode पर स्थित था। GitHub पर opencode-ai/opencode नाम की एक पुरानी, असंबंधित रिपॉजिटरी भी मौजूद है, इसलिए सुनिश्चित करें कि आप सही प्रोजेक्ट के डॉक्यूमेंट्स पढ़ रहे हैं। आधिकारिक साइट opencode.ai है।
OpenCode को VPS पर क्यों चलाएं
Coding agent का session लंबा होता है। OpenCode किसी refactor या test suite पर काम करने में कई मिनट लगा सकता है, और यदि यह आपके laptop पर चलता है, तो ढक्कन बंद होने या Wi-Fi कनेक्शन टूटने से session बीच में ही खत्म हो जाता है। tmux के अंदर VPS पर, आपके disconnect होने के बाद भी agent काम करता रहता है, और आप बाद में reattach करके देख सकते हैं कि उसने क्या किया। यह tmux के साथ VPS पर Claude Code चलाने जैसा ही पैटर्न है, और किसी agent को laptop से हटाकर कहीं और ले जाने का यह सबसे बड़ा फायदा है।
दूसरा कारण placement है। एक VPS आपके द्वारा deploy किए गए code के करीब होता है: repository, build tools, test database, और अक्सर staging environment पहले से ही वहीं या उसके पास मौजूद होते हैं। जो agent code edit करता है और tests चलाता है, वह उस machine पर सबसे अच्छा काम करता है जहाँ वे tests वास्तव में चलते हैं। और चूंकि यह server आपके नियंत्रण में है, आप agent को जानबूझकर एक सीमित (contained) environment दे सकते हैं, जैसा कि अगले section में बताया गया है।
यदि आप अभी भी किसी tool का चुनाव कर रहे हैं, तो VPS पर coding AI agent चलाना Aider और Goose सहित व्यापक क्षेत्र की तुलना करता है।
OpenCode को अपना अलग user दें
यहाँ से शुरुआत करना सबसे सुरक्षित है: एक कोडिंग एजेंट फाइलों को एडिट करता है और कमांड्स चलाता है। यही उसका काम है और यही जोखिम भी। OpenCode बिल्ड्स, टेस्ट्स और वे सभी शेल कमांड्स चलाएगा जिनकी कार्य के लिए आवश्यकता होगी, और मॉडल का निर्णय अच्छा है लेकिन पूर्ण नहीं है। जिस अकाउंट से एजेंट चलता है, वही उस सीमा को तय करता है जहाँ तक कोई गलत कमांड पहुँच सकती है, इसलिए इसे root के रूप में न चलाएं, और इसे उस यूजर के रूप में भी न चलाएं जो सर्वर को एडमिनिस्टर करता है।
बैकग्राउंड एजेंट के विपरीत, OpenCode इंटरैक्टिव है, इसलिए इसके यूजर को एक वास्तविक शेल और होम डायरेक्टरी की आवश्यकता होती है:
sudo useradd --create-home --shell /bin/bash opencode
sudo -iu opencodeजिन प्रोजेक्ट्स पर आप इसे काम करने देना चाहते हैं, उन्हें /home/opencode के अंतर्गत रखें, जिन्हें उसी यूजर द्वारा क्लोन किया गया हो। इस अकाउंट को कोई sudo अधिकार न दें। यदि एजेंट कोई विनाशकारी कमांड चलाता है, तो वह केवल उसी को नष्ट कर सकता है जिसका स्वामित्व इस अकाउंट के पास है, जो unprivileged user के रूप में सर्विसेज चलाने के समान तर्क है। एक git रिपॉजिटरी के भीतर भी काम करें, क्योंकि एक रिपॉजिटरी किसी भी गलत एडिट को नुकसान के बजाय एक git revert में बदल देती है।
OpenCode इंस्टॉल करें
यह प्रोजेक्ट दो प्रकार के इंस्टॉलेशन का दस्तावेजीकरण करता है। इंस्टॉलेशन स्क्रिप्ट सबसे तेज़ तरीका है, और इसे opencode यूजर के रूप में चलाने से सब कुछ उस यूजर की होम डायरेक्टरी के भीतर ही रहता है:
curl -fsSL https://opencode.ai/install | bashयहाँ भी वही सामान्य curl | bash आदत लागू होती है जो हर जगह होती है: जिस सर्वर की आपको परवाह है, उस पर पहले स्क्रिप्ट डाउनलोड करें, उसे पढ़ें, और फिर उसे चलाएं। इंस्टॉलेशन के बाद, एक नया शेल शुरू करें ताकि इंस्टॉलर द्वारा किए गए PATH बदलाव प्रभावी हो सकें, फिर बाइनरी के उत्तर की जाँच करें:
opencode --versionयदि आप पैकेज मैनेजर को प्राथमिकता देते हैं और Node.js पहले से ही सिस्टम पर मौजूद है, तो npm तरीका उसी टूल को पूरे सिस्टम में इंस्टॉल करता है, जो opencode बाइनरी को हर यूजर के लिए PATH पर डाल देता है:
sudo npm install -g opencode-aiदोनों ही स्थितियों में, जाँच एक समान है: opencode --version एक वर्शन नंबर प्रिंट करता है। स्क्रिप्ट इंस्टॉलेशन के बाद command not found का मतलब है कि वर्तमान शेल ने अपडेटेड PATH को अभी तक नहीं पढ़ा है, इसलिए लॉग आउट करें और opencode यूजर के रूप में फिर से लॉग इन करें।
API key को एक private file में रखें
OpenCode को आपके द्वारा उपयोग किए जाने वाले किसी भी model provider के लिए एक key की आवश्यकता होती है, और वह key आपके पैसे खर्च कर सकती है, इसलिए इसे password की तरह सुरक्षित रखें। एक ऐसी file बनाएँ जिसे केवल opencode user ही पढ़ सके, जिसका mode 600 हो, और key को वहाँ रखें। इसे commands में टाइप न करें, अन्यथा यह आपकी shell history में save हो जाएगी:
install -m 600 /dev/null ~/opencode.env
nano ~/opencode.envइसमें अपने provider का variable रखें, उदाहरण के लिए ANTHROPIC_API_KEY=... या आपके provider के लिए समकक्ष, क्योंकि OpenCode मानक provider environment variables को ही लेता है। agent शुरू करने से पहले file को अपनी shell में load करें:
set -a; source ~/opencode.env; set +aOpenCode में एक interactive विकल्प भी है: TUI के अंदर /connect command आपको provider जोड़ने की प्रक्रिया समझाती है और credential को user के home में ~/.local/share/opencode/auth.json पर save कर देती है। यदि आप उस तरीके का उपयोग करते हैं, तो chmod 600 ~/.local/share/opencode/auth.json के साथ पुष्टि करें कि file private है। दोनों तरीके key को आपकी command lines से दूर रखते हैं; एक चुनें और उसी का पालन करें।
tmux के अंदर OpenCode शुरू करें
tmux ही वह टूल है जो VPS सेटअप को उपयोगी बनाता है, क्योंकि 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 प्रदाता-अज्ञेयवादी (provider agnostic) है। यह 75 से अधिक प्रदाताओं का समर्थन करने के लिए AI SDK और Models.dev कैटलॉग का उपयोग करता है, इसलिए वही टूल Anthropic, OpenAI, Google और दर्जनों अन्य के साथ काम करता है, जिसमें स्थानीय सर्वर भी शामिल हैं। त्वरित तरीका TUI के अंदर /connect कमांड है, जो प्रदाताओं को सूचीबद्ध करता है और क्रेडेंशियल को संभालता है। ऐसे सेटअप के लिए जिसे आप कमिट और पुनरुत्पादित कर सकें, प्रोजेक्ट रूट में एक opencode.json रखें और मॉडल को provider/model-id के रूप में सेट करें:
{
"$schema": "https://opencode.ai/config.json",
"model": "anthropic/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 में एक नया कार्य शुरू करें, इसे कोड पढ़ने दें और एक दृष्टिकोण प्रस्तावित करने दें, और केवल तभी Build पर स्विच करें जब आप योजना से सहमत हों। सर्वर पर, केवल-पढ़ने-योग्य (read-only) पहला पास एक सस्ता बीमा है। Claude Code उसी निर्णय को एजेंटों के बजाय अनुमति मोड के रूप में तैयार करता है, और डिफ़ॉल्ट के रूप में ऑटो मोड पर इसका बदलाव पढ़ने योग्य है यदि आप दोनों टूल चलाते हैं, क्योंकि जिस मोड में सत्र शुरू होता है वह यह तय करता है कि एक बिना निगरानी वाला एजेंट कितना बदलाव कर सकता है।
प्रभाव का दायरा (Blast radius), स्पष्ट रूप से
एक कोडिंग एजेंट निष्क्रिय नहीं होता है, इसलिए स्पष्ट रूप से बताएं कि यह सेटअप क्या करता है और क्या नहीं। इसमें फ़ाइल क्षति की संभावना है: opencode उपयोगकर्ता केवल अपनी होम डायरेक्टरी का स्वामी है और उसके बाहर कुछ भी नहीं, इसलिए संपादन और विलोपन उसी सीमा पर रुक जाते हैं। इसमें क्रेडेंशियल एक्सपोज़र की संभावना है: की (key) एक फ़ाइल में मोड 600 के साथ, एक ही अकाउंट में रहती है। इसमें यह शामिल नहीं है कि अकाउंट वैध रूप से क्या कर सकता है, इसलिए यदि प्रोजेक्ट डायरेक्टरी में प्रोडक्शन डिप्लॉय क्रेडेंशियल्स हैं, तो एजेंट उनका उपयोग कर सकता है; उन्हें एजेंट के अकाउंट से पूरी तरह बाहर रखें।
OpenClaw जैसे गेटवे एजेंट के विपरीत, OpenCode एक इंटरैक्टिव टर्मिनल प्रोग्राम है, न कि कोई डेमन। यह कोई लिसनिंग पोर्ट नहीं खोलता है और इसमें कोई लॉन्ग-रनिंग सर्विस नहीं है, इसलिए न तो कोई systemd यूनिट लिखने की आवश्यकता है और न ही एजेंट के लिए कोई पोर्ट फायरवॉल करने की। इसका नियंत्रण उपयोगकर्ता अकाउंट और प्रोजेक्ट डायरेक्टरी तक सीमित है, यही कारण है कि इस गाइड का पहला भाग सबसे महत्वपूर्ण है।
इसके चारों ओर के घेरे (box) को अभी भी मानक देखभाल की आवश्यकता है, क्योंकि एक कोडिंग VPS अभी भी एक पब्लिक सर्वर है: केवल-की (key-only) SSH जिसका रूट लॉगिन डिसेबल हो, जैसा कि VPS पर SSH हार्डनिंग में बताया गया है, एक डिफ़ॉल्ट-डिनाय फायरवॉल, और नियमित अपडेट। और एजेंट द्वारा तैयार किए गए आउटपुट की समीक्षा करें। पुश करने से पहले इसके diffs को पढ़ें, ठीक वैसे ही जैसे आप किसी नए योगदानकर्ता के पुल रिक्वेस्ट को पढ़ते हैं, क्योंकि परिणाम को डिप्लॉय आप ही करते हैं।
अंत में, टूल को अपडेट रखें। OpenCode के वर्ज़न अक्सर आते रहते हैं, और अपडेट्स में ऐसे फिक्स होते हैं जो आपके सर्वर पर कमांड चलाने वाले प्रोग्राम के लिए महत्वपूर्ण हैं। अपडेट करने के लिए उसी तरीके का उपयोग करें जिससे आपने इंस्टॉल किया था: opencode उपयोगकर्ता के रूप में इंस्टॉल स्क्रिप्ट को फिर से चलाएं, या यदि आपने npm के माध्यम से इंस्टॉल किया है तो sudo npm update -g opencode-ai चलाएं, फिर opencode --version के साथ नए वर्ज़न की पुष्टि करें। समय-समय पर एक मिनट का रखरखाव, महीनों पुराने बिल्ड में मौजूद बग्स को डीबग करने से कहीं अधिक सस्ता है।
FAQ
क्या OpenCode भुगतान वाले API के बजाय स्थानीय मॉडल (local model) का उपयोग कर सकता है?
हाँ। OpenCode किसी भी OpenAI-compatible सर्वर को प्रदाता के रूप में स्वीकार करता है, इसलिए उसी VPS पर Ollama द्वारा संचालित मॉडल काम करता है: opencode.json में प्रदाता को स्थानीय baseURL और Ollama द्वारा रिपोर्ट किए गए मॉडल नाम के साथ घोषित करें। इसमें हार्डवेयर की चुनौती है, क्योंकि वास्तविक कोडिंग कार्य के लिए सक्षम मॉडल को पर्याप्त मेमोरी की आवश्यकता होती है, इसलिए मॉडल डाउनलोड करने से पहले सर्वर का आकार उसके अनुसार निर्धारित करें।
अपना लैपटॉप बंद करने के बाद मैं OpenCode को कैसे चालू रखूँ?
इसे VPS पर tmux के अंदर चलाएँ। tmux new -s opencode के साथ एक named session में एजेंट शुरू करें, Ctrl-b और फिर d दबाकर detach करें, और आपका SSH कनेक्शन समाप्त होने के बाद भी सेशन सर्वर पर चलता रहेगा। tmux attach -t opencode के साथ किसी भी समय reattach करें, आपकी बातचीत और कोई भी चल रहा कार्य वहीं मौजूद रहेगा। सर्वर रीबूट होने पर सेशन समाप्त हो जाता है, इसलिए रीबूट के बाद एक नया सेशन शुरू करें।
क्या OpenCode को मेरे VPS पर कमांड चलाने देना सुरक्षित है?
यदि आप इसे सीमित (contain) रखें तो यह प्रबंधनीय है। OpenCode को बिना sudo वाला एक समर्पित unprivileged user दें, इसके प्रोजेक्ट्स को git में रखें ताकि हर बदलाव को वापस (reverse) किया जा सके, API key को mode 600 वाली फाइल में स्टोर करें, और Build एजेंट को कुछ भी बदलने देने से पहले इसके Plan एजेंट का उपयोग read-only प्रथम चरण के लिए करें। एजेंट केवल उसी को नुकसान पहुँचा सकता है जिसका स्वामित्व उसके अपने अकाउंट के पास है, और बाकी सर्वर सुरक्षित रहता है।
OpenCode और Claude Code में क्या अंतर है?
OpenCode ओपन सोर्स (MIT) है और प्रदाता-अज्ञेयवादी (provider agnostic) है, जो एक इंटरफ़ेस के माध्यम से 75 से अधिक मॉडल प्रदाताओं से जुड़ता है, जिसमें स्थानीय मॉडल भी शामिल हैं। Claude Code एंथ्रोपिक का अपना टर्मिनल एजेंट है, जो एंथ्रोपिक के मॉडलों के इर्द-गिर्द बनाया गया है। यदि आप कई प्रदाताओं के लिए एक ही टूल चाहते हैं, या स्थानीय मॉडल के साथ पूरी तरह से self-hosted स्टैक चाहते हैं, तो OpenCode सही विकल्प है; दोनों ही VPS पर tmux के अंदर समान unprivileged-user सेटअप के साथ अच्छी तरह चलते हैं।