सेटअप
VPS पर Codex CLI चलाना
Codex एक छोटे Linux सर्वर पर अच्छी तरह चलता है। ज़्यादातर दिक़्क़त लॉगिन और Linux sandbox में आती है। यह गाइड इंस्टॉल, headless साइन-इन, सेशन चालू रखने, और फ़ोन से सर्वर तक पहुँचने के तरीक़े बताती है।
छोटा जवाब
curl -fsSL https://chatgpt.com/codex/install.sh | sh (या npm install -g @openai/codex) से इंस्टॉल करें। फिर अपनी ChatGPT सुरक्षा सेटिंग्स में device code login चालू करें और सर्वर पर codex login --device-auth चलाएँ। Codex को tmux या किसी daemon के अंदर चलाएँ ताकि वह आपके SSH कनेक्शन के बाद भी चलता रहे। ChatGPT ऐप में Remote आधिकारिक रूप से सिर्फ़ macOS और Windows होस्ट सपोर्ट करता है। Linux VPS तक सिर्फ़ इन्हीं में से किसी के ज़रिए पहुँचा जा सकता है: जागते रहने वाले Mac या PC पर ChatGPT डेस्कटॉप ऐप उसे SSH प्रोजेक्ट के रूप में खोलता है। फ़ोन से सीधे VPS तक पहुँचने के लिए SSH ऐप, या ऐसा क्लाइंट इस्तेमाल करें जो सर्वर से बात करे, जैसे Maude।
OpenAI के Codex CLI के लिए सर्वर एक अच्छा ठिकाना है। लैपटॉप बंद होने पर भी यह काम करता रहता है, टूटा कनेक्शन झेल लेता है, और अगर कोई रन बिगड़ जाए तो आप मशीन दोबारा बना सकते हैं। नए Linux VPS पर दो चीज़ें लोगों को अटकाती हैं। पहली, सादा codex login एक ब्राउज़र रीडायरेक्ट का इंतज़ार करता है जो सर्वर तक कभी नहीं पहुँच सकता। दूसरी, sandbox को एक पैकेज चाहिए जो ज़्यादातर मिनिमल इमेज में नहीं होता। यह गाइड दोनों ठीक करती है, फिर सेशन चालू रखने और फ़ोन से उन तक पहुँचने के तरीक़े बताती है।
ज़रूरतें
- एक Linux सर्वर, x86-64 या arm64। OpenAI दोनों के लिए बाइनरी देता है, और macOS भी चलता है। Debian या Ubuntu आसान रास्ता है।
- एक खाता। या तो ChatGPT प्लान या OpenAI API कुंजी। OpenAI का Codex क़ीमत पेज कहता है कि Codex, ChatGPT Free, Go, Plus, Pro, Business, Edu और Enterprise में शामिल है। लिमिट प्लान के हिसाब से अलग हैं, और लोकल CLI का उपयोग क्लाउड चैट के साथ एक ही कोटा साझा करता है। API कुंजी का उपयोग इसके बजाय API दरों पर बिल होता है।
- मेमोरी। CLI एक कंपाइल की हुई बाइनरी है और ख़ुद बहुत कम मेमोरी लेती है। RAM आपके प्रोजेक्ट के बिल्ड और टेस्ट रन खाते हैं। हल्के काम के लिए 2 GB चलता है और 4 GB आरामदायक है। साइज़ और मौजूदा क़ीमतों के लिए VPS ख़रीदने की गाइड देखें।
- एक non-root यूज़र। कुछ भी इंस्टॉल करने से पहले उसे बनाएँ (
adduser dev, फिर अपनी SSH कुंजी कॉपी करें)। हमारी Claude Code VPS गाइड यह और SSH सुरक्षा क़दम-दर-क़दम बताती है; Codex के लिए क़दम वही हैं।
Codex इंस्टॉल करें
स्टैंडअलोन इंस्टॉलर को Node.js नहीं चाहिए:
curl -fsSL https://chatgpt.com/codex/install.sh | sh
codex --version
अगर आप पहले से टूल npm से संभालते हैं, तो यह वही CLI इंस्टॉल करता है:
npm install -g @openai/codex
scope का ध्यान रखें: पैकेज @openai/codex है। npm पर बिना scope वाला codex पैकेज इससे जुड़ा नहीं है। अपने सामान्य यूज़र के रूप में इंस्टॉल करें, sudo के साथ नहीं। दोनों तरीक़े openai/codex README में दिए हैं।
Linux sandbox की पूर्व-शर्त
Linux पर Codex अपनी बनाई शेल कमांड को bwrap (bubblewrap) और seccomp पर बने sandbox के अंदर चलाता है। OpenAI के sandboxing दस्तावेज़ पहले bubblewrap इंस्टॉल करने को कहते हैं:
sudo apt install bubblewrap # Debian / Ubuntu
sudo dnf install bubblewrap # Fedora
bwrap के बिना Codex एक बंडल किए गए हेल्पर पर लौटता है, और उस हेल्पर को unprivileged user namespaces चाहिए। Ubuntu 24.04 इन्हें AppArmor से सीमित करता है। दस्तावेज़ों में दिया हल एक अतिरिक्त प्रोफ़ाइल लोड करता है:
sudo apt install apparmor-profiles apparmor-utils
sudo install -m 0644 /usr/share/apparmor/extra-profiles/bwrap-userns-restrict /etc/apparmor.d/bwrap-userns-restrict
sudo apparmor_parser -r /etc/apparmor.d/bwrap-userns-restrict
दस्तावेज़ एक ज़्यादा भोथरा विकल्प भी देते हैं, sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0, जो पूरी मशीन के लिए यह पाबंदी बंद कर देता है। प्रोफ़ाइल को तरजीह दें। अगर sandbox में चलने वाली हर कमांड namespace त्रुटि के साथ फ़ेल हो रही है, तो वजह यही सेक्शन है।
device code से लॉगिन करें
सर्वर पर सादा codex login चलाएँ तो लगता है वह अटक गया। वजह यह है: वह पोर्ट 1455 पर एक लोकल callback सर्वर शुरू करता है और आपके ब्राउज़र के localhost पर रीडायरेक्ट होने का इंतज़ार करता है। वह सर्वर का localhost है, जिस तक आपका फ़ोन या लैपटॉप नहीं पहुँच सकता। इसके बजाय device code लॉगिन इस्तेमाल करें। इसकी एक पूर्व-शर्त है जो लगभग हर किसी को पकड़ लेती है:
- device code लॉगिन चालू करें। निजी खाते के लिए यह अपनी ChatGPT सुरक्षा सेटिंग्स में करें। Business, Edu या Enterprise वर्कस्पेस पर कोई एडमिन इसे वर्कस्पेस अनुमतियों में चालू करता है। जब तक यह चालू नहीं होता, आपके खाते के लिए device फ़्लो काम नहीं करेगा।
- सर्वर पर फ़्लो शुरू करें:
codex login --device-auth - किसी भी डिवाइस पर इसे पूरा करें। Codex एक लिंक और एक बार इस्तेमाल होने वाला कोड दिखाता है। लिंक को फ़ोन या लैपटॉप पर खोलें, ChatGPT में साइन इन करें, और कोड डालें।
- जाँचें कि यह चला:
यह सक्रिय auth मोड दिखाता है और लॉगिन होने पर 0 के साथ बाहर निकलता है, जो इसे स्क्रिप्ट में काम का बनाता है।codex login status
यह OpenAI के ऑथेंटिकेशन दस्तावेज़ों से है। device code उपलब्ध न होने पर वे दो बैकअप रास्ते देते हैं:
- callback पोर्ट फ़ॉरवर्ड करें।
ssh -L 1455:localhost:1455 user@your-serverसे कनेक्ट करें, सर्वर परcodex loginचलाएँ, और छपा हुआ पता अपने लोकल ब्राउज़र में खोलें। तब रीडायरेक्ट टनल से होकर वापस पहुँचता है। - क्रेडेंशियल कॉपी करें। ब्राउज़र वाली किसी मशीन पर लॉगिन करें, फिर
scp ~/.codex/auth.json user@your-server:~/.codex/auth.json।
इसके बजाय API कुंजी इस्तेमाल करना
printenv OPENAI_API_KEY | codex login --with-api-key
कुंजी को stdin से pipe करने से वह आपकी शेल हिस्ट्री में नहीं आती। आप ChatGPT प्लान से खर्च करने के बजाय API क़ीमतों पर प्रति टोकन भुगतान करते हैं। यह साझा या CI मशीन के लिए ठीक है जहाँ आपको बिलिंग की सख़्त सीमा चाहिए।
डिफ़ॉल्ट रूप से Codex क्रेडेंशियल ~/.codex/auth.json में कैश करता है। cli_auth_credentials_store सेटिंग उन्हें OS keyring में ले जा सकती है (file, keyring, auto या ephemeral)। आपके यूज़र के रूप में शेल वाला कोई भी व्यक्ति आपका ChatGPT प्लान इस्तेमाल कर सकता है। एजेंट वाली मशीन पर दूसरों को शेल ऐक्सेस न दें।
इसे चालू रखें
इंटरैक्टिव codex सेशन उसी टर्मिनल के साथ जीता और मरता है जिसने उसे शुरू किया। SSH कनेक्शन बंद करें, और सेशन ख़त्म। इससे बचने के तीन तरीक़े हैं।
tmux, पारंपरिक तरीक़ा:
sudo apt install tmux
tmux new -A -s codex # create or re-attach
cd ~/src/my-app && codex
# detach: Ctrl-b then d; later: tmux attach -t codex
अगर सेशन ख़त्म हो ही जाए, तो codex resume --last उस डायरेक्टरी की सबसे हाल की बातचीत उठा लेता है, और codex resume एक पिकर खोलता है। हमारी tmux, mosh और Tailscale गाइड में फ़ोन के लिए सुविधाजनक tmux कॉन्फ़िग है।
बिना इंटरैक्शन वाले रन। codex exec "…" बिना TUI के एक काम चलाता है, और codex exec resume --last उसे जारी रखता है। यह cron job और CI के लिए ठीक है, लेकिन वहाँ मंज़ूरी के अनुरोधों का जवाब देने वाला कोई नहीं होता, इसलिए नीचे की sandbox सेटिंग्स और अहम हो जाती हैं।
एक daemon, जो सेशन का मालिक हो और रीबूट झेल ले। 24/7 गाइड इन्हीं की तुलना करती है: systemd units, Remote Control सर्वर, और Maude जैसे ऐप जो मशीन पर अपना प्रोसेस चलाते हैं।
मंज़ूरियाँ और sandbox
Codex में दो अलग कंट्रोल हैं: कमांड किन चीज़ों को छू सकती हैं (sandbox) और वह कब रुककर आपसे पूछता है (approval policy)। नीचे के मान OpenAI के मंज़ूरी और सुरक्षा दस्तावेज़ों और CLI रेफ़रेंस से हैं:
| सेटिंग | मान | सर्वर पर इसका मतलब |
|---|---|---|
--sandbox / -s | read-only, workspace-write, danger-full-access | git रिपॉज़िटरी में workspace-write डिफ़ॉल्ट है। एडिट प्रोजेक्ट के अंदर रहते हैं, और नेटवर्क ऐक्सेस तब तक बंद रहता है जब तक आप उसे चालू न करें। |
--ask-for-approval / -a | on-request, never | on-request तब पूछता है जब किसी ऐक्शन को sandbox की अनुमति से ज़्यादा चाहिए। never बिल्कुल नहीं पूछता। config.toml में approval_policy granular भी स्वीकार करता है; पुराना untrusted मान हटा दिया गया है। |
--yolo | (--dangerously-bypass-approvals-and-sandbox का उपनाम) | न sandbox, न प्रॉम्प्ट। OpenAI इसे उन एनवायरनमेंट के लिए रखता है जो बाहर से पहले ही सुरक्षित किए गए हों। |
--full-auto अब भी पुरानी गाइड में दिखता है। यह अब एक deprecated संगतता फ़्लैग है, और रेफ़रेंस इसके बजाय --sandbox workspace-write इस्तेमाल करने को कहता है। sandbox वाली कमांड को नेटवर्क तक पहुँचने देने के लिए, उदाहरण के लिए ताकि npm install चले, यह ~/.codex/config.toml में जोड़ें:
sandbox_mode = "workspace-write"
approval_policy = "on-request"
[sandbox_workspace_write]
network_access = true
कंटेनर पर एक नोट: अगर आपका "VPS" असल में ऐसा Docker या LXC कंटेनर है जो namespace ऑपरेशन रोकता है, तो दस्तावेज़ --sandbox danger-full-access का सुझाव देते हैं। ऐसा तभी करें जब कंटेनर ख़ुद आपका sandbox हो। फ़ायदे-नुक़सान वही हैं जो Claude के bypass मोड के हैं, जिन्हें पूरी अनुमतियों के साथ एजेंट को सुरक्षित रूप से चलाने में बताया गया है।
फ़ोन से ऐक्सेस के विकल्प
| विकल्प | Linux VPS के साथ चलता है? | किसमें अच्छा | किस बात का ध्यान रखें |
|---|---|---|---|
| Codex Remote (ChatGPT ऐप) | आधिकारिक रूप से नहीं। होस्ट पर macOS या Windows पर ChatGPT डेस्कटॉप ऐप चलना चाहिए; वह ऐप आपके VPS पर SSH प्रोजेक्ट तक पहुँच सकता है। | आधिकारिक, आपके प्लान के साथ मुफ़्त, नेटिव UI | होस्ट कंप्यूटर को जागते और ऑनलाइन रहना होगा |
| SSH ऐप + tmux | हाँ | मुफ़्त, सर्वर पर कुछ अतिरिक्त नहीं | फ़ोन कीबोर्ड पर फ़ुल-स्क्रीन TUI, कोई पुश नहीं |
| Maude | हाँ (SSH से कोई भी Linux या macOS) | नेटिव चैट UI, इनलाइन मंज़ूरियाँ, पुश, साथ में Claude Code और दूसरे भी | पेड ऐप; आपको फिर भी अपना ChatGPT प्लान या कुंजी चाहिए |
headless Linux और Codex Remote पर एक बात। CLI रेफ़रेंस लोकल app-server के लिए codex remote-control start और codex remote-control pair का दस्तावेज़ देता है। लेकिन Remote connections गाइड अब भी कहती है कि होस्ट macOS या Windows पर डेस्कटॉप ऐप चलाते हैं। यूज़र ने इस अंतर पर issue खोले हैं: #31183 बताता है कि headless Linux होस्ट मौजूदा मोबाइल क्लाइंट से दोबारा पेयर नहीं हो पाते, और #35928 इस विरोधाभास की ओर इशारा करता है। हमारी जाँच के समय दोनों खुले थे। अगर यह रास्ता आपके लिए काम करता है, तो यही आधिकारिक रास्ता है। बस अभी इस पर कोई वर्कफ़्लो न बनाएँ।
Maude से इसे फ़ोन से चलाएँ
Maude उस VPS को बिना TUI के फ़ोन से चलाने का एक तरीक़ा है। आप सर्वर को पते या पेस्ट की गई ssh कमांड से जोड़ते हैं, और ऐप SSH से अपना छोटा daemon डिप्लॉय करता है। वह daemon Codex को जाँचे-परखे, पिन किए गए वर्ज़न पर, checksum से वेरिफ़ाई करके इंस्टॉल करता है, इसलिए इंस्टॉल का क़दम छूट जाता है। आप फ़ोन से ChatGPT device code या API कुंजी के ज़रिए Codex में साइन इन करते हैं। ChatGPT में device code लॉगिन पहले चालू करना आपको फिर भी होगा। ऐप बंद होने पर भी सेशन सर्वर पर चलते रहते हैं, मंज़ूरी के अनुरोध इनबॉक्स में और “अनुमति दें / अस्वीकार करें” वाले पुश नोटिफ़िकेशन के रूप में आते हैं, और वही सर्वर Codex के बगल में Claude Code, OpenCode, Grok Build और Antigravity भी चला सकता है। विवरण Codex एजेंट पेज पर है।
अक्सर पूछे जाने वाले सवाल
मेरे सर्वर पर codex login अटक क्यों जाता है?
codex login, localhost:1455 पर एक callback सर्वर शुरू करता है और ब्राउज़र रीडायरेक्ट का इंतज़ार करता है, जिसे किसी दूसरे डिवाइस का ब्राउज़र आपके VPS तक नहीं पहुँचा सकता। अपनी ChatGPT सुरक्षा सेटिंग्स में device code लॉगिन चालू करने के बाद codex login --device-auth इस्तेमाल करें। या फिर ssh -L 1455:localhost:1455 से पोर्ट फ़ॉरवर्ड करें।क्या Codex चलाने के लिए Node.js चाहिए?
curl -fsSL https://chatgpt.com/codex/install.sh | sh) और रिलीज़ बाइनरी को Node नहीं चाहिए। Node सिर्फ़ तब चाहिए जब आप npm वाला रास्ता चुनें, npm install -g @openai/codex।क्या मैं ChatGPT प्लान के बजाय API कुंजी इस्तेमाल कर सकता हूँ?
printenv OPENAI_API_KEY | codex login --with-api-key। तब उपयोग ChatGPT प्लान के कोटे में गिनने के बजाय OpenAI API दरों पर बिल होता है।क्या Codex Remote मेरा VPS देखता है?
codex remote-control) दस्तावेज़ों में है, लेकिन खुले GitHub issue headless Linux होस्ट को पेयर करने में दिक़्क़तें बताते हैं, इसलिए उस पर भरोसा करने से पहले मौजूदा दस्तावेज़ देख लें।VPS पर कौन-सा sandbox मोड इस्तेमाल करूँ?
workspace-write और on-request मंज़ूरियों से शुरू करें, और अगर आपके बिल्ड को पैकेज डाउनलोड करने हों तो network_access चालू करें। --yolo को फेंकने लायक़ मशीनों या ऐसे कंटेनरों के लिए रखें जिनके अलगाव पर आपको भरोसा हो।क्या बदला
- — पहली बार प्रकाशित। इंस्टॉल, auth, sandbox और Remote की जानकारी इसी तारीख़ को OpenAI के दस्तावेज़ों और openai/codex README से जाँची गई।