SSD Nodes Learn Hosting plans →
নির্দেশিকা Matt Connorদ্বারা Matt Connor · আপডেট করা হয়েছে 2026-08-27

ফোন থেকে Claude Code কীভাবে ব্যবহার করবেন

Claude Code ফোনে নয়, VPS-এর tmux session-এ চলে। SSH keys, দুর্বল mobile data-তে mosh, tmux attach এবং জরুরি keyboard fixes দিয়ে নির্ভরযোগ্যভাবে কাজ করুন।

আপনার ফোন থেকে Claude Code: এটি আসলে যেভাবে কাজ করে

আপনার ফোন থেকে Claude Code ব্যবহার করার জন্য এটি কোনো mobile app নয়। Claude Code একটি VPS (virtual private server)-এ, চালু থাকা একটি tmux session-এর ভেতরে চলে। আপনি যতক্ষণ session-টি দেখছেন, আপনার ফোন সেই session-এ একটি SSH (secure shell) connection খোলা রাখে। app বন্ধ করলেও agent কাজ চালিয়ে যায়, কারণ process-টি কখনো ফোনে চলেনি।

এই বিভাজনই পুরো নকশার ভিত্তি। আপনি কোনো app থেকে অন্যত্র চলে যাওয়ার কয়েক সেকেন্ড পর phone operating system সেটিকে suspend করে। তাই ফোনে শুরু করা দীর্ঘ কাজ বন্ধ হয়ে যায়। এছাড়া wifi থেকে mobile data-তে গেলে প্রতিবার ফোন নতুন network address পায়। Process server-এ চললে এবং ফোন শুধু screen প্রদর্শন করলে এই দুই সমস্যাই থাকে না।

Server-এ আপনার চারটি জিনিস প্রয়োজন: session ধরে রাখার জন্য tmux, প্রবেশের জন্য SSH keys, network পরিবর্তন সামলানোর জন্য mosh এবং Claude Code নিজে। ফোনের দিকে এমন একটি terminal app-ই যথেষ্ট, যেখানে সহজে ব্যবহারযোগ্য একটি key row থাকে।

VPS-এ যা প্রয়োজন

SSH এবং tmux ব্যবহারের জন্য একটি ছোট Ubuntu 24.04 সার্ভারই যথেষ্ট। Claude Code-এর জন্য বেশি সংস্থান প্রয়োজন। July 2026 অনুযায়ী অফিসিয়াল প্রয়োজনীয়তা হলো x64 বা ARM64 processor-সহ Ubuntu 20.04 বা পরবর্তী সংস্করণ এবং 4 GB বা তার বেশি RAM। 1 GB plan-এ এটি install হলেও load-এর সময় kernel process-টি বন্ধ করে দেয়। Claude Code ব্যবহারের জন্য paid Claude account (Pro, Max, Team বা Enterprise) অথবা API access-সহ Console account-ও প্রয়োজন, কারণ free Claude.ai plan-এ এটি অন্তর্ভুক্ত নয়।

সার্ভারটি root হিসেবে নয়, sudo-সুবিধাসহ সাধারণ user হিসেবে প্রস্তুত করুন। সার্ভারটি নতুন হলে আগে নতুন VPS-এর প্রথম দশ মিনিট নির্দেশনা অনুসরণ করুন। কারণ user এবং firewall তৈরি হয়ে গেলে এই গাইডের পরের SSH পরিবর্তনগুলো করা সহজ হয়।

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

Installer-টি binary-কে ~/.local/bin/claude-এ রাখে এবং claude --version চালালে 2.1.211 (Claude Code)-এর মতো একটি line দেখায়। যদি command not found দেখায়, তাহলে ওই directory এখনও আপনার PATH-এ নেই। Log out করে আবার log in করুন, তারপর command -v claude দিয়ে পরীক্ষা করুন। claude doctor session শুরু না করেই installation এবং settings-এর diagnostic তথ্য দেখায়।

ফোনের ওপর নির্ভর করার আগে এখন laptop থেকে একবার log in করুন। কোনো project directory-তে claude চালিয়ে login prompt অনুসরণ করুন। এই প্রক্রিয়ায় browser-এ একটি URL খুলে code-টি terminal-এ ফিরিয়ে দিতে হয়। ফোনের screen-এ দুইটি app-এর মধ্যে বারবার পরিবর্তন করা ধীরগতির। একবার প্রকৃত keyboard ব্যবহার করে কাজটি করুন। তাহলে credential-গুলো সার্ভারে সংরক্ষিত থাকবে।

