SSD Nodes Learn 8GB RAM — $66/साल
गाइड Matt Connorलेखक: Matt Connor · अपडेट किया गया: 2026-08-01

Claude Code को अपने फोन पर कैसे चलाएं

Claude Code को VPS पर tmux के साथ चलाने का तरीका जानें। mosh और SSH keys का उपयोग करके मोबाइल डेटा पर भी बिना रुकावट काम करें। फोन को केवल एक टर्मिनल विंडो की तरह इस्तेमाल करें।

Claude Code अपने फोन से: यह वास्तव में कैसे काम करता है

Claude Code आपके फोन से कोई मोबाइल ऐप नहीं है। Claude Code एक VPS (virtual private server) पर चलता है, जो एक tmux सत्र के अंदर होता है जो खुला रहता है। आपका फोन उस सत्र से एक SSH (secure shell) कनेक्शन खोलता है, जब तक आप उसे देख रहे होते हैं। ऐप बंद करने पर भी एजेंट काम करना जारी रखता है, क्योंकि यह प्रक्रिया कभी फोन पर नहीं चल रही थी।

यह विभाजन ही पूरा डिज़ाइन है। फोन का ऑपरेटिंग सिस्टम किसी ऐप से स्विच करने के कुछ सेकंड बाद ही उसे सस्पेंड कर देता है, इसलिए फोन पर शुरू किया गया कोई भी लंबा काम रुक जाता है। जब भी आप वाई-फाई से मोबाइल डेटा पर जाते हैं, तो इसे एक नया नेटवर्क एड्रेस भी मिलता है। जब प्रक्रिया सर्वर पर चलती है और फोन केवल स्क्रीन दिखाता है, तो ये दोनों समस्याएं खत्म हो जाती हैं।

आपको सर्वर पर चार चीजों की आवश्यकता है: सत्र को बनाए रखने के लिए tmux, एक्सेस के लिए SSH keys, नेटवर्क परिवर्तनों के लिए mosh, और स्वयं Claude Code। फोन की तरफ, आपको केवल एक टर्मिनल ऐप चाहिए जिसमें एक ऐसी की-रो (key row) हो जिसे आप आसानी से इस्तेमाल कर सकें।

VPS पर आपको क्या चाहिए

SSH और tmux के लिए एक छोटा Ubuntu 24.04 बॉक्स पर्याप्त है। Claude Code के लिए अधिक संसाधनों की आवश्यकता होती है। जुलाई 2026 तक की आधिकारिक आवश्यकताओं के अनुसार, x64 या ARM64 प्रोसेसर पर Ubuntu 20.04 या उससे नया संस्करण और 4 GB या अधिक RAM होनी चाहिए। 1 GB वाले प्लान पर इसे इंस्टॉल तो किया जा सकता है, लेकिन लोड बढ़ने पर कर्नल इस प्रोसेस को समाप्त कर देता है। Claude Code के लिए एक सशुल्क Claude अकाउंट (Pro, Max, Team या Enterprise) या API एक्सेस वाला Console अकाउंट भी आवश्यक है, क्योंकि मुफ्त Claude.ai प्लान में यह शामिल नहीं है।

बॉक्स को root के बजाय sudo एक्सेस वाले एक सामान्य उपयोगकर्ता के रूप में सेट करें। यदि सर्वर नया है, तो पहले नए VPS पर शुरुआती दस मिनट का कार्य पूरा करें, क्योंकि इस गाइड में बाद में किए जाने वाले SSH बदलाव उपयोगकर्ता और फायरवॉल के मौजूद होने पर आसान हो जाते हैं।

sudo apt update && sudo apt install -y tmux mosh
curl -fsSL https://claude.ai/install.sh | bash
claude --version

इंस्टॉलर बाइनरी को ~/.local/bin/claude पर रखता है, और claude --version कमांड 2.1.211 (Claude Code) जैसी एक लाइन प्रिंट करता है। यदि यह command not found प्रिंट करता है, तो वह डायरेक्टरी अभी तक आपके PATH में नहीं है: लॉग आउट करें, फिर से लॉग इन करें, और फिर command -v claude के साथ जांचें। claude doctor बिना सत्र शुरू किए इंस्टॉलेशन और सेटिंग्स का डायग्नोस्टिक्स प्रिंट करता है।

