ఫోన్ నుంచి Claude Code ఎలా ఉపయోగించాలి
Claude Code VPSలో tmux sessionలో నడుస్తుంది; ఫోన్ కేవలం SSH window. SSH keys, అస్థిర mobile data కోసం mosh, tmux attach, కీలక keyboard పరిష్కారాలు తెలుసుకోండి.
మీ ఫోన్ నుంచి Claude Code: ఇది వాస్తవంగా ఎలా పనిచేస్తుంది
మీ ఫోన్లో Claude Code ఒక మొబైల్ యాప్ కాదు. Claude Code ఒక VPS (virtual private server)లో, తెరిచి ఉండే tmux session లో నడుస్తుంది. మీరు దాన్ని చూస్తున్నంతసేపు మీ ఫోన్ ఆ session కు SSH (secure shell) connection తెరిచి ఉంచుతుంది. మీరు యాప్ను మూసివేసినా agent పని కొనసాగిస్తుంది, ఎందుకంటే ఆ process ఫోన్లో ఎప్పుడూ నడవలేదు.
ఈ విభజనే మొత్తం రూపకల్పనకు ఆధారం. మీరు ఒక యాప్ నుంచి బయటకు మారిన కొన్ని సెకన్ల తర్వాత phone operating system ఆ యాప్ను suspend చేస్తుంది. అందువల్ల ఫోన్లో ప్రారంభించిన దీర్ఘకాలిక పని ఆగిపోతుంది. అదనంగా, మీరు wifi నుంచి mobile data కు మారిన ప్రతిసారీ ఫోన్కు కొత్త network address వస్తుంది. Process serverపై నడిచి, ఫోన్ కేవలం screen ను చూపిస్తే ఈ రెండు సమస్యలు తొలగిపోతాయి.
Serverపై మీకు నాలుగు అంశాలు అవసరం: session ను నిలుపుకోవడానికి tmux, లోనికి ప్రవేశించడానికి SSH keys, network మార్పుల కోసం mosh, అలాగే Claude Code. ఫోన్ వైపు మీరు key row ను అందుబాటులో ఉంచే ఒక terminal app మాత్రమే ఉపయోగించాలి.
VPSలో మీకు అవసరమైనవి
SSH మరియు tmux భాగాలకు చిన్న Ubuntu 24.04 సర్వర్ సరిపోతుంది. Claude Code కోసం మరిన్ని వనరులు అవసరం. July 2026 నాటికి అధికారిక అవసరాలు x64 లేదా ARM64 ప్రాసెసర్తో Ubuntu 20.04 లేదా తదుపరి వెర్షన్, అలాగే 4 GB లేదా అంతకంటే ఎక్కువ RAM. 1 GB ప్లాన్లో ఇది install అవుతుంది, కానీ load పెరిగినప్పుడు kernel ఆ process ను terminate చేస్తుంది. Claude Code ఉపయోగించడానికి paid Claude account (Pro, Max, Team లేదా Enterprise) లేదా API access ఉన్న Console account కూడా అవసరం. ఉచిత Claude.ai ప్లాన్లో ఇది ఉండదు.
సర్వర్ను root గా కాకుండా sudo హక్కులు ఉన్న సాధారణ user తో సిద్ధం చేయండి. సర్వర్ కొత్తదైతే ముందుగా కొత్త VPSలో మొదటి పది నిమిషాలు పూర్తి చేయండి. ఆ తర్వాత ఈ guideలోని SSH మార్పులు చేయడం సులభం అవుతుంది, ఎందుకంటే user మరియు firewall అప్పటికే సిద్ధంగా ఉంటాయి.
sudo apt update && sudo apt install -y tmux mosh
curl -fsSL https://claude.ai/install.sh | bash
claude --versionInstaller binaryని ~/.local/bin/claude వద్ద ఉంచుతుంది. claude --version అమలు చేస్తే 2.1.211 (Claude Code) వంటి line కనిపిస్తుంది. command not found కనిపిస్తే, ఆ directory మీ PATH లో ఇంకా లేదు. logout చేసి మళ్లీ login అవ్వండి. తరువాత command -v claude తో తనిఖీ చేయండి. Session ప్రారంభించకుండా installation మరియు settings diagnostics చూడటానికి claude doctor అమలు చేయండి.
ఇప్పుడు ఫోన్పై ఆధారపడకముందే laptop నుంచి ఒకసారి login అవ్వండి. ఒక project directoryలో claude అమలు చేసి login promptను అనుసరించండి. ఈ విధానంలో browserలో ఒక URL తెరిచి, అక్కడి codeను terminalకు తిరిగి ఇవ్వాలి. ఫోన్లో రెండు apps మధ్య మారుతూ ఈ పని చేయడం నెమ్మదిగా ఉంటుంది. నిజమైన keyboardపై ఒకసారి పూర్తి చేస్తే credentials సర్వర్లోనే ఉంటాయి.
కనెక్షన్ తెగిపోయినా అది ఆగకుండా ఉండేందుకు tmux లో Claude Code ప్రారంభించండి
tmux new -s claude
cd ~/projects/api
claudeCtrl-b నొక్కి detach చేసి, తరువాత d నొక్కండి. tmux [detached (from session claude)] ను చూపించి, shell ను మీకు తిరిగి ఇస్తుంది. ఇప్పుడు app మూసివేసినా, signal పోయినా లేదా phone ను జేబులో పెట్టుకున్నా సమస్య లేదు. pane అమలవుతూనే ఉంటుంది.
tmux ls
tmux attach -t claudetmux ls ప్రతి session కు ఒక పంక్తి చూపిస్తుంది. ఉదాహరణకు, claude: 1 windows (created Thu Jul 30 09:14:02 2026). tmux attach -t claude ఉపయోగిస్తే మీరు వదిలిన చోటికే తిరిగి వెళ్తారు. సగంలో ఉన్న edit కూడా అలాగే ఉంటుంది.
ఇది పనిచేయడానికి కారణం tmux తనకు స్వంతంగా server process ను నడపడం. మీ shell మరియు Claude Code, sshd కు చెందిన processes కాకుండా, ఆ server కు చెందిన child processes గా ఉంటాయి. SSH కనెక్షన్ ముగిసినప్పుడు kernel ఆ కనెక్షన్కు attached గా ఉన్న processes కు hangup signal, SIGHUP, పంపుతుంది. tmux server వాటిలో ఉండదు. tmux లేకపోతే, మీ కనెక్షన్ను తెంచే అదే screen lock, tool call మధ్యలో Claude Code ను ఆపేస్తుంది. VPS లో tmux లో Claude Code నడపడం లో session layout గురించి మరింత వివరంగా ఉంది.
tmux ను server పై నడపండి, phone పై ఎప్పుడూ నడపవద్దు. మీరు ఇప్పటికే attached గా ఉన్న session లో tmux టైప్ చేస్తే sessions should be nested with care, unset $TMUX to force చూపిస్తుంది. దాన్ని force చేస్తే, పరస్పరం పోటీపడే రెండు prefix keys మీకు ఉంటాయి.
ప్రతి login సమయంలో స్వయంచాలకంగా attach చేయడం
touch keyboard పై attach command టైప్ చేయడం ఇబ్బందికరంగా మారుతుంది. సర్వర్లోని ~/.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 పేరున్న session కు attach అవుతుంది. అది లేకపోతే కొత్త session ను సృష్టిస్తుంది. అందువల్ల రెండు పరిస్థితులకూ ఒకే command సరిపోతుంది. exec login shell స్థానంలో tmux ను అమలు చేస్తుంది. కాబట్టి tmux నుంచి నిష్క్రమించినప్పుడు ఖాళీ prompt వద్దకు కాకుండా connection మూసివేయబడుతుంది. సాధారణ shell అవసరమైతే ఈ ఫైల్ను దాటవేయండి: ssh you@server -t "bash --noprofile".
దీనిని ~/.profile లో ఉంచండి, ~/.bashrc లో కాదు. ~/.bashrc interactive కాని sessions లో కూడా అమలవుతుంది. అందువల్ల file transfers విఫలమవుతాయి: scp మరియు sftp అనుకోని output ను protocol data గా చదివి, Received message too long తో విఫలమవుతాయి. ~/.profile login shells కోసం మాత్రమే అమలవుతుంది. Interactive SSH session కు ఇదే సరైనది.
Ubuntu, ~/.local/bin ను PATH కు జోడించేది కూడా ~/.profile లోనే. Login చేసిన వెంటనే claude పనిచేసినా, tmux లోని shell command not found అని చూపిస్తే, దానికి కారణం ఈ execution order. అందువల్ల profile ను దాటవేసే script నుంచి కాకుండా, పై విధంగా login shell నుంచి tmux ను ప్రారంభించండి.
iOS: Termius లేదా Blink Shell
రెండు అప్లికేషన్లు SSH మరియు mosh కు మద్దతు ఇస్తాయి. రెండూ keys ను అప్లికేషన్లోనే నిల్వ చేస్తాయి. తేడా interface లో ఉంది.
Blink Shell command-driven గా పనిచేస్తుంది. దాని prompt వద్ద desktop terminal లో వాడే syntax మాదిరిగానే ssh you@server లేదా mosh you@server టైప్ చేయాలి. config టైప్ చేస్తే Settings తెరుచుకుంటాయి. Keys విభాగం మీ కోసం ఒక key pair ను సృష్టిస్తుంది.
Termius form-driven గా పనిచేస్తుంది. ముందుగా host entryని పూరించాలి. తరువాత host detailsలో ఆ hostను SSH నుంచి Moshకు మార్చాలి. Termius తన స్వంత mosh implementationను అందిస్తుంది. ఇది mosh 1.3.0 మరియు ఆపై versionsకు మద్దతు ఇస్తుంది. కాబట్టి serverలో mosh package ఇప్పటికీ install అయి ఉండాలి.
రెండు సందర్భాల్లోనూ keyని అప్లికేషన్లోనే generate చేయాలి. ఇప్పటికే ఉన్న private keyని phoneలోకి ఎప్పుడూ copy చేయకండి. అప్లికేషన్ మీకు public halfను చూపిస్తుంది. Serverలోని ~/.ssh/authorized_keys కు మీరు జోడించాల్సింది ఆ ఒక్క line మాత్రమే. ప్రతి device కోసం SSH keys మరియు ఒకదాన్ని revoke చేసే విధానంలో naming మరియు revoke దశ వివరించబడ్డాయి. Laptop కంటే phone విషయంలో ఇవి మరింత ముఖ్యమైనవి.
Terminal అప్లికేషన్లోని biometric లేదా passcode lockను కూడా enable చేయండి. అది లేకపోతే screen మేల్కొని ఉన్నంతకాలం unlocked phone మీ serverపై తెరిచి ఉన్న shellగా మారుతుంది.
Android: Termux
pkg upgrade
pkg install openssh mosh
ssh-keygen -t ed25519 -C "pixel"
cat ~/.ssh/id_ed25519.pubTermux తన స్వంత repositoryలో OpenSSH మరియు mosh packagesను అందిస్తుంది. అందువల్ల ssh, ssh-keygen మరియు mosh desktopలో పనిచేసే విధంగానే పనిచేస్తాయి. ప్రదర్శించిన public key lineను serverలోని ~/.ssh/authorized_keys కు జోడించండి. తరువాత mosh you@server తో connect అవ్వండి.
Android on-screen keyboardలో Esc key మరియు Ctrl key ఉండవు. Claude Codeకు ఈ రెండూ అవసరం. Termux తన సొంత key rowను చూపించగలదు. ~/.termux/termux.properties లో ఒక lineను ఉంచండి:
extra-keys = [['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]తరువాత termux-reload-settings ను run చేయండి. Keyboard పైన ఆ row కనిపిస్తుంది. ~/.termux/font.ttf వద్ద ఉంచిన monospace TrueType fontను కూడా ఇదే reload తీసుకుంటుంది.
Termux backgroundలో ఉన్నప్పుడు Android దాన్ని ఆపివేయవచ్చు. ఈ సందర్భంలో reconnect చేయడం తప్ప మీకు మరే నష్టం ఉండదు. Session మరియు agent serverలోనే ఉంటాయి.
WiFi పరిధి దాటినప్పుడు terminal ఎందుకు freeze అవుతుంది, mosh దాన్ని ఎలా పరిష్కరిస్తుంది?
SSH connection అనేది TCP (transmission control protocol) connection. TCP connection ను రెండు addresses మరియు రెండు ports కలిపి గుర్తిస్తాయి. WiFi పరిధి నుంచి బయటకు వెళ్తే phone కు mobile network నుంచి కొత్త address లభిస్తుంది. అందువల్ల పాత connection ఏ endpointకూ సరిపోదు. దీన్ని ఏ వ్యవస్థా తెలియజేయదు. TCP విఫలమయ్యే వరకు terminal స్పందించదు. ఆ తర్వాత ssh client_loop: send disconnect: Broken pipe ను చూపిస్తుంది. Freeze అయిన session ను వెంటనే ముగించడానికి Enter, తరువాత ~, ఆపై . నొక్కండి.
mosh (mobile shell) ఈ వైఫల్య పరిస్థితిని తొలగిస్తుంది. ఇది SSH ను ఒక్కసారి ఉపయోగించి login అవుతుంది, mosh-server process ను ప్రారంభిస్తుంది, server ఎంచుకున్న UDP (user datagram protocol) port ను తిరిగి చదువుతుంది, తరువాత SSH connection ను మూసివేస్తుంది. ఆ తర్వాత రెండు వైపులూ shared session key తో authentication చేసిన UDP datagrams ను మార్చుకుంటాయి. అందువల్ల session మీ address ఆధారంగా కాకుండా ఆ key ఆధారంగా గుర్తించబడుతుంది. కొత్త address వచ్చినా session కొనసాగుతుంది. mosh మీరు టైప్ చేసినదాన్ని local గా echo చేస్తుంది. Server పంపిన స్థితి భిన్నంగా ఉంటే screen ను మళ్లీ render చేస్తుంది. అందుకే slow mobile link పై కూడా ఇది ఉపయోగించగలిగే స్థితిలో ఉంటుంది.
mosh 60000 మరియు 61000 మధ్య UDP port ను ఉపయోగిస్తుంది. కాబట్టి ఆ range ను open చేయండి:
sudo ufw allow 60000:61000/udp
sudo ufw statusufw తో ports open చేయడం firewall configuration లోని మిగిలిన భాగాన్ని వివరిస్తుంది. మీ provider control panel లో ప్రత్యేక network firewall అందిస్తే, అదే range ను అక్కడ కూడా add చేయండి. ఎందుకంటే machine ముందు ఉన్న filter పై ufw rule ప్రభావం చూపదు.
mosh కు సంబంధించిన రెండు వైఫల్యాలు సాధారణంగా కనిపిస్తాయి. Login విజయవంతమైన తర్వాత hang అయి, Nothing received from server on UDP port 60001. చూపిస్తే, phone మరియు server మధ్య ఎక్కడో UDP range block అయిందని అర్థం. Connection mosh-server not found అని చూపిస్తే, server లో package లేదు లేదా login PATH లో అది అందుబాటులో లేదు. దాన్ని install చేయండి. లేదా mosh --server=/usr/bin/mosh-server you@server తో దాని path ను నేరుగా సూచించండి.
Login locale UTF-8 కాకపోతే mosh కూడా నడవదు. అది ఈ సందేశాన్ని చూపిస్తుంది: mosh-server needs a UTF-8 native locale to run. Locale ను phone లో కాకుండా server లో సరిచేయండి.
locale
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8mosh చేయని రెండు పనులు ఉన్నాయి. mosh X forwarding కు, అలాగే port forwarding సహా SSH యొక్క non-interactive ఉపయోగాలకు మద్దతు ఇవ్వదని దాని README పేర్కొంటుంది. అందువల్ల Claude Code ఇప్పుడే ప్రారంభించిన web app ను preview చేయడానికి plain ssh -L 8080:127.0.0.1:8080 you@server ఇంకా అవసరం. అదనంగా, ఇది కనిపిస్తున్న screen ను మాత్రమే synchronize చేస్తుంది. కాబట్టి దీనికి స్వంత scrollback ఉండదు. ఈ పరిమితి ఇక్కడ సమస్య కాదు, ఎందుకంటే tmux scrollback ను ఉంచుతుంది: Ctrl-b తరువాత [ నొక్కితే copy mode లోకి ప్రవేశిస్తుంది; drag లేదా arrow keys తో scroll చేయవచ్చు; q నొక్కితే బయటకు వస్తుంది.
ఫోన్ స్క్రీన్ను ఉపయోగించగలిగేలా చేయండి
సర్వర్లోని ~/.tmux.conf లోని నాలుగు పంక్తులు ప్రధాన పనిని నిర్వహిస్తాయి:
set -g mouse on
set -g status-position top
set -g default-terminal "tmux-256color"
set -g history-limit 20000mouse on టచ్తో drag చేయడాన్ని scrollగా, tap చేయడాన్ని pane లేదా window ఎంపికగా మారుస్తుంది. దీనివల్ల టైప్ చేయడానికి ఇబ్బందిగా ఉండే చాలా prefix keys అవసరం ఉండదు. status-position top tmux status line ను దిగువ అంచు నుంచి పైకి తరలిస్తుంది. లేకపోతే on-screen keyboard మరియు దాని suggestion bar దాన్ని కప్పేస్తాయి. default-terminal ముఖ్యమైనది, ఎందుకంటే లేకపోతే tmux Claude Code కు screen terminal గా ప్రకటిస్తుంది. అప్పుడు colours మరియు box drawing అవసరమైనదానికంటే నాసిరకంగా కనిపిస్తాయి. ఆ తర్వాత tmux missing or unsuitable terminal: tmux-256color తో ప్రారంభం కావడానికి నిరాకరిస్తే, terminfo entry లేదు: sudo apt install ncurses-term.
నాలుగు keys నేర్చుకుంటే మిగతాది సౌకర్యంగా ఉంటుంది.
EscClaude ప్రతిస్పందన మధ్యలో దాన్ని ఆపుతుంది. ఇప్పటికే పూర్తయిన పని అలాగే ఉంటుంది. అందువల్ల ఇది మీ బొటనవేలికి అత్యంత దగ్గరగా ఉండాల్సిన key.Ctrl+Cకూడా నడుస్తున్న operation ను ఆపుతుంది. ఖాళీ prompt వద్ద మొదటిసారి నొక్కితే input తొలగుతుంది. రెండోసారి నొక్కితే Claude Code నుండి నిష్క్రమిస్తుంది. అందువల్ల ఇది మరింత కఠినమైన సాధనం.Escను రెండుసార్లు నొక్కితే draft prompt తొలగుతుంది. ఖాళీ prompt వద్ద మాత్రం rewind menu తెరుచుకుంటుంది.- బహుళ-పంక్తుల prompt కోసం
\టైప్ చేసి Enter నొక్కండి. ఈ పద్ధతి ప్రతి terminal లో పనిచేస్తుంది. Shift+Enter కొన్ని desktop terminals లో మాత్రమే nativeగా పనిచేస్తుంది. mobile clients ఆ జాబితాలో లేవు.
Split panes ను నివారించండి. Portrait స్థితిలో ఉన్న phone సుమారు 40 columns వెడల్పు ఉంటుంది. కాబట్టి vertical split చేస్తే ప్రతి pane కు 20 columns మాత్రమే మిగులుతాయి. అప్పుడు ప్రతి diff అనవసరంగా wrap అవుతుంది. బదులుగా tmux windows ఉపయోగించండి: Ctrl-b c తో ఒక window సృష్టించవచ్చు. Ctrl-b n తో తదుపరి window కు వెళ్లవచ్చు. రెండో window లో దాని స్వంత Claude Code session నడుస్తూ ఉంటే, రెండు sessions ఒకదానితో మరొకటి నేరుగా పనిని పంచుకోగలవు. అప్పుడు touchscreen పై windows మధ్య text copy చేయాల్సిన అవసరం ఉండదు. Diff ను సరిగ్గా చదవాల్సి వచ్చినప్పుడు phone ను sideways గా తిప్పండి.
ఆ స్క్రీన్పై ఎంత టెక్స్ట్ కనిపించాలి అన్నది ఉద్దేశపూర్వకంగా నిర్ణయించాలి. ఎందుకంటే output style ప్రతి ప్రత్యుత్తరానికి వెనుక ఉండే system prompt ను సవరించుతుంది. సంక్షిప్తమైన output style ఎంచుకుంటే ఫోన్లో దాటి scroll చేయాల్సిన స్క్రీన్ భాగాలు తగ్గుతాయి.
చిన్న screen పై దీర్ఘకాలం session నడపడం ప్రధానంగా context సమస్య. అందువల్ల train లో పూర్తి రోజు పని నడపడానికి ప్రయత్నించే ముందు Claude Code context window నిర్వహణ గురించి చదవడం ఉపయోగకరం.
దీనిని కఠినంగా భద్రపరచండి: keys మాత్రమే, passwords వద్దు
ఈ ఫోన్ ఇప్పుడు మీ code ను సవరించి commands ను అమలు చేసే machine కు ఒక key ను కలిగి ఉంది. Password authentication ను ఆపివేయండి. sshd_config ను నేరుగా సవరించడంకన్నా drop-in file సురక్షితం. కారణం, Ubuntu యొక్క sshd_config పైభాగంలో /etc/ssh/sshd_config.d/*.conf ను కలిగి ఉంటుంది. ఒక setting కోసం కనిపించిన మొదటి value నే ఉపయోగిస్తారు.
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 sshsshd -t config ను parse చేసి, అది చెల్లుబాటులో ఉన్నప్పుడు ఏమీ print చేయదు. దీన్ని దాటవేస్తే, ఒక typo వల్ల reload సమయంలో sshd విఫలమవుతుంది. మీ ప్రస్తుత session ను తెరిచి ఉంచండి. ఏదైనా మూసే ముందు రెండవ connection నుంచి పరీక్షించండి. తప్పు key వల్ల ఇప్పుడు Permission denied (publickey). వస్తుంది. Passwords ఆపివేసినందున fallback ఉండదు. ఆ స్థితిలో recovery మార్గం మీ provider యొక్క console.
ప్రతి device కు దాని స్వంత key ఇవ్వండి. ఫోన్ పోతే ~/.ssh/authorized_keys నుంచి ఒక line ను తొలగిస్తే సరిపోతుంది. మీ laptop పనిచేస్తూనే ఉంటుంది. ఒకే shared key ఉపయోగిస్తే, మీ స్వంత ప్రతి device లో key ను మార్చాలి.
Ubuntu 24.04 లో SSH ను మరో port కు మార్చితే, listener ssh.socket కు చెందుతుందని గుర్తుంచుకోండి. అందువల్ల Port line ను మాత్రమే జోడిస్తే ఎలాంటి మార్పు ఉండదు. sudo systemctl edit ssh.socket ను అమలు చేయండి. Default ను ఖాళీ ListenStream= తో తొలగించండి. తరువాతి line లో మీ port ను సెట్ చేయండి. VPS లో SSH ను కఠినంగా భద్రపరచడం లో దీనితో పాటు మిగతా attack surface గురించి కూడా వివరించారు.
SSH కోసం fail2ban passwords ఆపివేసిన తర్వాత తక్కువ అదనపు భద్రతను మాత్రమే ఇస్తుంది. కారణం, ఊహించిన password ను అసలు అంగీకరించలేరు. అయితే ఇది logs ను నిశ్శబ్దంగా ఉంచుతుంది. దాంతో నిజమైన login ప్రయత్నాన్ని సులభంగా గుర్తించవచ్చు.
SSH ను public internet నుంచి పూర్తిగా తొలగించడం మరింత బలమైన మార్గం. server ను మీరు స్వయంగా host చేసే WireGuard VPN వెనుక ఉంచండి. అవసరమైనప్పుడు ఫోన్లో tunnel ను ప్రారంభించండి. tunnel పై మాత్రమే sshd కు ListenAddress ఇవ్వండి. రెండు వైపులా UDP ఉపయోగిస్తున్నందున mosh tunnel పై పనిచేస్తుంది. ఒక పరిమితి ఉంది: tunnel packet overhead ను జోడిస్తుంది. పెద్ద transfers నిలిచిపోతే, ఫోన్లోని WireGuard config లో MTU (maximum transmission unit) ను తగ్గించండి.
ఈ విధంగా పనిచేయడం గురించి చివరి విషయం ఒకటి. ఫోన్ నుంచి మీరు అనుమతి prompts ను approve చేసేటప్పుడు, ఒకేసారి diff లోని కొన్ని lines మాత్రమే కనిపిస్తాయి. అందువల్ల guardrails ను ఆపివేయడం కాకుండా వాటిని కొనసాగించాలి. VPS పై Claude Code ను సురక్షితంగా అమలు చేయడం లో, మీ ప్రధాన ప్రవేశ మార్గం touchscreen గా ఉండే ముందు సెట్ చేయాల్సిన user మరియు directory పరిమితుల గురించి వివరించారు.
మీరు మళ్లీ జతచేసినప్పుడు ఏదైనా సమస్య కనిపిస్తే
tmux attach ను ముద్రించడం అంటే no server running on /tmp/tmux-1000/default tmux server అందుబాటులో లేదని అర్థం. దాదాపు ఎల్లప్పుడూ దీనికి కారణం machine reboot కావడమే. uptime తో తనిఖీ చేయండి. automatic security updates ద్వారా వచ్చే kernel updates box ను reboot చేస్తాయి. Reboot అయిన box లో tmux session ఉండదు. అందువల్ల ఏదైనా Claude Code run ను మళ్లీ ప్రారంభించగలదిగా పరిగణించండి.
can't find session: claude వేరే పరిస్థితిని సూచిస్తుంది. tmux server నడుస్తోంది, కానీ ఆ పేరు అక్కడ లేదు. ప్రస్తుతం ఉన్నవాటిని tmux ls చూపిస్తుంది.
మీరు attach చేసినప్పుడు Claude Code ఉన్న చోట సాధారణ shell prompt కనిపిస్తే, session ముగియకముందే process ముగిసిందని అర్థం. dmesg -T | tail లో Out of memory: Killed process 4821 (claude) వంటి line కోసం చూడండి. 4 GB requirement కంటే తక్కువ memory ఉన్న box పెద్ద edit సమయంలో ఇలానే ప్రవర్తిస్తుంది. అలాంటి line ఏదీ లేకపోతే Claude Code స్వయంగా exit అయింది. కారణం prompt పైభాగంలోని shell scrollback లో ఉంటుంది.
మళ్లీ తెరిచిన window చాలా చిన్నగా, చుట్టూ ఉపయోగించని ఖాళీతో కనిపిస్తే, రెండు clients వేర్వేరు పరిమాణాలతో attach అయి ఉన్నాయని అర్థం. అతి చిన్న attached client కు సరిపోయేలా tmux window పరిమాణాన్ని నిర్ణయిస్తుంది. మీ laptop ఇప్పటికీ session ను 200 columns వెడల్పుతో ఉంచుతోంది, కానీ phone 40 columns అడుగుతోంది. Attach అవుతున్నప్పుడు ఇతర clients ను detach చేయండి: tmux attach -d -t claude.
FAQ
నేను VPS పై కాకుండా ఫోన్లోనే Claude Code నడపవచ్చా?
లేదు. July 2026 నాటికి మద్దతు ఉన్న platforms ఇవి: macOS, Windows, Ubuntu 20.04 లేదా ఆ తర్వాతి versions, Debian 10 లేదా ఆ తర్వాతి versions, మరియు Alpine 3.19 లేదా ఆ తర్వాతి versions. వీటిలో 4 GB లేదా అంతకంటే ఎక్కువ RAM ఉండాలి. Android మరియు iOS ఆ జాబితాలో లేవు. ఫోన్లోని apps నిద్రావస్థలోకి వెళ్తాయి. ఫోన్ network address కూడా తరచుగా మారుతుంది. దీర్ఘకాల agent run కు ఇవి అనుకూలం కావు. దాన్ని server పై నడిపి, ఫోన్ను display గా ఉపయోగించండి.
నేను app మూసివేసినా లేదా signal కోల్పోయినా session కొనసాగుతుందా?
అవును. దీనికి రెండు వేర్వేరు భాగాలు పనిచేస్తాయి. tmux process ను server పై నడుస్తూనే ఉంచుతుంది. అందువల్ల connection ముగిసినా process ఆగదు. mosh address మారినప్పటికీ connection ను కొనసాగిస్తుంది. కాబట్టి wifi నుంచి mobile data కు మారినప్పుడు మళ్లీ connect కావాల్సిన అవసరం కూడా ఉండదు. tmux లేకుండా plain SSH ఉపయోగిస్తే, connection తెగినప్పుడు SIGHUP పంపబడుతుంది. దాంతో Claude Code పని మధ్యలోనే ఆగిపోతుంది.
mosh connect అయిన తర్వాత ఏమీ చూపించకపోవడానికి కారణం ఏమిటి?
Login విజయవంతమైన తర్వాత Nothing received from server on UDP port 60001. తో hang అయితే, UDP ports 60000 నుంచి 61000 వరకు open గా లేవని అర్థం. ఆ range ను ufw లో add చేయండి. మీ provider network firewall లో కూడా అదే range ను add చేయండి. చాలా control panels లో అది ప్రత్యేక నియంత్రణగా ఉంటుంది. mosh బదులుగా mosh-server కనుగొనబడలేదని చూపిస్తే, server లో ఆ package లేదు: sudo apt install mosh.
Esc key లేని keyboard నుంచి Claude Code ను ఎలా interrupt చేయాలి?
ఒక key row ను add చేయండి. Termux లో ~/.termux/termux.properties లోని extra-keys ద్వారా దీన్ని configure చేయవచ్చు. Termius మరియు Blink రెండింటిలోనూ settings లో edit చేయగల row ఉంటుంది. Esc నడుస్తున్న response ను interrupt చేస్తుంది. ఇప్పటికే పూర్తయిన పని అలాగే ఉంటుంది. Ctrl+C కూడా interrupt చేస్తుంది. అయితే idle prompt వద్ద దాన్ని రెండుసార్లు నొక్కితే Claude Code exit అవుతుంది. అందువల్ల ముందుగా Esc ఉపయోగించండి.
SSH ను internet కు open చేయడం ఈ సందర్భంలో తగినంత సురక్షితమేనా?
Password authentication ను off చేస్తే, విజయవంతంగా authenticate చేయగల ఏకైక credential మీ devices ను ఎప్పటికీ విడిచిపెట్టని key అవుతుంది. మీరు తిరిగి సులభంగా rebuild చేయగల machine కు ఇది సహేతుకమైన risk. ప్రతి device కు ప్రత్యేక key ఇవ్వండి. అప్పుడు ఫోన్ పోయినా authorized_keys లోని ఒక్క line ను మాత్రమే తొలగించాలి. Public port పై అసలు login స్వీకరించకూడదనుకుంటే, ఆ machine ను WireGuard వెనుక ఉంచి, sshd ను tunnel address పై listen చేయించండి.