টার্মিনাল

Mobile SSH টার্মিনাল ফোন ও ট্যাবলেট পরিচালনার জন্য তৈরি। এটি একটি টার্মিনাল ক্যানভাস, অতিরিক্ত কী সারি, মাল্টি-সেশন প্যান, স্ক্রল হ্যান্ডলিং এবং পুনঃসংযোগ আচরণ একত্র করে।

টার্মিনাল মূল বিষয়

মাল্টি-সেশন গ্রিড

Mobile SSH একসাথে আটটি SSH সেশন পর্যন্ত চালাতে পারে। প্রতিটি সেশন টার্মিনাল গ্রিডে একটি প্যান হিসেবে দেখা যায়। নির্বাচন করতে প্যানে ট্যাপ করুন, অথবা অন্য সংযোগ শুরু করতে + Add Session ব্যবহার করুন।

প্যান হেডার জানায় আপনি কোথায় আছেন। Android-এ এটি প্যানের প্রকৃত কার্যকরী ডিরেক্টরি দেখায়, যা tmux থেকে জেনে নেওয়া হয় বা শেল OSC 7-এর মাধ্যমে জানায় এবং অ্যাপ খোলা থাকা অবস্থায় তা হালনাগাদ হতে থাকে; iOS-এ এটি রিমোট যে শিরোনাম সেট করে তা দেখায়, না পেলে user@host:port দেখায়।

পেন বন্ধ করলে তার SSH সেশন বিচ্ছিন্ন হয়। হোম থেকে সক্রিয় সেশন দিয়ে চলমান সংযোগে ফিরুন। হেডার থেমে যাওয়া সংযোগ দেখায়; সেটিংসে ট্রান্সফারের গতি এবং উত্তর বন্ধ হলে ম্লান হওয়া বা কম্পনের বিকল্প আছে।

Eternal Terminal (ET)

সার্ভার যোগ বা সম্পাদনার ট্রান্সপোর্ট নির্বাচনে দুই প্ল্যাটফর্মে এই বিকল্পগুলো থাকে:

ET সার্ভারে সেশনটি সচল রাখে, তাই আপনার ফোন নেটওয়ার্ক বদলালে বা স্লিপ থেকে জাগলে Mobile SSH নতুন শেল না খুলে সেই একই চলমান শেলে আবার অ্যাটাচ করে। এটি মোবাইল ডেটা, Wi-Fi/সেলুলার হস্তান্তর এবং দীর্ঘ-চলমান কমান্ডের জন্য উপযোগী।

ET-এর জন্য হোস্টে etserver দরকার। না থাকলে Mobile SSH SSH দিয়ে ইনস্টল ও শুরু করার প্রস্তাব দিতে পারে। সেটআপ কমান্ড দেখে অনুমোদন করুন, তারপর Eternal Terminal বাছুন। জাম্প-হোস্ট রুটে SSH ট্রান্সপোর্ট দরকার।

অতিরিক্ত কী সারি

দুই প্ল্যাটফর্মই তেরোটি টার্মিনাল কী-এর একটি সারি হাতের নাগালে রাখে — যেগুলো টাচ কীবোর্ডে অসুবিধাজনক বা একেবারেই নেই। Android-এ এটি সেশনের নিচে একটি স্ট্রিপ (হার্ডওয়্যার কীবোর্ড যুক্ত থাকলে যা নিজেকে লুকিয়ে ফেলে); iOS-এ এটি সফটওয়্যার কীবোর্ডের উপরে থাকে।

দুটি ডিফল্ট সেটের আকার একই, কিন্তু হুবহু এক নয়:

AndroidiOS
ডিফল্টESC TAB CTRL তীর HOME PGUP END PGDN ⌫ ⌨ESC TAB CTRL ⇧ তীর HOME END PGUP PGDN ⌨
পার্থক্যব্যাকস্পেস আছে, Shift নেইস্টিকি Shift আছে, ব্যাকস্পেস নেই