फोन पर निर्भर होने से पहले, अभी एक बार लैपटॉप से लॉग इन करें। किसी प्रोजेक्ट डायरेक्टरी में claude चलाएं और लॉगिन प्रॉम्प्ट का पालन करें। यह प्रक्रिया आपसे ब्राउज़र में एक URL खोलने और कोड को वापस टर्मिनल में लाने के लिए कहती है, और फोन की स्क्रीन पर दो ऐप्स के बीच स्विच करना धीमा होता है। इसे एक बार असली कीबोर्ड पर करें, और क्रेडेंशियल्स सर्वर पर सुरक्षित रहेंगे।

Claude Code को tmux के अंदर शुरू करें ताकि कनेक्शन टूटने पर यह बंद न हो

tmux new -s claude
cd ~/projects/api
claude

Ctrl-b और फिर d दबाकर डिटैच करें। tmux [detached (from session claude)] प्रिंट करता है और आपको शेल वापस दे देता है। अब आप ऐप बंद कर सकते हैं, सिग्नल खो सकते हैं, या फोन को अपनी जेब में रख सकते हैं। पेन (pane) चलता रहेगा।

tmux ls
tmux attach -t claude

tmux ls प्रति सेशन एक लाइन प्रिंट करता है, जैसे कि claude: 1 windows (created Thu Jul 30 09:14:02 2026)tmux attach -t claude आपको ठीक उसी जगह वापस ले जाता है जहाँ आपने काम छोड़ा था, जिसमें अधूरा संपादन भी शामिल है।

यह इसलिए काम करता है क्योंकि tmux अपनी एक सर्वर प्रक्रिया चलाता है, और आपका शेल तथा Claude Code उस सर्वर के चाइल्ड प्रोसेस होते हैं, न कि sshd के। जब SSH कनेक्शन समाप्त होता है, तो कर्नल उस कनेक्शन से जुड़ी प्रक्रियाओं को हैंगअप सिग्नल, SIGHUP भेजता है, और tmux सर्वर उनमें से एक नहीं है। tmux के बिना, वही स्क्रीन लॉक जो आपका कनेक्शन तोड़ता है, Claude Code को टूल कॉल के बीच में ही रोक देता है। tmux के अंदर VPS पर Claude Code चलाना सेशन लेआउट के बारे में अधिक विस्तार से जानकारी देता है।

tmux को सर्वर पर चलाएं, फोन पर कभी नहीं। जिस सेशन से आप पहले से जुड़े हैं, उसके अंदर tmux टाइप करने पर sessions should be nested with care, unset $TMUX to force प्रिंट होता है, और इसे जबरन चलाने पर आपको दो प्रीफिक्स की (prefix keys) के बीच संघर्ष करना पड़ेगा।

हर लॉगिन पर स्वचालित रूप से अटैच करें

टच कीबोर्ड पर attach कमांड टाइप करना थकाऊ हो सकता है। इसे सर्वर पर ~/.profile के अंत में जोड़ें:

if command -v tmux >/dev/null 2>&1 && [ -z "$TMUX" ] && [ -t 1 ]; then
  exec tmux new-session -A -s claude
fi

new-session -A -s claude यदि claude नाम का सेशन मौजूद है तो उससे अटैच हो जाता है, और यदि वह मौजूद नहीं है तो उसे बना देता है, इसलिए एक ही कमांड दोनों स्थितियों को संभाल लेती है। exec लॉगिन शेल को tmux से बदल देता है, इसलिए tmux से बाहर निकलने पर कनेक्शन बंद हो जाता है, न कि आपको केवल एक खाली प्रॉम्प्ट पर छोड़ दिया जाता है। जब आपको एक साधारण शेल की आवश्यकता हो, तो फ़ाइल को छोड़ दें: ssh you@server -t "bash --noprofile"