SSH সংযোগ বিচ্ছিন্ন হলেও Claude Code বন্ধ না হওয়ার জন্য এটি tmux-এর মধ্যে চালান

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

Ctrl-b দিয়ে detach করুন, তারপর d চাপুন। tmux [detached (from session claude)] দেখিয়ে আপনাকে shell-এ ফিরিয়ে দেবে। এখন অ্যাপ বন্ধ করুন, সংযোগ বিচ্ছিন্ন করুন, অথবা ফোনটি পকেটে রাখুন। pane-এর প্রক্রিয়া চলতে থাকবে।

tmux ls
tmux attach -t claude

tmux 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-এর child process নয়; এগুলো tmux server-এর child process। SSH সংযোগ শেষ হলে kernel ওই সংযোগের সঙ্গে যুক্ত process-গুলোকে hangup signal, SIGHUP, পাঠায়। tmux server সেই process-গুলোর মধ্যে থাকে না। tmux ছাড়া যে screen lock আপনার সংযোগ বিচ্ছিন্ন করে, সেটিই Claude Code-কে tool call চলার মাঝখানে বন্ধ করে দেয়। tmux-এর মধ্যে VPS-এ Claude Code চালানো-তে session layout আরও বিস্তারিতভাবে ব্যাখ্যা করা হয়েছে।

tmux সার্ভারে চালান, ফোনে নয়। আপনি ইতিমধ্যে যুক্ত থাকা session-এর ভিতরে tmux টাইপ করলে sessions should be nested with care, unset $TMUX to force দেখাবে। জোর করে চালালে কোন prefix key ব্যবহার হবে, তা নিয়ে দুটি prefix key-এর মধ্যে দ্বন্দ্ব তৈরি হবে।

প্রতিটি login-এ স্বয়ংক্রিয়ভাবে attach করুন

touch keyboard-এ attach command টাইপ করতে করতে বিরক্তি আসে। server-এর ~/.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 করে এবং না থাকলে সেটি তৈরি করে। তাই উভয় অবস্থার জন্য একটি command-ই যথেষ্ট। exec login shell-কে tmux দিয়ে প্রতিস্থাপন করে। ফলে tmux থেকে বের হলে খালি prompt-এ না গিয়ে connection বন্ধ হয়। plain shell প্রয়োজন হলে ফাইলটি বাদ দিন: ssh you@server -t "bash --noprofile"

এটি ~/.profile-এ রাখুন, ~/.bashrc-এ নয়। ~/.bashrc non-interactive session-এর ক্ষেত্রেও চলে। ফলে file transfer ব্যর্থ হয়: scp এবং sftp অপ্রত্যাশিত output-কে protocol data হিসেবে পড়ে এবং Received message too long-সহ ব্যর্থ হয়। ~/.profile শুধু login shell-এর জন্য চলে, আর interactive SSH session এটাই ব্যবহার করে।

Ubuntu ~/.profile-এ ~/.local/bin-কে PATH-এ যোগ করে। login-এর ঠিক পরেই claude কাজ করলেও tmux-এর ভেতরের shell-এ command not found দেখালে এর কারণ ওই execution order। তাই profile এড়িয়ে যায় এমন script থেকে নয়, উপরের মতো login shell থেকে tmux চালু করুন।

দুটি অ্যাপই SSH এবং mosh সমর্থন করে এবং উভয় অ্যাপেই key সংরক্ষণ করা যায়। পার্থক্যটি interface-এ।

Blink Shell command-driven। এর prompt-এ `ssh you@server বা mosh you@server লিখুন। এটি desktop terminal-এর মতো একই syntax ব্যবহার করে। config` লিখলে settings খোলে, আর Keys section থেকে একটি key pair তৈরি করা যায়।

Termius form-driven। একটি host entry পূরণ করুন। এরপর host details-এ সেই host-এর protocol SSH থেকে Mosh-এ পরিবর্তন করুন। Termius নিজস্ব mosh implementation সরবরাহ করে এবং mosh 1.3.0 বা পরবর্তী version সমর্থন করে। তাই server-এ `mosh` package ইনস্টল করা থাকতে হবে।