সারিটি কখনও স্ক্রল হয় না। কী-গুলো প্রস্থে আর না আঁটলে তারা জায়গাটা সমানভাবে ভাগ করে নিয়ে দ্বিতীয় সারিতে নেমে যায়; তারপরও যা বাকি থাকে তা একটি ⋯ ওভারফ্লো মেনুতে গুটিয়ে যায়। কিছুই সোয়াইপের আড়ালে লুকানো থাকে না বা স্ক্রিনের কিনারায় কাটা পড়ে না, আর সক্রিয় করা কোনো মডিফায়ার ওভারফ্লো থেকে বেছে নেওয়া কী-তেও প্রযোজ্য থাকে।

CTRL একটি স্টিকি মডিফায়ার হিসেবে কাজ করে: CTRL ট্যাপ করুন, তারপর Ctrl-C পাঠাতে C টাইপ করুন। Shift Android-এর চেয়ে iOS-এ বেশি স্টিকি — iOS-এ এটি সফটওয়্যার কীবোর্ডে আপনার টাইপ করা পরবর্তী অক্ষরটিকেও বড় হাতের করে দেয়, আর Android-এ এটি শুধু বারের নিজস্ব কী-তেই প্রযোজ্য (Shift+Tab, Shift+তীর)।

তীর বা PGDN-এর মতো কোনো কী চেপে ধরে রাখলে সেটি বারবার পাঠানো হয়।

কীবোর্ড আচরণ

Android-এ সাধারণ টাইপ সরাসরি রিমোট শেলে যায়; স্বয়ংক্রিয় সংশোধন ও অনুমানভিত্তিক পরামর্শ ডিফল্ট বন্ধ। কীবোর্ড দিয়ে কণ্ঠলিখন তবুও কাজ করে।

iOS-এ সেটিংস → টার্মিনাল → কণ্ঠলিখন ও পরামর্শ ডিফল্ট চালু। লাইন লেখার সময় কণ্ঠলিখন, শব্দের পরামর্শ ও সংশোধন মেলে। সরাসরি কী পাঠাতে এটি বন্ধ করুন, কীবোর্ড পরামর্শ বন্ধ রাখুন এবং নতুন পেন খুলুন।

ট্যাপে কীবোর্ড দেখান ঠিক করে ট্যাপে সফটওয়্যার কীবোর্ড উঠবে কি না। Android-এ ডিফল্ট বন্ধ, iOS-এ চালু; টুলবারের কীবোর্ড বোতামও থাকে।

হার্ডওয়্যার কীবোর্ড

এক্সটার্নাল ও Bluetooth কীবোর্ড Android ও iOS উভয়েই সরাসরি টার্মিনাল চালায়। সাধারণ অক্ষর ছাড়াও, Mobile SSH তীর কী, Home/End, PgUp/PgDn, Insert, Delete, Esc, ফাংশন কী F1–F12, Ctrl+কী এবং Alt/Option-কে-Meta কর্ড, এবং Shift+Tab ম্যাপ করে। মডিফায়ার কী অতিরিক্ত কী সারির স্টিকি মডিফায়ারের সঙ্গে মিলিত হয়।

পেস্ট

যে প্রোগ্রাম এটি চায় (bash, Vim এবং অন্যান্য ব্র্যাকেটেড-পেস্ট অ্যাপ) তাতে পেস্ট করা ব্র্যাকেটেড-পেস্ট মার্কারে মোড়ানো হয়, তাই একাধিক লাইনের ক্লিপবোর্ড কনটেন্ট লাইনে-লাইনে স্বয়ংক্রিয়ভাবে চালানোর বদলে টেক্সট হিসেবে সন্নিবেশিত হয়। শুধু আসল পেস্ট মোড়ানো হয়; টাইপ করা ও উচ্চারিত টেক্সট অপরিবর্তিত থাকে।

নির্বাচন, কপি, শেয়ার

শব্দ বাছতে টার্মিনালে দীর্ঘক্ষণ চাপুন, হ্যান্ডেল টেনে নির্বাচন বদলান। নির্বাচন টুলবারে আছে:

টার্মিনালে খুঁজুন

পুরো টার্মিনাল বাফারে — স্ক্রলব্যাক ও দৃশ্যমান স্ক্রিন — খুঁজুন এবং ম্যাচগুলোর মধ্যে ঝাঁপ দিন। টার্মিনাল নিয়ন্ত্রণ থেকে সার্চ খুলুন, একটি কোয়েরি টাইপ করুন এবং হিটগুলোর মধ্য দিয়ে এগিয়ে যান। এটি Android ও iOS উভয়েই কাজ করে।

