Jinsi ya kutumia Claude Code kwenye simu yako
Tumia Claude Code kupitia VPS na tmux ili kuzuia kukatika kwa kazi. Jifunze kusanidi mosh, SSH keys, na terminal bora ili kuendesha wakala huu bila hitilafu kwenye simu.
Claude Code kutoka kwenye simu yako: jinsi inavyofanya kazi kwa uhalisia
Claude Code kutoka kwenye simu yako si programu ya simu (mobile app). Claude Code huendeshwa kwenye VPS (virtual private server), ndani ya tmux session inayobaki wazi, na simu yako hufungua muunganisho wa SSH (secure shell) kwenye session hiyo kwa muda wote unaoiangalia. Ukifunga programu hiyo, wakala (agent) huendelea kufanya kazi, kwa sababu mchakato huo haukuwahi kuishi kwenye simu.
Mgawanyo huo ndio msingi wa usanifu mzima. Mfumo wa uendeshaji wa simu husimamisha programu sekunde chache baada ya kuiondokea, hivyo kazi yoyote ndefu iliyoanzishwa kwenye simu husimama. Pia, simu hupata anwani mpya ya mtandao kila unapotoka kwenye wifi na kuingia kwenye data ya simu. Matatizo yote mawili hutatuka wakati mchakato unapoendeshwa kwenye seva na simu ikawa inaonyesha skrini pekee.
Unahitaji vitu vinne kwenye seva: tmux ya kushikilia session, SSH keys za kuingilia, mosh kwa ajili ya mabadiliko ya mtandao, na Claude Code yenyewe. Upande wa simu unahitaji programu moja ya terminal yenye safu ya vitufe unayoweza kuifikia.
Unachohitaji kwenye VPS
Mashine ndogo ya Ubuntu 24.04 inatosha kwa ajili ya SSH na tmux. Claude Code inahitaji zaidi. Mahitaji rasmi kufikia Julai 2026 ni Ubuntu 20.04 au toleo jipya zaidi kwenye processor ya x64 au ARM64, ikiwa na 4 GB ya RAM au zaidi. Mpango wa 1 GB utaifanya programu isakinike, lakini mchakato huo utafungwa na kernel pindi mzigo unapoongezeka. Claude Code pia inahitaji akaunti ya Claude ya kulipia (Pro, Max, Team au Enterprise) au akaunti ya Console yenye API access, kwa sababu mpango wa bure wa Claude.ai haujumuishi huduma hii.
Sanidi mashine hiyo kama mtumiaji wa kawaida mwenye sudo, si kama root. Ikiwa seva ni mpya, kamilisha kwanza dakika kumi za kwanza kwenye VPS mpya, kwa sababu mabadiliko ya SSH yatakayofanyika baadaye katika mwongozo huu ni rahisi zaidi mtumiaji na firewall zikiwa tayari zimesanidiwa.
sudo apt update && sudo apt install -y tmux mosh
curl -fsSL https://claude.ai/install.sh | bash
claude --versionKisakinishi huweka binary kwenye ~/.local/bin/claude, na claude --version huchapisha mstari kama 2.1.211 (Claude Code). Ikiwa itachapisha command not found, saraka hiyo haipo kwenye PATH yako bado: ondoka (log out), ingia tena (log in), kisha kagua kwa kutumia command -v claude. claude doctor huchapisha taarifa za utambuzi wa usakinishaji na mipangilio bila kuanzisha session.
Ingia kwenye seva sasa, ukitumia laptop, kabla ya kutegemea simu. Tekeleza claude ndani ya saraka ya mradi na ufuate maelekezo ya kuingia. Mchakato huu unakuomba ufungue URL kwenye kivinjari na ulete msimbo (code) kwenye terminal; kufanya hivyo kwa kutumia programu mbili kwenye skrini ya simu ni polepole. Fanya hivyo mara moja ukiwa na kibodi halisi na vitambulisho vitabaki kwenye seva.
Anzisha Claude Code ndani ya tmux ili muunganisho uliokatika usiisitishe
tmux new -s claude
cd ~/projects/api
claudeJitenge na kikao kwa kutumia Ctrl-b kisha d. tmux huchapisha [detached (from session claude)] na kukurudishia shell. Sasa unaweza kufunga programu, kupoteza mawasiliano, au kuweka simu mfukoni. Pane hiyo itaendelea kufanya kazi.
tmux ls
tmux attach -t claudetmux ls huchapisha mstari mmoja kwa kila kikao, kama vile claude: 1 windows (created Thu Jul 30 09:14:02 2026). tmux attach -t claude hukurudisha mahali ulipoishia, ikiwemo uhariri uliokuwa unaendelea.
Hii hufanya kazi kwa sababu tmux huendesha mchakato wake wa seva, na shell yako pamoja na Claude Code ni watoto wa seva hiyo badala ya kuwa wa sshd. Muunganisho wa SSH unapokatika, kernel hutuma ishara ya hangup, SIGHUP, kwa michakato iliyounganishwa na muunganisho huo, na seva ya tmux si mmoja wapo. Bila tmux, kufunga skrini kunakokatisha muunganisho wako kutasitisha Claude Code katikati ya utekelezaji wa zana. Kuendesha Claude Code kwenye VPS ndani ya tmux inaelezea mpangilio wa kikao kwa kina zaidi.
Endesha tmux kwenye seva, kamwe usiiendeshe kwenye simu. Kuandika tmux ndani ya kikao ambacho tayari umeunganishwa nacho huchapisha sessions should be nested with care, unset $TMUX to force, na kuilazimisha kutakupa funguo mbili za prefix zinazogombea nafasi.
Kuunganisha kiotomatiki kila unapoingia
Kuandika amri ya attach kwenye kibodi ya kugusa huchosha baada ya muda. Weka amri hii mwishoni mwa ~/.profile kwenye seva:
if command -v tmux >/dev/null 2>&1 && [ -z "$TMUX" ] && [ -t 1 ]; then
exec tmux new-session -A -s claude
finew-session -A -s claude huunganisha kwenye session yenye jina claude ikiwa ipo, na kuitengeneza ikiwa haipo, hivyo amri moja inashughulikia hali zote mbili. exec hubadilisha login shell na tmux, hivyo kutoka kwenye tmux hufunga muunganisho badala ya kukuacha kwenye prompt tupu. Unapohitaji shell ya kawaida, ruka faili hilo: ssh you@server -t "bash --noprofile".
Iweke kwenye ~/.profile na si kwenye ~/.bashrc. ~/.bashrc huendeshwa pia kwa session zisizo za mwingiliano (non-interactive), hivyo uhamishaji wa faili utafeli: scp na sftp husoma matokeo yasiyotarajiwa kama data ya itifaki na kufeli kwa Received message too long. ~/.profile huendeshwa kwa login shells pekee, ambayo ndiyo hali ya session ya SSH ya mwingiliano.
~/.profile pia ndipo Ubuntu huongeza ~/.local/bin kwenye PATH. Ikiwa claude inafanya kazi vizuri baada ya kuingia lakini shell ndani ya tmux inasema command not found, mpangilio huo ndio sababu, kwa hivyo anzisha tmux kutoka kwenye login shell kama ilivyo hapo juu badala ya kutumia script inayoruka profile.
iOS: Termius au Blink Shell
Programu zote mbili hutumia SSH na mosh na zote huhifadhi funguo (keys) ndani ya programu. Tofauti iko kwenye kiolesura.
Blink Shell inaendeshwa kwa amri. Kwenye prompt yake unaandika ssh you@server au mosh you@server, sintaksia ileile ya terminal ya kompyuta ya mezani. Mipangilio hufunguka kwa kuandika config, na sehemu ya Keys hutengeneza jozi ya funguo kwa ajili yako.
Termius inaendeshwa kwa fomu. Unajaza taarifa za host, kisha unabadilisha host huyo kutoka SSH kwenda Mosh kwenye maelezo ya host. Termius inakuja na utekelezaji wake wa mosh na inasaidia mosh 1.3.0 na matoleo mapya zaidi, kwa hivyo seva bado inahitaji kifurushi cha mosh kiwe kimesakinishwa.
Tengeneza ufunguo ndani ya programu katika hali zote mbili, na usiwahi kunakili ufunguo wa siri (private key) uliopo kwenda kwenye simu. Programu itakuonyesha nusu ya ufunguo wa umma (public key), ambayo ni mstari mmoja unaoongeza kwenye ~/.ssh/authorized_keys kwenye seva. Funguo za SSH kwa kila kifaa na jinsi ya kubatilisha moja inashughulikia utoaji majina na hatua ya kubatilisha, jambo ambalo ni muhimu zaidi kwa simu kuliko kwa kompyuta ya mkononi.
Washa ulinzi wa biometris au nambari ya siri (passcode) ya programu ya terminal yenyewe. Bila hivyo, simu iliyofunguliwa ni shell iliyo wazi kwenye seva yako kwa muda wote ambao skrini inabaki ikiwa imewaka.
Android: Termux
pkg upgrade
pkg install openssh mosh
ssh-keygen -t ed25519 -C "pixel"
cat ~/.ssh/id_ed25519.pubTermux inatoa vifurushi vya OpenSSH na mosh katika hazina yake yenyewe, kwa hivyo ssh, ssh-keygen na mosh hufanya kazi kama vile kwenye desktop. Ongeza mstari wa public key uliotolewa kwenye ~/.ssh/authorized_keys kwenye seva, kisha unganisha kwa kutumia mosh you@server.
Kibodi ya skrini ya Android haina kitufe cha Esc wala Ctrl, na Claude Code inahitaji vyote viwili. Termux inaweza kuonyesha safu yake ya vitufe. Weka mstari mmoja kwenye ~/.termux/termux.properties:
extra-keys = [['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]Kisha endesha termux-reload-settings na safu hiyo itaonekana juu ya kibodi. Reload hiyo hiyo pia hutumia font ya monospace TrueType iliyowekwa kwenye ~/.termux/font.ttf.
Android inaweza kusimamisha Termux inapokuwa nyuma (background), na hapa hilo halikugharimu chochote isipokuwa kuunganisha tena. Kikao (session) na wakala (agent) viko kwenye seva.
Kwa nini terminal huganda ninapoondoka kwenye wifi, na mosh hutatua nini?
Muunganisho wa SSH ni muunganisho wa TCP (transmission control protocol), na muunganisho wa TCP hutambuliwa na anwani zote mbili na port zote mbili. Unapotoka nje ya masafa ya wifi, simu hupata anwani mpya kutoka kwa mtandao wa simu, kwa hivyo muunganisho wa zamani haulingani na kitu chochote katika pande zote mbili. Hakuna kinachotangaza mabadiliko haya. Terminal huacha kuitikia hadi TCP ikate tamaa, kisha ssh huchapisha client_loop: send disconnect: Broken pipe. Ili kukatisha kikao kilichoganda mara moja, bonyeza Enter, kisha ~, kisha ..
mosh (mobile shell) huondoa hali hiyo ya kufeli. Hutumia SSH mara moja kuingia na kuanzisha mchakato wa mosh-server, husoma port ya UDP (user datagram protocol) iliyochaguliwa na seva, na kufunga muunganisho wa SSH. Baada ya hapo, pande zote mbili hubadilishana datagrams za UDP zilizothibitishwa kwa ufunguo wa kikao ulioshirikiwa, kwa hivyo kikao hutambuliwa na ufunguo huo na si kwa anwani yako. Anwani mpya huendeleza muunganisho bila kukatika. mosh pia huonyesha unachochapa ndani ya kifaa chako na kusasisha skrini wakati seva inapotoa majibu tofauti, ndiyo maana inabaki kutumika kwenye mtandao wa simu wa polepole.
mosh hutumia port ya UDP kati ya 60000 na 61000, kwa hivyo fungua masafa hayo:
sudo ufw allow 60000:61000/udp
sudo ufw statusKufungua port kwa kutumia ufw ina picha kamili ya firewall. Ikiwa mtoa huduma wako anatoa firewall ya mtandao tofauti kwenye paneli yake ya kudhibiti, ongeza masafa hayo huko pia, kwa sababu sheria ya ufw haiwezi kuathiri kichujio kilicho mbele ya mashine.
Kuna hitilafu mbili za kawaida za mosh. Kuingia kwa mafanikio na kisha kuganda, huku ikionyesha Nothing received from server on UDP port 60001., inamaanisha kuwa masafa ya UDP yamezuiwa mahali fulani kati ya simu na seva. Muunganisho unaoripoti mosh-server not found inamaanisha kuwa kifurushi hakipo kwenye seva au hakipo kwenye PATH ya kuingia. Kisakinishe, au kielekeze moja kwa moja kwa kutumia mosh --server=/usr/bin/mosh-server you@server.
mosh pia hukataa kufanya kazi wakati locale ya kuingia si UTF-8, na hutoa ujumbe huu: mosh-server needs a UTF-8 native locale to run. Rekebisha locale kwenye seva, si kwenye simu.
locale
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8Kuna mambo mawili ambayo mosh haifanyi. README yake inasema kuwa mosh haitumii X forwarding au matumizi yasiyo ya mwingiliano ya SSH, ikiwa ni pamoja na port forwarding, kwa hivyo kuhakiki programu ya wavuti ambayo Claude Code imeanzisha bado inahitaji ssh -L 8080:127.0.0.1:8080 you@server ya kawaida. Pia, inasawazisha skrini inayoonekana pekee, kwa hivyo haina scrollback yake yenyewe. Kikomo hicho cha pili hakina athari hapa, kwa sababu tmux huhifadhi scrollback: Ctrl-b kisha [ huingia kwenye hali ya kunakili (copy mode), kuburuta au kutumia vitufe vya mishale husogeza skrini, na q hutoka.
Make a phone screen usable
Four lines in ~/.tmux.conf on the server do most of the work:
set -g mouse on
set -g status-position top
set -g default-terminal "tmux-256color"
set -g history-limit 20000mouse on turns a touch drag into a scroll and a tap into a pane or window selection, which replaces most of the prefix keys that are awkward to type. status-position top moves the tmux status line off the bottom edge, where the on-screen keyboard and its suggestion bar cover it. default-terminal matters because tmux otherwise announces a screen terminal to Claude Code, and colours and box drawing come out worse than they need to. If tmux then refuses to start with missing or unsuitable terminal: tmux-256color, the terminfo entry is missing: sudo apt install ncurses-term.
Learn four keys and the rest is comfortable.
Escinterrupts Claude mid-response and keeps the work already done, so it is the key you want closest to your thumb.Ctrl+Cinterrupts a running operation as well. At an idle prompt the first press clears the input and a second press exits Claude Code, so it is the blunter tool.Esctwice clears a draft prompt, and at an empty prompt it opens the rewind menu instead.- For a multi-line prompt, type
\and then Enter. That form works in every terminal. Shift+Enter is native only in a short list of desktop terminals, and the mobile clients are not in it.
Avoid split panes. A phone in portrait is around 40 columns wide, so a vertical split leaves 20 columns per pane and every diff wraps into noise. Use tmux windows instead: Ctrl-b c creates one and Ctrl-b n moves to the next. If a second window ends up holding its own Claude Code session, the two sessions can hand work to each other directly instead of you copying text between windows on a touchscreen. Turn the phone sideways when you need to read a diff properly.
Kiasi cha maandishi kinachoonekana kwenye skrini hiyo kinafaa kuwekwa kwa makusudi, kwa sababu mtindo wa utoaji huhariri system prompt nyuma ya kila jibu na mtindo mfupi zaidi humaanisha kurasa chache za skrini za kusogeza kwenye simu.
A long session on a small screen is mostly a context problem, so managing the Claude Code context window is worth reading before you try to run a full day of work from a train.
Imarisha usalama: funguo pekee, bila nywila
Simu yako sasa inashikilia ufunguo wa mashine inayohariri msimbo wako na kuendesha amri. Zima uthibitishaji kwa nywila. Faili ya ziada (drop-in file) ni salama zaidi kuliko kuhariri sshd_config moja kwa moja, kwa sababu sshd_config ya Ubuntu inajumuisha /etc/ssh/sshd_config.d/*.conf mwanzoni, na thamani ya kwanza inayopatikana kwa mpangilio ndiyo inayotumika.
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 huchanganua usanidi na haitoi chochote ikiwa ni sahihi. Ikiwa utairuka na ukawa na kosa la chapa, sshd itashindwa wakati wa kupakia upya. Weka kikao chako cha sasa kikiwa wazi na ujaribu kutoka kwenye muunganisho wa pili kabla ya kufunga chochote, kwa sababu ufunguo usio sahihi sasa utakupa Permission denied (publickey). na, kwa vile nywila zimezimwa, hakuna njia mbadala. Njia pekee ya kurejesha ufikiaji wakati huo ni kupitia console ya mtoa huduma wako.
Kila kifaa na kiwe na ufunguo wake. Kupoteza simu basi kutamaanisha kufuta mstari mmoja kutoka ~/.ssh/authorized_keys, na kompyuta yako itaendelea kufanya kazi. Ufunguo mmoja ulioshirikiwa unamaanisha kubadilisha ufunguo kwenye kila kifaa unachomiliki.
Ikiwa utahamisha SSH kwenye port nyingine kwenye Ubuntu 24.04, kumbuka kuwa msikilizaji ni wa ssh.socket, kwa hivyo mstari wa Port pekee haubadilishi chochote. Endesha sudo systemctl edit ssh.socket, futa chaguo-msingi kwa ListenStream= tupu, kisha weka port yako kwenye mstari unaofuata. Kuimarisha SSH kwenye VPS inashughulikia hilo na maeneo mengine ya usalama.
fail2ban kwa ajili ya SSH huongeza usalama kidogo pindi nywila zinapozimwa, kwa sababu nywila inayokisiwa haiwezi kukubaliwa hata kidogo. Inachoongeza ni logs tulivu, jambo linalofanya jaribio halisi la kuingia kuwa rahisi kugundulika.
Chaguo bora zaidi ni kuweka SSH nje ya mtandao wa umma. Weka seva nyuma ya VPN ya WireGuard unayojiendeshea mwenyewe, washa tunnel kwenye simu unapohitaji, na upe sshd ListenAddress kwenye tunnel pekee. mosh hufanya kazi kupitia tunnel kwa sababu pande zote mbili ni UDP. Tahadhari moja: tunnel huongeza uzito wa pakiti, kwa hivyo ikiwa uhamishaji mkubwa unakwama, punguza MTU (maximum transmission unit) katika usanidi wa WireGuard kwenye simu.
Jambo la mwisho kuhusu kufanya kazi kwa njia hii. Kutoka kwenye simu, unathibitisha maombi ya ruhusa kwenye skrini inayoonyesha mistari michache ya diff kwa wakati mmoja. Hiyo ni sababu ya kuweka vizuizi badala ya kuvizima. Kuendesha Claude Code kwa usalama kwenye VPS inashughulikia vikwazo vya mtumiaji na saraka ambavyo ni vyema kuviweka kabla njia yako kuu ya kuingia haijawa skrini ya kugusa.
Unapounganisha tena na kitu kimeharibika
tmux attach printing no server running on /tmp/tmux-1000/default inamaanisha seva ya tmux haipo, jambo ambalo karibu kila mara linamaanisha mashine imewashwa upya (reboot). Hakiki kwa kutumia uptime. Masasisho ya kernel kutoka kwa automatic security updates huwasha upya seva, na seva iliyowashwa upya haina session ya tmux, kwa hivyo chukulia kila uendeshaji wa Claude Code kama kitu unachoweza kuanzisha upya.
can't find session: claude ni tofauti. Seva ya tmux inaendelea kufanya kazi lakini jina hilo halipo. tmux ls inaonyesha yale yaliyopo.
Ikiwa utaunganisha na kukuta prompt ya shell ya kawaida mahali ambapo Claude Code ilikuwa, mchakato umekamilika bila session kufungwa. Angalia dmesg -T | tail kwa mstari kama Out of memory: Killed process 4821 (claude), ambao ndio hutokea kwenye mashine iliyo chini ya mahitaji ya 4 GB wakati wa edit kubwa. Mstari kama huo usipokuwepo, inamaanisha Claude Code imejifunga yenyewe, na scrollback ya shell juu ya prompt ina sababu ya tukio hilo.
Dirisha linalorudi likiwa dogo, likiwa na nafasi tupu kuzunguka, inamaanisha wateja wawili wameunganishwa kwa ukubwa tofauti, kwa sababu tmux hurekebisha ukubwa wa dirisha ili kutoshea mteja mdogo zaidi aliyeunganishwa. Laptop yako bado inashikilia session kwa upana wa 200 columns wakati simu inaomba 40. Ondoa wateja wengine unapounganisha: tmux attach -d -t claude.
FAQ
Je, ninaweza kuendesha Claude Code kwenye simu badala ya VPS?
Hapana. Mifumo inayotumika kufikia Julai 2026 ni macOS, Windows, Ubuntu 20.04 au mpya zaidi, Debian 10 au mpya zaidi, na Alpine 3.19 au mpya zaidi, ikiwa na 4 GB ya RAM au zaidi. Android na iOS hazimo kwenye orodha hiyo. Simu pia husimamisha programu zake na kubadilisha anwani ya mtandao mara kwa mara, jambo ambalo wakala anayefanya kazi kwa muda mrefu hawezi kulivumilia. Iendeshe kwenye seva na utumie simu kama kifaa cha kuonyesha matokeo.
Je, kikao kitabaki kikiwa hai nikifunga programu au kupoteza mawasiliano?
Ndiyo, na kuna sehemu mbili tofauti zinazofanya kazi hiyo. tmux huweka mchakato ukiendelea kwenye seva, hivyo hakuna kinachokufa wakati muunganisho unapokatika. mosh huweka muunganisho wenyewe ukiwa hai hata wakati anwani inapobadilika, hivyo kubadili kutoka wifi kwenda data ya simu hakuhitaji kuunganisha upya. Kwa kutumia SSH ya kawaida bila tmux, muunganisho uliokatika hutuma SIGHUP na Claude Code husimama katikati ya kazi.
Kwa nini mosh huunganisha kisha haionyeshi chochote?
Kuingia kwa mafanikio kisha kukwama na Nothing received from server on UDP port 60001. inamaanisha kuwa UDP 60000 hadi 61000 haijafunguliwa. Ongeza masafa hayo kwenye ufw, na uyaongeze tena kwenye firewall ya mtandao ya mtoa huduma wako, ambayo ni kidhibiti tofauti kwenye paneli nyingi. Ikiwa mosh badala yake inaripoti kuwa mosh-server haikupatikana, seva inakosa kifurushi hicho: sudo apt install mosh.
Ninawezaje kusitisha Claude Code kutoka kwenye kibodi isiyo na kitufe cha Esc?
Ongeza safu ya vitufe. Termux huweka moja kwa kutumia extra-keys katika ~/.termux/termux.properties, na Termius pamoja na Blink zote huja na safu unayoweza kuhariri kwenye mipangilio. Esc husitisha jibu linaloendelea na kuhifadhi kazi iliyokwisha kufanyika. Ctrl+C pia husitisha, lakini kuibonyeza mara mbili ukiwa kwenye prompt isiyo na kazi hutoka kwenye Claude Code, kwa hivyo jaribu kutumia Esc kwanza.
Je, kufungua SSH kwenye mtandao ni salama vya kutosha kwa hili?
Ukiwa umezima uthibitishaji wa nenosiri, kitambulisho pekee kinachoweza kufanikiwa ni ufunguo ambao hauondoki kwenye vifaa vyako, jambo ambalo ni hatari inayokubalika kwa mashine unayoweza kuijenga upya. Kila kifaa kiwe na ufunguo wake ili simu ikipotea uondoe mstari mmoja tu katika authorized_keys. Ikiwa hutaki kabisa kujibu kwenye port ya umma, weka seva nyuma ya WireGuard na uiruhusu sshd isikilize kwenye anwani ya tunnel.