উভয় ক্ষেত্রেই app-এর ভেতরে key তৈরি করুন। বিদ্যমান private key কখনও phone-এ copy করবেন না। app আপনাকে public half দেখাবে। এটিই একমাত্র line, যা server-এর `~/.ssh/authorized_keys`-এ যোগ করতে হবে। প্রতিটি device-এর SSH key এবং একটি key বাতিল করার পদ্ধতি-এ naming এবং revoke ধাপ ব্যাখ্যা করা হয়েছে। এই বিষয়টি laptop-এর তুলনায় phone-এর ক্ষেত্রে বেশি গুরুত্বপূর্ণ।

terminal app-এর নিজস্ব biometric বা passcode lock চালু করুন। এটি না থাকলে screen জেগে থাকা পর্যন্ত unlocked phone আপনার server-এ একটি উন্মুক্ত shell হিসেবে কাজ করবে।

Android: Termux

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

Termux নিজস্ব repository-তে OpenSSH এবং mosh package সরবরাহ করে। তাই ssh, ssh-keygen এবং mosh desktop-এর মতোই কাজ করে। প্রদর্শিত public key line-টি server-এর ~/.ssh/authorized_keys-এ যোগ করুন। এরপর mosh you@server দিয়ে সংযোগ করুন।

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 চালান। Keyboard-এর উপরে row-টি দেখা যাবে। একই reload-এর সময় ~/.termux/font.ttf-এ রাখা monospace TrueType font-ও লোড হবে।

Termux background-এ থাকলে Android সেটি বন্ধ করে দিতে পারে। এই ক্ষেত্রে reconnect করা ছাড়া আপনার আর কিছু হারাবে না। Session এবং agent server-এ চলছে।

Wi-Fi ছেড়ে গেলে terminal কেন স্থির হয়ে যায়, এবং mosh কী ঠিক করে?

একটি SSH connection হলো TCP (transmission control protocol) connection। TCP connection-কে দুই প্রান্তের address এবং দুই প্রান্তের port দিয়েই শনাক্ত করা হয়। Wi-Fi range-এর বাইরে গেলে phone মোবাইল network থেকে একটি নতুন address পায়। ফলে পুরোনো connection-টি কোনো প্রান্তেই আর মেলে না। এ বিষয়ে কোনো notification আসে না। TCP timeout হওয়া পর্যন্ত terminal শুধু আর সাড়া দেয় না। তারপর ssh client_loop: send disconnect: Broken pipe দেখায়। স্থির হয়ে যাওয়া session সঙ্গে সঙ্গে বন্ধ করতে Enter চাপুন, তারপর ~, তারপর .

mosh (mobile shell) এই ব্যর্থতার ধরনটি দূর করে। এটি একবার SSH ব্যবহার করে login করে এবং একটি mosh-server process চালু করে। এরপর server যে UDP (user datagram protocol) port বেছে নিয়েছে, সেটি পড়ে নিয়ে SSH connection বন্ধ করে। তারপর দুই প্রান্ত shared session key দিয়ে authenticated UDP datagram বিনিময় করে। তাই session-টি আপনার address দিয়ে নয়, ওই key দিয়ে শনাক্ত হয়। নতুন address পেলেও session চলতে থাকে। mosh আপনার typing স্থানীয়ভাবে echo করে এবং server-এর output ভিন্ন হলে screen আবার আঁকে। এ কারণে ধীর mobile link-এও এটি ব্যবহারযোগ্য থাকে।

mosh 60000 থেকে 61000-এর মধ্যে একটি UDP port ব্যবহার করে। তাই ওই range খুলুন:

sudo ufw allow 60000:61000/udp
sudo ufw status

ufw দিয়ে port খোলা অংশে firewall configuration-এর বাকি বিষয়গুলো আছে। আপনার provider control panel-এ আলাদা network firewall দিলে সেখানেও একই range যোগ করুন। কারণ machine-এর সামনে থাকা কোনো filter-এ ufw rule প্রভাব ফেলতে পারে না।

mosh-এর দুটি ব্যর্থতা সাধারণ। Login সফল হওয়ার পর Nothing received from server on UDP port 60001. দেখিয়ে আটকে গেলে phone এবং server-এর মাঝখানে কোথাও UDP range blocked আছে। কোনো 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 server-এ ঠিক করুন, phone-এ নয়।

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