রঙ, ইটালিক ও রিমোট ক্লিপবোর্ড

শেল ইন্টিগ্রেশন ও ইনলাইন ছবি

চেহারা ও কী

Android ও iOS উভয়েই, Settings আপনাকে টার্মিনাল নিজের মতো সাজাতে দেয়:

রিসেট আজকের তালিকাটিকে জমিয়ে না রেখে অ্যাপের সঙ্গে দেওয়া ডিফল্টগুলো ফিরিয়ে আনে, তাই পরবর্তী কোনো রিলিজের উন্নতিও আপনার কাছে পৌঁছায়। সম্পাদনা ইতিমধ্যেই খোলা প্যানে সঙ্গে সঙ্গে প্রযোজ্য হয়।

স্ক্রলিং

Mobile SSH টার্মিনাল অবস্থার উপর ভিত্তি করে স্ক্রল অঙ্গভঙ্গি রুট করে:

দুই প্ল্যাটফর্মে মাউস-ট্র্যাকিং প্রোগ্রামে ট্যাপ সাধারণত বাম ক্লিক পাঠায়। iOS-এর ট্যাপে কার্সর বসান তার বদলে কার্সর সরায়; Shift-ট্যাপ অন্য কাজটি করে। ধরে তারপর টানার ঐচ্ছিক মাউস ইনপুট ডিফল্ট বন্ধ, তাই সাধারণ সোয়াইপ স্ক্রল করে।

পিছনে স্ক্রল করা অবস্থায় টাইপ করলে Mobile SSH লাইভ টার্মিনাল ভিউতে ফিরে আসে।

tmux আচরণ

Mobile SSH বহির্গামী tmux attach ও new-session কমান্ড পর্যবেক্ষণ করে, যেমন:

tmux attach -t work
tmux a -t work
tmux new -A -s work

সংযোগ ভাঙলে অ্যাপ যুক্ত tmux সেশন ও সকেট মনে রাখে, যাতে পুনঃসংযোগে একই জায়গায় ফেরা যায়। একই হোস্টের আলাদা পেন নিজস্ব সংযুক্তি রাখে। সেশন আর না থাকলে শেল পাওয়া যায়।

iOS সকেট বদলানোর সময় বর্তমান tmux প্রিফিক্স পড়ে; Ctrl+B ধরে নেয় না। অসমর্থিত প্রিফিক্স বা ব্যর্থ খোঁজে বার্তা দিয়ে থামে। টাইপ করা, পেন বন্ধ বা বিচ্ছিন্ন করা অপেক্ষমাণ সংযুক্তি বাতিল করে; অচেনা পূর্ণস্ক্রিন প্রোগ্রামে attach কমান্ড যায় না।

Tmux ম্যানেজার

Mobile SSH-এর tmux ম্যানেজার দিয়ে প্রিফিক্স না লিখে tmux দেখা ও নিয়ন্ত্রণ করা যায়। যুক্ত সেশনের মাল্টিপ্লেক্সার নিয়ন্ত্রণ দিয়ে খুলুন; একাধিক ম্যানেজার থাকলে দীর্ঘচাপে tmux বাছুন। তালিকার তিনটি অংশ:

ম্যানেজার থেকে আপনি পারেন:

যে সেশনের এজেন্ট ইনপুটের অপেক্ষায় আছে সেটি একটি 🔔 দিয়ে চিহ্নিত হয়, তাই থেমে থাকা কোনো Claude Code বা Codex চালু কাজ এক নজরেই চোখে পড়ে এবং আপনি তাতে অ্যাটাচ করতে পারেন। এটি উপরের reattach ইঙ্গিতের পরিপূরক: reattach যুক্তি পুনঃসংযোগে স্বয়ংক্রিয়ভাবে আপনার শেষ সেশন ফিরিয়ে আনে, আর ম্যানেজার আপনাকে পূর্ণ হাতে-করা নিয়ন্ত্রণ দেয়।