इसे ~/.profile में रखें, न कि ~/.bashrc में। ~/.bashrc गैर-इंटरैक्टिव सत्रों के लिए भी चलता है, इसलिए फ़ाइल ट्रांसफर विफल हो जाते हैं: scp और sftp अप्रत्याशित आउटपुट को प्रोटोकॉल डेटा के रूप में पढ़ते हैं और Received message too long के साथ विफल हो जाते हैं। ~/.profile केवल लॉगिन शेल के लिए चलता है, जो कि एक इंटरैक्टिव SSH सत्र होता है।

~/.profile वह स्थान भी है जहाँ Ubuntu ~/.local/bin को PATH में जोड़ता है। यदि लॉगिन के तुरंत बाद claude सही ढंग से काम करता है लेकिन tmux के अंदर का शेल command not found कहता है, तो इसका कारण यह क्रम है, इसलिए tmux को ऊपर बताए अनुसार लॉगिन शेल से शुरू करें, न कि ऐसी स्क्रिप्ट से जो प्रोफ़ाइल को छोड़ देती है।

दोनों ऐप्स SSH और mosh का समर्थन करते हैं और दोनों ही ऐप्स के भीतर कुंजियों (keys) को स्टोर करते हैं। मुख्य अंतर इनके इंटरफ़ेस में है।

Blink Shell कमांड-आधारित है। इसके प्रॉम्प्ट पर आप ssh you@server या mosh you@server टाइप करते हैं, जो डेस्कटॉप टर्मिनल के समान सिंटैक्स है। सेटिंग्स खोलने के लिए config टाइप करें, और Keys सेक्शन आपके लिए एक पेयर (pair) बना देगा।

Termius फॉर्म-आधारित है। आप एक होस्ट एंट्री भरते हैं, फिर होस्ट विवरण में उस होस्ट को SSH से Mosh पर स्विच करते हैं। Termius अपना स्वयं का mosh कार्यान्वयन प्रदान करता है और mosh 1.3.0 तथा नए संस्करणों का समर्थन करता है, इसलिए सर्वर पर अभी भी mosh पैकेज इंस्टॉल होना आवश्यक है।

दोनों ही स्थितियों में ऐप के भीतर ही कुंजी जनरेट करें, और कभी भी किसी मौजूदा प्राइवेट की (private key) को फोन पर कॉपी न करें। ऐप आपको पब्लिक हाफ (public half) दिखाता है, जो वह एकल लाइन है जिसे आप सर्वर पर ~/.ssh/authorized_keys में जोड़ते हैं। प्रति डिवाइस SSH कुंजियाँ और उन्हें रद्द कैसे करें में नामकरण और रद्द करने की प्रक्रिया शामिल है, जो लैपटॉप की तुलना में फोन के लिए अधिक महत्वपूर्ण है।

टर्मिनल ऐप का अपना बायोमेट्रिक या पासकोड लॉक चालू करें। इसके बिना, जब तक स्क्रीन चालू रहती है, तब तक एक अनलॉक फोन आपके सर्वर के लिए एक खुला शेल (shell) बना रहता है।

Android: Termux

pkg upgrade
pkg install openssh mosh
ssh-keygen -t ed25519 -C "pixel"
cat ~/.ssh/id_ed25519.pub

Termux अपने स्वयं के रिपॉजिटरी में OpenSSH और mosh को पैकेज करता है, इसलिए ssh, ssh-keygen और mosh वैसे ही काम करते हैं जैसे वे डेस्कटॉप पर करते हैं। प्रिंट की गई पब्लिक की लाइन को सर्वर पर ~/.ssh/authorized_keys में जोड़ें, फिर mosh you@server के साथ कनेक्ट करें।

Android के ऑन-स्क्रीन कीबोर्ड में कोई Esc की और कोई Ctrl की नहीं होती है, और Claude Code को दोनों की आवश्यकता होती है। Termux अपनी स्वयं की की-रो (key row) दिखा सकता है। ~/.termux/termux.properties में एक लाइन डालें:

extra-keys = [['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]

फिर termux-reload-settings चलाएं और कीबोर्ड के ऊपर वह रो दिखाई देगी। वही रीलोड ~/.termux/font.ttf पर छोड़े गए मोनोस्पेस TrueType फ़ॉन्ट को भी लागू कर देता है।

Android बैकग्राउंड में रहने के दौरान Termux को रोक सकता है, और यहाँ इसका मतलब केवल फिर से कनेक्ट करना है। सेशन और एजेंट सर्वर पर ही रहते हैं।

वाई-फाई से डिस्कनेक्ट होने पर टर्मिनल फ्रीज क्यों हो जाता है और mosh इसे कैसे ठीक करता है?

SSH कनेक्शन एक TCP (transmission control protocol) कनेक्शन होता है, और एक TCP कनेक्शन की पहचान दोनों IP एड्रेस और दोनों पोर्ट से होती है। वाई-फाई रेंज से बाहर निकलने पर फोन को मोबाइल नेटवर्क से एक नया एड्रेस मिल जाता है, इसलिए पुराना कनेक्शन दोनों सिरों पर किसी भी चीज़ से मेल नहीं खाता। इसकी सूचना कहीं नहीं दी जाती। टर्मिनल तब तक प्रतिक्रिया देना बंद कर देता है जब तक TCP हार नहीं मान लेता, और फिर ssh client_loop: send disconnect: Broken pipe प्रिंट करता है। फ्रीज हो चुके सेशन को तुरंत समाप्त करने के लिए, Enter, फिर ~, और फिर . दबाएं।

mosh (mobile shell) इस विफलता मोड को हटा देता है। यह लॉग इन करने और mosh-server प्रक्रिया शुरू करने के लिए एक बार SSH का उपयोग करता है, सर्वर द्वारा चुने गए UDP (user datagram protocol) पोर्ट को पढ़ता है, और SSH कनेक्शन को बंद कर देता है। उसके बाद दोनों पक्ष एक साझा सेशन की (shared session key) से प्रमाणित UDP डेटाग्राम का आदान-प्रदान करते हैं, इसलिए सेशन की पहचान आपके एड्रेस से नहीं बल्कि उस की (key) से होती है। एक नया एड्रेस मिलने पर भी काम जारी रहता है। mosh आपके टाइपिंग को स्थानीय रूप से भी दिखाता है और सर्वर के साथ असहमति होने पर स्क्रीन को फिर से पेंट करता है, यही कारण है कि यह धीमी मोबाइल लिंक पर भी उपयोग करने योग्य रहता है।

mosh 60000 और 61000 के बीच एक UDP पोर्ट का उपयोग करता है, इसलिए उस रेंज को खोलें:

sudo ufw allow 60000:61000/udp
sudo ufw status

ufw के साथ पोर्ट खोलना में फ़ायरवॉल की बाकी जानकारी दी गई है। यदि आपका प्रदाता अपने कंट्रोल पैनल में एक अलग नेटवर्क फ़ायरवॉल प्रदान करता है, तो वहां भी वही रेंज जोड़ें, क्योंकि ufw नियम मशीन के सामने स्थित फ़िल्टर को प्रभावित नहीं कर सकता।

mosh की दो विफलताएं सामान्य हैं। एक लॉग इन जो सफल होता है और फिर हैंग हो जाता है, और Nothing received from server on UDP port 60001. दिखाता है, इसका मतलब है कि UDP रेंज फोन और सर्वर के बीच कहीं ब्लॉक है। एक कनेक्शन जो mosh-server not found की रिपोर्ट करता है, इसका मतलब है कि पैकेज सर्वर पर मौजूद नहीं है या लॉग इन PATH में अनुपस्थित है। इसे इंस्टॉल करें, या mosh --server=/usr/bin/mosh-server you@server के साथ सीधे इसकी ओर इशारा करें।

mosh तब भी चलने से इनकार कर देता है जब लॉग इन लोकेल UTF-8 नहीं होता है, और यह संदेश देता है: mosh-server needs a UTF-8 native locale to run. लोकेल को फोन पर नहीं, बल्कि सर्वर पर ठीक करें।

locale
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8

दो चीजें हैं जो mosh नहीं करता है। इसका README बताता है कि mosh X फॉरवर्डिंग या SSH के गैर-इंटरैक्टिव उपयोगों का समर्थन नहीं करता है, जिसमें पोर्ट फॉरवर्डिंग शामिल है, इसलिए Claude Code द्वारा शुरू किए गए वेब ऐप का पूर्वावलोकन करने के लिए अभी भी सामान्य ssh -L 8080:127.0.0.1:8080 you@server की आवश्यकता होती है। यह केवल दृश्य स्क्रीन को सिंक्रोनाइज़ करता है, इसलिए इसमें अपना कोई स्क्रॉलबैक नहीं होता है। वह दूसरी सीमा यहां कोई समस्या नहीं है, क्योंकि tmux स्क्रॉलबैक को बनाए रखता है: Ctrl-b फिर [ कॉपी मोड में प्रवेश करता है, माउस से खींचने या एरो कीज़ से स्क्रॉल होता है, और q बाहर निकलने के लिए है।

फोन स्क्रीन को उपयोगी बनाना

सर्वर पर ~/.tmux.conf में मौजूद चार लाइनें अधिकांश कार्य करती हैं:

set -g mouse on
set -g status-position top
set -g default-terminal "tmux-256color"
set -g history-limit 20000

mouse on टच ड्रैग को स्क्रॉल में और टैप को पेन या विंडो चयन में बदल देता है, जो उन अधिकांश प्रीफिक्स कुंजियों की जगह ले लेता है जिन्हें टाइप करना कठिन होता है। status-position top tmux स्टेटस लाइन को निचले किनारे से हटा देता है, जहाँ ऑन-स्क्रीन कीबोर्ड और उसका सजेशन बार इसे ढक लेते हैं। default-terminal महत्वपूर्ण है क्योंकि अन्यथा tmux Claude Code को एक screen टर्मिनल की सूचना देता है, जिससे रंग और बॉक्स ड्राइंग आवश्यकता से अधिक खराब हो जाते हैं। यदि tmux फिर missing or unsuitable terminal: tmux-256color के साथ शुरू होने से मना कर दे, तो terminfo प्रविष्टि गायब है: sudo apt install ncurses-term

चार कुंजियाँ सीखें और बाकी सब आरामदायक हो जाएगा।

  • Esc Claude को प्रतिक्रिया के बीच में ही रोक देता है और पहले से किए गए काम को सुरक्षित रखता है, इसलिए यह वह कुंजी है जिसे आप अपने अंगूठे के सबसे करीब रखना चाहेंगे।
  • Ctrl+C भी एक चल रहे ऑपरेशन को बाधित करता है। एक आइडल प्रॉम्प्ट पर, पहला प्रेस इनपुट को क्लियर करता है और दूसरा प्रेस Claude Code से बाहर निकल जाता है, इसलिए यह अधिक कठोर उपकरण है।
  • Esc को दो बार दबाने से ड्राफ्ट प्रॉम्प्ट क्लियर हो जाता है, और खाली प्रॉम्प्ट पर यह रिवाइंड मेनू खोल देता है।
  • मल्टी-लाइन प्रॉम्प्ट के लिए, \ टाइप करें और फिर Enter दबाएं। यह तरीका हर टर्मिनल में काम करता है। Shift+Enter केवल डेस्कटॉप टर्मिनलों की एक छोटी सूची में ही नेटिव रूप से काम करता है, और मोबाइल क्लाइंट इसमें शामिल नहीं हैं।

स्प्लिट पेन का उपयोग करने से बचें। पोर्ट्रेट मोड में फोन लगभग 40 कॉलम चौड़ा होता है, इसलिए वर्टिकल स्प्लिट प्रत्येक पेन के लिए 20 कॉलम छोड़ता है और हर diff शोर में बदल जाता है। इसके बजाय tmux विंडो का उपयोग करें: Ctrl-b c एक नई विंडो बनाता है और Ctrl-b n अगली विंडो पर जाता है। जब आपको diff को ठीक से पढ़ने की आवश्यकता हो, तो फोन को आड़ा (sideways) घुमा लें।

छोटी स्क्रीन पर लंबा सत्र मुख्य रूप से संदर्भ (context) की समस्या है, इसलिए Claude Code कॉन्टेक्स्ट विंडो को मैनेज करना पढ़ना उपयोगी है, इससे पहले कि आप ट्रेन से पूरे दिन का काम करने का प्रयास करें।

इसे सुरक्षित करें: केवल keys, पासवर्ड नहीं

अब आपके फोन में एक ऐसी machine की key है जो आपके code को edit करती है और commands चलाती है। password authentication को बंद कर दें। sshd_config को सीधे edit करने के बजाय एक drop-in file का उपयोग करना अधिक सुरक्षित है, क्योंकि Ubuntu का sshd_config शीर्ष पर /etc/ssh/sshd_config.d/*.conf को शामिल करता है और किसी setting के लिए पाया गया पहला मान ही उपयोग किया जाता है।

sudo tee /etc/ssh/sshd_config.d/99-phone.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl reload ssh

sshd -t config को parse करता है और वैध होने पर कुछ भी print नहीं करता है। इसे छोड़ देने का मतलब है कि एक typo के कारण reload होने पर sshd विफल हो जाएगा। अपना वर्तमान session खुला रखें और कुछ भी बंद करने से पहले दूसरे connection से test करें, क्योंकि गलत key होने पर अब आपको Permission denied (publickey). मिलेगा और password बंद होने के कारण कोई दूसरा विकल्प नहीं बचेगा। उस स्थिति में recovery का एकमात्र रास्ता आपके provider का console है।

हर device को अपनी अलग key दें। फोन खो जाने का मतलब है ~/.ssh/authorized_keys से केवल एक line हटाना, और आपका laptop काम करता रहेगा। एक साझा key का मतलब है कि आपके पास मौजूद हर device पर key बदलनी होगी।

यदि आप Ubuntu 24.04 पर SSH को किसी अन्य port पर ले जाते हैं, तो ध्यान दें कि listener ssh.socket का है, इसलिए केवल एक Port line से कुछ नहीं बदलेगा। sudo systemctl edit ssh.socket चलाएं, खाली ListenStream= के साथ default को साफ़ करें, फिर अगली line पर अपना port set करें। VPS पर SSH को सुरक्षित करना इसमें और बाकी सुरक्षा पहलुओं को कवर करता है।

SSH के लिए fail2ban पासवर्ड बंद होने के बाद बहुत कम सुरक्षा जोड़ता है, क्योंकि अनुमानित पासवर्ड को किसी भी स्थिति में स्वीकार नहीं किया जा सकता है। यह जो जोड़ता है वह है शांत logs, जिससे वास्तविक login प्रयास को पहचानना आसान हो जाता है।

अधिक मजबूत विकल्प यह है कि SSH को public internet से दूर रखा जाए। server को स्वयं द्वारा host किए गए WireGuard VPN के पीछे रखें, आवश्यकता पड़ने पर फोन पर tunnel चालू करें, और sshd को केवल tunnel पर ListenAddress दें। mosh tunnel पर काम करता है क्योंकि दोनों तरफ UDP होता है। एक चेतावनी: tunnel packet overhead जोड़ता है, इसलिए यदि बड़े transfers रुक जाते हैं, तो फोन के WireGuard config में MTU (maximum transmission unit) को कम कर दें।

इस तरह काम करने के बारे में एक आखिरी बात। फोन से आप एक ऐसी screen पर अनुमति prompts को मंजूरी देते हैं जो एक बार में कुछ ही lines का diff दिखाती है। यह सुरक्षा उपायों को बंद करने के बजाय उन्हें बनाए रखने का एक कारण है। VPS पर सुरक्षित रूप से Claude Code चलाना उन user और directory सीमाओं को कवर करता है जिन्हें आपके मुख्य प्रवेश द्वार के touchscreen बनने से पहले set करना उचित है।

When you reattach and something is wrong

tmux attach printing no server running on /tmp/tmux-1000/default means the tmux server is gone, which nearly always means the machine rebooted. Check with uptime. Kernel updates from automatic security updates reboot the box, and a rebooted box has no tmux session, so treat any Claude Code run as something you can restart.

can't find session: claude is different. The tmux server is running but that name is not there. tmux ls shows what does exist.

If you attach and find a plain shell prompt where Claude Code used to be, the process ended without the session ending. Look at dmesg -T | tail for a line like Out of memory: Killed process 4821 (claude), which is what a box below the 4 GB requirement does during a large edit. No such line means Claude Code exited on its own, and the shell's scrollback above the prompt holds the reason.

A window that comes back tiny, with unused space around it, means two clients are attached at different sizes, because tmux sizes a window to fit the smallest attached client. Your laptop is still holding the session at 200 columns wide while the phone asks for 40. Detach the others as you attach: tmux attach -d -t claude.

FAQ

क्या मैं Claude Code को VPS के बजाय सीधे फोन पर चला सकता हूँ?

नहीं। जुलाई 2026 तक समर्थित प्लेटफॉर्म macOS, Windows, Ubuntu 20.04 या नया, Debian 10 या नया, और Alpine 3.19 या नया हैं, जिनमें 4 GB या अधिक RAM होनी चाहिए। Android और iOS इस सूची में नहीं हैं। फोन अपने ऐप्स को स्लीप मोड में डाल देता है और नेटवर्क एड्रेस लगातार बदलता रहता है, जिसे एक लंबा एजेंट रन सहन नहीं कर सकता। इसे सर्वर पर चलाएं और फोन का उपयोग केवल डिस्प्ले के रूप में करें।

यदि मैं ऐप बंद कर दूँ या सिग्नल खो दूँ तो क्या सेशन बना रहता है?

हाँ, और दो अलग-अलग घटक यह काम करते हैं। tmux सर्वर पर प्रोसेस को चालू रखता है, इसलिए कनेक्शन समाप्त होने पर कुछ भी बंद नहीं होता। mosh कनेक्शन को एड्रेस बदलने के दौरान भी जीवित रखता है, इसलिए वाई-फाई से मोबाइल डेटा पर स्विच करने पर आपको दोबारा कनेक्ट करने की आवश्यकता भी नहीं होती। सामान्य SSH और बिना tmux के, कनेक्शन टूटने पर SIGHUP भेजा जाता है और Claude Code कार्य के बीच में ही रुक जाता है।

mosh कनेक्ट होने के बाद कुछ भी क्यों नहीं दिखाता?

एक लॉगिन जो सफल होता है लेकिन Nothing received from server on UDP port 60001. के साथ रुक जाता है, इसका मतलब है कि UDP 60000 से 61000 पोर्ट खुले नहीं हैं। ufw में इस रेंज को जोड़ें, और इसे अपने प्रदाता के नेटवर्क फायरवॉल में भी जोड़ें, जो अधिकांश पैनलों पर एक अलग नियंत्रण होता है। यदि mosh इसके बजाय यह रिपोर्ट करता है कि mosh-server नहीं मिला, तो सर्वर पर पैकेज गायब है: sudo apt install mosh

मैं बिना Esc की वाले कीबोर्ड से Claude Code को कैसे रोकूँ?

एक की-रो (key row) जोड़ें। Termux इसे ~/.termux/termux.properties में extra-keys के साथ कॉन्फ़िगर करता है, और Termius तथा Blink दोनों एक ऐसी रो प्रदान करते हैं जिसे आप सेटिंग्स में संपादित कर सकते हैं। Esc चल रहे रिस्पॉन्स को रोकता है और किए गए कार्य को सुरक्षित रखता है। Ctrl+C भी रोकता है, लेकिन आइडल प्रॉम्प्ट पर इसे दो बार दबाने से Claude Code बंद हो जाता है, इसलिए पहले Esc का उपयोग करें।

क्या इंटरनेट पर SSH खोलना इसके लिए पर्याप्त सुरक्षित है?

पासवर्ड ऑथेंटिकेशन बंद होने पर, केवल वही की (key) सफल हो सकती है जो कभी आपके डिवाइस से बाहर नहीं जाती, जो कि ऐसी मशीन के लिए एक उचित जोखिम है जिसे आप दोबारा बना सकते हैं। प्रत्येक डिवाइस को अपनी अलग की दें ताकि फोन खोने पर आपको authorized_keys में केवल एक लाइन हटानी पड़े। यदि आप सार्वजनिक पोर्ट पर बिल्कुल भी जवाब नहीं देना चाहते हैं, तो सर्वर को WireGuard के पीछे रखें और sshd को टनल एड्रेस पर लिसन करने दें।