mosh দুটি কাজ করে না। এর README অনুযায়ী mosh X forwarding অথবা SSH-এর non-interactive ব্যবহার সমর্থন করে না। এর মধ্যে port forwarding-ও রয়েছে। তাই Claude Code যে web app চালু করেছে, সেটি preview করতে এখনও সাধারণ ssh -L 8080:127.0.0.1:8080 you@server ব্যবহার করতে হবে। mosh শুধু বর্তমানে দৃশ্যমান screen synchronise করে। তাই এর নিজস্ব scrollback নেই। এখানে এই সীমাবদ্ধতায় সমস্যা হয় না, কারণ scrollback tmux ধরে রাখে: Ctrl-b, তারপর [ চাপলে copy mode চালু হয়। drag অথবা arrow key দিয়ে scroll করা যায়। q চাপলে copy mode থেকে বের হওয়া যায়।

ফোনের স্ক্রিন ব্যবহারযোগ্য করে তুলুন

সার্ভারে ~/.tmux.conf-এর চারটি লাইনই বেশিরভাগ কাজ করে:

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

mouse on touch drag-কে scroll এবং tap-কে pane বা window selection-এ রূপান্তর করে। ফলে টাইপ করতে অসুবিধাজনক prefix key-গুলোর বেশিরভাগের আর প্রয়োজন হয় না। status-position top tmux status line-কে নিচের প্রান্ত থেকে সরিয়ে দেয়, যেখানে on-screen keyboard ও তার suggestion bar সেটি ঢেকে ফেলে। default-terminal গুরুত্বপূর্ণ, কারণ এটি না থাকলে tmux Claude Code-কে একটি screen terminal হিসেবে জানায়। ফলে colour ও box drawing প্রয়োজনের তুলনায় খারাপ দেখায়। এরপর tmux missing or unsuitable terminal: tmux-256color নিয়ে start হতে অস্বীকার করলে terminfo entry অনুপস্থিত। চালান: sudo apt install ncurses-term

চারটি key শিখলেই বাকিটা স্বচ্ছন্দ হয়।

  • Esc Claude-এর চলমান response থামায় এবং ইতিমধ্যে সম্পন্ন কাজ রেখে দেয়। তাই এই key-টি আপনার বুড়ো আঙুলের সবচেয়ে কাছে রাখা উচিত।
  • Ctrl+C-ও চলমান operation থামায়। Idle prompt-এ প্রথম press input পরিষ্কার করে, আর দ্বিতীয় press Claude Code থেকে বেরিয়ে যায়। তাই এটি তুলনামূলকভাবে বেশি কঠোর উপায়।
  • Esc দুবার চাপলে draft prompt পরিষ্কার হয়। Empty prompt-এ এটি পরিবর্তে rewind menu খোলে।
  • Multi-line prompt-এর জন্য \ টাইপ করে Enter চাপুন। এই পদ্ধতি সব terminal-এ কাজ করে। Shift+Enter কেবল কয়েকটি desktop terminal-এ native ভাবে কাজ করে, এবং mobile client-গুলো সেই তালিকায় নেই।

Split pane এড়িয়ে চলুন। Portrait অবস্থায় ফোনের প্রস্থ প্রায় 40 columns হয়। তাই vertical split করলে প্রতিটি pane-এ 20 columns থাকে এবং প্রতিটি diff ভেঙে অপ্রয়োজনীয় text-এ পরিণত হয়। এর বদলে tmux window ব্যবহার করুন: Ctrl-b c একটি window তৈরি করে এবং Ctrl-b n পরেরটিতে যায়। দ্বিতীয় window-তে যদি আলাদা Claude Code session চালু থাকে, দুটি session সরাসরি একে অপরকে কাজ দিতে পারে। ফলে touchscreen-এ window-এর মধ্যে text copy করতে হয় না। Diff ভালোভাবে পড়ার প্রয়োজন হলে ফোনটি landscape অবস্থায় ধরুন।

স্ক্রিনে কতটা লেখা দেখাবে, তা ইচ্ছাকৃতভাবে নির্ধারণ করা উচিত, কারণ একটি output style প্রতিটি উত্তরের পেছনে থাকা system prompt সম্পাদনা করে, আর সংক্ষিপ্ত style ব্যবহার করলে ফোনে স্ক্রল করে পার হওয়ার জন্য কম screenful লাগে।

ছোট স্ক্রিনে দীর্ঘ session মূলত context-এর সমস্যা তৈরি করে। তাই train থেকে সারাদিনের কাজ চালানোর আগে Claude Code context window পরিচালনা করা পড়ে নেওয়া উপযোগী।

শক্তভাবে সীমাবদ্ধ করুন: শুধু key, কোনো password নয়

ফোনে এখন এমন একটি machine-এর key আছে, যেটি আপনার code সম্পাদনা করে এবং command চালায়। 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 ssh

sshd -t configuration parse করে এবং valid হলে কিছুই print করে না। এটি বাদ দিলে একটি typo-এর কারণে reload করার সময় sshd ব্যর্থ হবে। আপনার বর্তমান session খোলা রাখুন এবং কিছু বন্ধ করার আগে দ্বিতীয় connection থেকে পরীক্ষা করুন। কারণ ভুল key দিলে এখন Permission denied (publickey). পাবেন, আর password বন্ধ থাকায় কোনো fallback থাকবে না। তখন recovery-এর উপায় হলো আপনার provider-এর console। পরীক্ষার connection ব্যর্থ হলে ssh -v দিয়ে আবার connect করুন এবং প্রথম session খোলা থাকা অবস্থায় সমস্যাটি ঠিক করুন। কারণ একটি error message পাঁচটি আলাদা fault-এর যেকোনো একটির নির্দেশ দিতে পারে এবং verbose output-এ বোঝা যায়, সেগুলোর কোনটি ঘটেছে।

প্রতিটি 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 চালান, একটি খালি ListenStream= দিয়ে default মান সরান, তারপর পরের line-এ আপনার port সেট করুন। VPS-এ SSH শক্তভাবে সীমাবদ্ধ করা অংশে এটি এবং বাকি attack surface সম্পর্কে বলা হয়েছে।

SSH-এর জন্য fail2ban password বন্ধ করার পরে খুব বেশি security যোগ করে না, কারণ অনুমান করা password কোনোভাবেই গ্রহণ করা যায় না। তবে এটি log শান্ত রাখে, ফলে প্রকৃত login attempt সহজে শনাক্ত করা যায়।

আরও শক্তিশালী ব্যবস্থা হলো SSH-কে public internet থেকে সরিয়ে রাখা। server-কে আপনার নিজস্ব host করা WireGuard VPN-এর পেছনে রাখুন, প্রয়োজন হলে ফোনে tunnel চালু করুন, এবং tunnel-এর জন্যই শুধু sshd-কে ListenAddress-এ bind করুন। উভয় দিকেই UDP ব্যবহৃত হওয়ায় tunnel-এর ওপর mosh কাজ করে। একটি বিষয় মনে রাখুন: tunnel packet overhead যোগ করে। তাই বড় transfer থেমে গেলে ফোনের WireGuard config-এ MTU (maximum transmission unit) কমিয়ে দিন।

এইভাবে কাজ করার বিষয়ে শেষ একটি কথা। ফোন থেকে আপনি এমন একটি screen-এ permission prompt অনুমোদন করেন, যেখানে একবারে diff-এর কয়েকটি line দেখা যায়। তাই guardrail বন্ধ করার পরিবর্তে সেগুলো চালু রাখার কারণ এটি। আপনার session কোন permission mode-এ শুরু হয়, সেটিও পরীক্ষা করুন। কারণ 14 August 2026-এ auto mode Claude Code-এর default হয়ে যায় এবং এটি থেমে অনুমতি না চেয়েই file edit করে। VPS-এ Claude Code নিরাপদে চালানো অংশে আপনার প্রধান access point touchscreen হওয়ার আগে user এবং directory-এর জন্য যে সীমাগুলো সেট করা মূল্যবান, সেগুলো ব্যাখ্যা করা হয়েছে।

পুনরায় সংযুক্ত হয়ে কোনো সমস্যা দেখা দিলে

tmux attach দেখালে no server running on /tmp/tmux-1000/default, এর অর্থ tmux server আর চলছে না। এর মানে প্রায় সব সময়ই মেশিন reboot হয়েছে। uptime দিয়ে যাচাই করুন। স্বয়ংক্রিয় security update-এর kernel update box reboot করতে পারে। Reboot হওয়া box-এ কোনো tmux session থাকে না। তাই Claude Code-এর যেকোনো run পুনরায় চালানো যাবে ধরে নিন।

can't find session: claude-এর অর্থ আলাদা। tmux server চলছে, কিন্তু ওই নামের session নেই। বর্তমানে কোন session আছে তা tmux ls দেখায়।

Claude Code যেখানে চলছিল সেখানে attach করার পর যদি সাধারণ shell prompt দেখতে পান, তাহলে session শেষ না হলেও process শেষ হয়ে গেছে। dmesg -T | tail-এ Out of memory: Killed process 4821 (claude)-এর মতো কোনো line আছে কি না দেখুন। 4 GB requirement-এর নিচে থাকা box-এ বড় edit করার সময় এমনটি ঘটে। এ ধরনের line না থাকলে Claude Code নিজে থেকে exit করেছে। কারণটি prompt-এর উপরের shell scrollback-এ রয়েছে।

Attach করার পর কোনো window যদি খুব ছোট দেখায় এবং চারপাশে অব্যবহৃত জায়গা থাকে, তাহলে ভিন্ন আকারের দুইটি client সংযুক্ত আছে। tmux সবচেয়ে ছোট attached client-এর আকার অনুযায়ী window-এর আকার নির্ধারণ করে। আপনার laptop এখনও session-টিকে 200 columns চওড়া ধরে রেখেছে, আর phone 40 columns চাইছে। Attach করার সময় অন্য client-গুলো detach করুন: tmux attach -d -t claude

FAQ

ফোনে VPS-এর পরিবর্তে সরাসরি Claude Code চালাতে পারি কি?

না। July 2026 অনুযায়ী সমর্থিত platform হলো macOS, Windows, Ubuntu 20.04 বা পরবর্তী সংস্করণ, Debian 10 বা পরবর্তী সংস্করণ এবং Alpine 3.19 বা পরবর্তী সংস্করণ; এগুলোতে 4 GB বা তার বেশি RAM থাকতে হবে। Android এবং iOS এই তালিকায় নেই। ফোনের app-গুলো sleep করে এবং network address নিয়মিত পরিবর্তন করে, যা দীর্ঘ agent run-এর জন্য উপযোগী নয়। এটি server-এ চালান এবং ফোনকে display হিসেবে ব্যবহার করুন।

App বন্ধ করলে বা signal হারালে session কি চালু থাকে?

হ্যাঁ। এটি করতে দুটি পৃথক উপাদান কাজ করে। tmux server-এ process চালু রাখে, তাই connection শেষ হলেও কিছু বন্ধ হয় না। mosh নিজস্ব connection-কে address পরিবর্তনের পরও সচল রাখে, তাই wifi থেকে mobile data-তে গেলেও reconnect করতে হয় না। tmux ছাড়া সাধারণ SSH ব্যবহার করলে connection বিচ্ছিন্ন হওয়ার সময় SIGHUP পাঠানো হয় এবং Claude Code কাজের মাঝখানে বন্ধ হয়ে যায়।

mosh connect করার পর কিছু দেখায় না কেন?

Login সফল হওয়ার পর hang করে Nothing received from server on UDP port 60001. দেখালে UDP 60000 থেকে 61000 পর্যন্ত port খোলা নেই। ufw-তে এই range যোগ করুন। আপনার provider-এর network firewall-এও একই range যোগ করুন; অধিকাংশ panel-এ এটি পৃথক নিয়ন্ত্রণ হিসেবে থাকে। mosh যদি এর পরিবর্তে জানায় যে mosh-server পাওয়া যায়নি, তাহলে server-এ packageটি নেই: sudo apt install mosh

Esc key না থাকলে keyboard দিয়ে Claude Code কীভাবে interrupt করব?

একটি key row যোগ করুন। Termux-এ ~/.termux/termux.properties-এ extra-keys ব্যবহার করে এটি configure করা যায়। Termius এবং Blink উভয়েই settings-এ সম্পাদনযোগ্য একটি row দেয়। Esc চলমান response interrupt করে এবং ইতিমধ্যে সম্পন্ন কাজ রেখে দেয়। Ctrl+C-ও interrupt করে, তবে idle prompt-এ এটি দুবার চাপলে Claude Code বন্ধ হয়ে যায়। তাই প্রথমে Esc ব্যবহার করুন।

Internet-এর জন্য SSH খোলা কি যথেষ্ট নিরাপদ?

Password authentication বন্ধ থাকলে সফলভাবে ব্যবহার করা যায় এমন একমাত্র credential হলো এমন একটি key, যা আপনার device ছেড়ে যায় না। পুনর্নির্মাণ করা যায় এমন একটি machine-এর জন্য এটি যুক্তিসঙ্গত ঝুঁকি। প্রতিটি device-এর জন্য আলাদা key দিন, যাতে ফোন হারালে authorized_keys-এ শুধু একটি line মুছতে হয়। Public port-এ কোনো service চালু রাখতে না চাইলে machine-টিকে WireGuard-এর পেছনে রাখুন এবং sshd-কে tunnel address-এ listen করান।