দুই প্ল্যাটফর্মে একই হোস্টের একাধিক tmux সার্ভার (সকেট) চলে। ম্যানেজারের সংযুক্তির চিহ্ন আপনার বর্তমান টার্মিনালের, সার্ভারের অন্য ক্লায়েন্টের নয়।

Herdr ও Zellij

Android ও iOS-এ Herdr ও Zellij-ও আছে। টুলবারের এক নিয়ন্ত্রণ প্রধান শনাক্ত মাল্টিপ্লেক্সার খোলে; অন্যটি বাছতে দীর্ঘক্ষণ চাপুন। সার্ভারে পাওয়া প্রোগ্রামই দেখায়। ম্যানেজারে সার্ভারের শিরোনাম দিয়ে সার্ভার ও মাল্টিপ্লেক্সার নির্বাচন দিয়ে ম্যানেজার বদলান।

herdr বা Zellij ইনস্টল থাকলেও লগইন শেলের PATH-এ না থাকলে পেজটি সেটি যোগ করে দেওয়ার প্রস্তাব দেয়।

প্রতি সংরক্ষিত সার্ভারে সংযোগে যুক্ত করুন আছে: স্বয়ংক্রিয়, কিছু নয়, tmux, herdr বা Zellij। স্বয়ংক্রিয় বাছাই আগে ব্যবহৃত মাল্টিপ্লেক্সার, তারপর চলমান সেশন আছে এমনটি, তারপর ইনস্টল থাকা প্রোগ্রাম নেয়। আগের শনাক্তকরণ না থাকলে সাধারণ শেল খোলে। পরের পরীক্ষা ভবিষ্যৎ সংযোগে প্রযোজ্য; বর্তমান ইনপুটের ওপর কিছু চালায় না।

এজেন্ট সতর্কতা

Mobile SSH আপনাকে জানায় কখন কোনো রিমোট AI কোডিং এজেন্ট — Claude Code, Codex, Gemini — আপনার জন্য আটকে অপেক্ষা করছে। এটি আপনার টার্মিনাল আউটপুট পড়ে অনুমান করে না। এর দুটি পথ আছে, আর সেগুলো ভিন্ন মাত্রার বিস্তারিত জানায়।

ঘণ্টা

টার্মিনালের ঘণ্টা এজেন্ট সতর্কতা দিতে পারে। টাইপের ঠিক পরের ঘণ্টা ডিফল্টভাবে উপেক্ষিত। রিমোট বিজ্ঞপ্তি (OSC 9, OSC 777) ও OSC 133 কমান্ড-শেষ সতর্কতার আলাদা সেটিং আছে; iOS-এ চালু করার আগে দুটিই বন্ধ।

এতে কোনো সেটআপ লাগে না, কিন্তু অ্যাপ শুধু এটুকুই জানে যে কিছু একটা বেজেছে।

এজেন্ট হুক

অ্যাপ যাতে জানতে পারে কোন এজেন্ট অপেক্ষা করছে এবং কী করছে, তার জন্য সার্ভারে এজেন্ট হুকটি ইনস্টল করুন:

এটি সেই সার্ভারের ~/.mobile-ssh/agent-hook.sh-এ একটি ছোট শেল স্ক্রিপ্ট লেখে। এটি এজেন্ট-নিরপেক্ষ — কোনো নির্দিষ্ট ভেন্ডরের ফরম্যাট পার্স না করে এটি কমান্ড-লাইন আর্গুমেন্ট নেয় — তাই যা কিছু একটি কমান্ড চালাতে পারে তা-ই এর মাধ্যমে জানাতে পারে। ফাইলটি মুছে দিলেই পরিষ্কার আনইনস্টল হয়ে যায়।

একবার কোনো এজেন্ট হুকের মাধ্যমে জানাতে শুরু করলে:

টাইপ না করেই উত্তর

কোনো এজেন্ট যখন নির্দিষ্ট কয়েকটি উত্তরের বিকল্প দিয়ে প্রশ্ন করে, অ্যাপ Agents তালিকায় প্রতিটি বিকল্পের জন্য একটি করে বোতাম দেখায় — সর্বোচ্চ ছয়টি। Android-এ আপনি প্যান হেডারের এজেন্ট চিপেও ট্যাপ করতে পারেন।

আপনার উত্তরটি সেশনে টাইপ হয় না। এটি আলাদা একটি চ্যানেল দিয়ে একটি ফাইলে লেখা হয় এবং হুক তা তুলে নেয়, তাই উত্তর দেওয়ায় স্ক্রিনে যা আছে তা নষ্ট হতে পারে না। প্রম্পট আসলে দেয়নি এমন কোনো বিকল্প পাঠাতে অ্যাপ অস্বীকার করে, আর ইতিমধ্যে সংযোগ বিচ্ছিন্ন হয়ে গেলে নীরবে ব্যর্থ না হয়ে স্পষ্ট করে জানিয়ে দেয়।

সেটিংস

দুই প্ল্যাটফর্মে এজেন্ট সতর্কতা ডিফল্ট চালু; বিজ্ঞপ্তি, শব্দ, কম্পন ও সক্রিয় পেনের আলাদা সুইচ আছে। iOS সক্রিয় পেনের সতর্কতা চালু রাখে এবং শুধু ব্যাকগ্রাউন্ডে দেওয়ার বিকল্পও দেয়। অ্যাপ চলার অনুমতি পাওয়া পর্যন্তই iOS এগুলো দিতে পারে; দীর্ঘ স্থগিতাবস্থায় সরাসরি SSH সতর্কতা থামে।

একটি ডিফল্ট জেনে রাখা ভালো: শব্দ কেবল হেডফোনেই সীমাবদ্ধ। কিছু প্লাগ ইন করা বা জোড়া লাগানো না থাকলে সতর্কতা বিজ্ঞপ্তি দেয় ও কম্পন করে, কিন্তু কোনো শব্দ বাজে না। ফোনের স্পিকারে সতর্কতা শুনতে চাইলে এটি বন্ধ করে দিন।

কোনো সংবেদনশীলতা সেটিং নেই এবং কোনো শব্দ নির্বাচকও নেই — নিয়ন্ত্রণগুলো কেবল চালু/বন্ধ।

ফুল-স্ক্রিন টার্মিনাল প্রোগ্রাম

Vim, less, htop, ncurses টুল এবং tmux প্যানের মতো প্রোগ্রামের জন্য:

রিমোট ডেস্কটপ

দুই প্ল্যাটফর্মে SSH-এর ভেতর VNC দিয়ে রিমোট ডেস্কটপ খোলে। macOS Screen Sharing-সহ বর্তমান শেয়ার স্ক্রিন নিন বা সমর্থিত Linux ডেস্কটপ সেটআপ অনুমোদন করুন। ডেস্কটপ সার্ভারকে দিতে হয়; শুধু SSH থেকে গ্রাফিক্যাল সেশন তৈরি হয় না। Linux মিররিংয়ে Wayland-এর বদলে X11 চাই। macOS-এ নতুন ব্যক্তিগত ডেস্কটপ নয়, বর্তমান শেয়ার স্ক্রিন দেখায়।

স্পর্শে ক্লিক, টানা ও জুম করুন; পর্দার বা হার্ডওয়্যার কীবোর্ডে লিখুন। ক্লিপবোর্ড নিয়ন্ত্রণে ফোনের লেখা ডেস্কটপে পেস্ট করা যায়; ডেস্কটপ থেকেও ফোনে লেখা কপি করা যায়।

স্ক্রিনের আকার পূর্বনির্ধারিত বা নিজস্ব মাপ সার্ভারপ্রতি মনে রাখে। iOS-এ প্রতিটি বাহু 320–5120 পিক্সেল হতে হবে। সার্ভার সমর্থন করলে সরাসরি মাপ বদলেও অ্যাপ চলে। পুনরারম্ভ বিকল্প নিশ্চিত করতে বলে এবং শুধু অ্যাপের তৈরি ব্যক্তিগত ডেস্কটপে থাকে। পুরোনো বা শেয়ার স্ক্রিন মাপ বদলাতে পুনরারম্ভ হয় না; Mac-এ সরাসরি বদল না চললে তার ডিসপ্লে সেটিং ব্যবহার করুন।