টার্মিনাল
Mobile SSH টার্মিনাল ফোন ও ট্যাবলেট পরিচালনার জন্য তৈরি। এটি একটি টার্মিনাল ক্যানভাস, অতিরিক্ত কী সারি, মাল্টি-সেশন প্যান, স্ক্রল হ্যান্ডলিং এবং পুনঃসংযোগ আচরণ একত্র করে।
টার্মিনাল মূল বিষয়
- টার্মিনাল রঙ সমর্থন ও কার্সর-কী হ্যান্ডলিং সহ xterm-শৈলীর আচরণ ব্যবহার করে।
- স্ক্রলব্যাক বাফার ডিফল্টভাবে ৫,০০০ লাইন রাখে, এবং Settings-এ এটি ১,০০০, ১০,০০০ বা ৫০,০০০-এ সেট করা যায়।
- টাইপ করার আগে প্যান নির্বাচন করতে ট্যাপ করুন।
- টেক্সটের আকার বদলাতে টার্মিনাল প্যানে পিঞ্চ করুন। অঙ্গভঙ্গি স্থির হলে Mobile SSH রিমোট PTY-এর আকার বদলায়।
- ফুলস্ক্রিন মোডে যেতে প্যানে ডাবল-ট্যাপ করুন (অথবা এর প্রসারণ নিয়ন্ত্রণ ব্যবহার করুন)। গ্রিডে ফিরতে Android-এ Back, অথবা iOS-এ সংকোচন নিয়ন্ত্রণ ব্যবহার করুন।
মাল্টি-সেশন গ্রিড
Mobile SSH একসাথে আটটি SSH সেশন পর্যন্ত চালাতে পারে। প্রতিটি সেশন টার্মিনাল গ্রিডে একটি প্যান হিসেবে দেখা যায়। নির্বাচন করতে প্যানে ট্যাপ করুন, অথবা অন্য সংযোগ শুরু করতে + Add Session ব্যবহার করুন।
প্যান হেডার জানায় আপনি কোথায় আছেন। Android-এ এটি প্যানের প্রকৃত কার্যকরী ডিরেক্টরি দেখায়, যা tmux থেকে জেনে নেওয়া হয় বা শেল OSC 7-এর মাধ্যমে জানায় এবং অ্যাপ খোলা থাকা অবস্থায় তা হালনাগাদ হতে থাকে; iOS-এ এটি রিমোট যে শিরোনাম সেট করে তা দেখায়, না পেলে user@host:port দেখায়।
পেন বন্ধ করলে তার SSH সেশন বিচ্ছিন্ন হয়। হোম থেকে সক্রিয় সেশন দিয়ে চলমান সংযোগে ফিরুন। হেডার থেমে যাওয়া সংযোগ দেখায়; সেটিংসে ট্রান্সফারের গতি এবং উত্তর বন্ধ হলে ম্লান হওয়া বা কম্পনের বিকল্প আছে।
Eternal Terminal (ET)
সার্ভার যোগ বা সম্পাদনার ট্রান্সপোর্ট নির্বাচনে দুই প্ল্যাটফর্মে এই বিকল্পগুলো থাকে:
- SSH — একটি সাধারণ SSH সংযোগ (ডিফল্ট)।
- Eternal Terminal — একটি ET সেশন, যা আপনার শেল পুনরায় চালু না করেই নেটওয়ার্ক বিচ্ছিন্নতা, ডিভাইস স্লিপ ও IP ঠিকানা পরিবর্তনেও টিকে থাকে।
ET সার্ভারে সেশনটি সচল রাখে, তাই আপনার ফোন নেটওয়ার্ক বদলালে বা স্লিপ থেকে জাগলে Mobile SSH নতুন শেল না খুলে সেই একই চলমান শেলে আবার অ্যাটাচ করে। এটি মোবাইল ডেটা, Wi-Fi/সেলুলার হস্তান্তর এবং দীর্ঘ-চলমান কমান্ডের জন্য উপযোগী।
ET-এর জন্য হোস্টে etserver দরকার। না থাকলে Mobile SSH SSH দিয়ে ইনস্টল ও শুরু করার প্রস্তাব দিতে পারে। সেটআপ কমান্ড দেখে অনুমোদন করুন, তারপর Eternal Terminal বাছুন। জাম্প-হোস্ট রুটে SSH ট্রান্সপোর্ট দরকার।
অতিরিক্ত কী সারি
দুই প্ল্যাটফর্মই তেরোটি টার্মিনাল কী-এর একটি সারি হাতের নাগালে রাখে — যেগুলো টাচ কীবোর্ডে অসুবিধাজনক বা একেবারেই নেই। Android-এ এটি সেশনের নিচে একটি স্ট্রিপ (হার্ডওয়্যার কীবোর্ড যুক্ত থাকলে যা নিজেকে লুকিয়ে ফেলে); iOS-এ এটি সফটওয়্যার কীবোর্ডের উপরে থাকে।
দুটি ডিফল্ট সেটের আকার একই, কিন্তু হুবহু এক নয়:
| Android | iOS | |
|---|---|---|
| ডিফল্ট | 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 এবং অন্যান্য ব্র্যাকেটেড-পেস্ট অ্যাপ) তাতে পেস্ট করা ব্র্যাকেটেড-পেস্ট মার্কারে মোড়ানো হয়, তাই একাধিক লাইনের ক্লিপবোর্ড কনটেন্ট লাইনে-লাইনে স্বয়ংক্রিয়ভাবে চালানোর বদলে টেক্সট হিসেবে সন্নিবেশিত হয়। শুধু আসল পেস্ট মোড়ানো হয়; টাইপ করা ও উচ্চারিত টেক্সট অপরিবর্তিত থাকে।
নির্বাচন, কপি, শেয়ার
শব্দ বাছতে টার্মিনালে দীর্ঘক্ষণ চাপুন, হ্যান্ডেল টেনে নির্বাচন বদলান। নির্বাচন টুলবারে আছে:
- Copy — নির্বাচিত টেক্সট সিস্টেম ক্লিপবোর্ডে রাখে। এরপরও নির্বাচনটি হাইলাইট থাকে, তাই আপনি এটি শেয়ার, পুনরায় কপি বা প্রসারিত করতে পারেন।
- Share — নির্বাচিত টেক্সট সিস্টেম শেয়ার শিটে (মেইল, নোট, মেসেজিং ইত্যাদি) পাঠায়।
- Select all — নির্বাচনকে সম্পূর্ণ দৃশ্যমান টার্মিনাল বাফারে প্রসারিত করে, তারপর Copy বা Share করুন।
- পেস্ট — ক্লিপবোর্ডের লেখা টার্মিনালে ঢোকান।
টার্মিনালে খুঁজুন
পুরো টার্মিনাল বাফারে — স্ক্রলব্যাক ও দৃশ্যমান স্ক্রিন — খুঁজুন এবং ম্যাচগুলোর মধ্যে ঝাঁপ দিন। টার্মিনাল নিয়ন্ত্রণ থেকে সার্চ খুলুন, একটি কোয়েরি টাইপ করুন এবং হিটগুলোর মধ্য দিয়ে এগিয়ে যান। এটি Android ও iOS উভয়েই কাজ করে।
রঙ, ইটালিক ও রিমোট ক্লিপবোর্ড
- টার্মিনাল 24-bit ট্রু কালার ও ইটালিক রেন্ডার করে, তাই থিমযুক্ত প্রম্পট, সিনট্যাক্স হাইলাইটিং ও TUI ডেস্কটপে যেমন দেখায় তেমনই দেখায়।
- OSC 52 ক্লিপবোর্ড: রিমোট প্রোগ্রাম ফোনের ক্লিপবোর্ডে লেখা কপি করতে পারে। ফোনের ক্লিপবোর্ড রিমোট প্রোগ্রাম দিয়ে পড়তে আলাদা অনুমতি চালু করতে হয়; ডিফল্ট বন্ধ।
- Android ও iOS উভয়েই প্রশস্ত CJK, ইমোজি ও কম্বাইনিং অক্ষর (গ্রাফিম ক্লাস্টার ও জিরো-উইড্থ জয়েনার) সঠিকভাবে মাপা ও আঁকা হয়, এবং একটি বান্ডল করা Nerd Font পাওয়ারলাইন, starship, devicon ও Material Design আইকন গ্লিফ আঁকে, যেগুলো সিস্টেম ফন্ট অন্যথায় খালি বাক্স হিসেবে দেখাত।
শেল ইন্টিগ্রেশন ও ইনলাইন ছবি
- শেল ইন্টিগ্রেশন (OSC 133): আপনার শেল OSC 133 প্রম্পট মার্কার নির্গত করলে, Mobile SSH এক প্রম্পট থেকে আরেক প্রম্পটে যেতে এবং একটি দীর্ঘ-চলমান কমান্ড শেষ হলে আপনাকে সতর্ক করতে পারে। Android ও iOS-এ কাজ করে। কোনো অ্যাপই এই মার্কার নিজে ঢোকায় না — আপনার শেলকেই সেগুলো নির্গত করতে হবে (একটি
PROMPT_COMMAND/precmdহুক, বা starship)। Android-এ প্রম্পট নেভিগেশন Settings → Shell integration-এ সক্ষম না করা পর্যন্ত বন্ধ থাকে; iOS-এ মার্ক আসতে শুরু করলেই মেনুটি নিজে থেকে দেখা যায়। - আউটপুট নির্বাচন: কোনো কমান্ডের আউটপুটের ভিতরে যেকোনো জায়গায় স্পর্শ করে গোটা ব্লকটি নির্বাচন করুন — ৩০০ লাইন আগের বিল্ড ত্রুটিটিও, শুধু শেষ কমান্ডটি নয় — তারপর কপি, শেয়ার বা প্রসারিত করুন।
- ইনলাইন ছবি: Kitty গ্রাফিক্স প্রোটোকলের ছবি Android ও iOS টার্মিনালে দেখা যায়। পিঞ্চ-জুম ও লাইন গুটিয়েও ছবি থাকে; সেল মাপে নিজের লাইনের সঙ্গে চলে। পূর্ণস্ক্রিন প্রোগ্রামেও ছবি চলে; তাদের অবস্থান সাধারণ স্ক্রলব্যাক থেকে আলাদা রাখা হয়।
- মোজাইক চিহ্ন: অ্যাপ নিজে ব্লক, ব্রেইল, সেক্সট্যান্ট ও অক্ট্যান্ট আঁকে, তাই
chafa,timgও ANSI শিল্প যেকোনো ফন্টে ফাঁক বা খালি বাক্স ছাড়া মেলে। - ছবির রেজোলিউশন: ছবি সেটিং থেকে প্রোগ্রামকে ডিসপ্লের পূর্ণ, অর্ধেক বা এক-তৃতীয়াংশ রেজোলিউশন জানানো যায়; এতে মোবাইল সংযোগে কম পিক্সেল যায়।
- প্রকৃত কার্যকরী ডিরেক্টরি (Android): প্যান হেডার শেষ প্রম্পটে যা ছাপা হয়েছিল তা নয়, বরং প্যানটি আসলে কোথায় আছে তা দেখায় — যা tmux থেকে জেনে নেওয়া হয় বা শেল OSC 7-এর মাধ্যমে জানায়।
চেহারা ও কী
Android ও iOS উভয়েই, Settings আপনাকে টার্মিনাল নিজের মতো সাজাতে দেয়:
- ফন্ট: সিস্টেম মনোস্পেস ফন্ট, JetBrains Mono বা Source Code Pro বেছে নিন।
- কালার স্কিম: Default, Solarized Dark বা Light, Gruvbox, Dracula, বা Nord — খোলা প্যানে সঙ্গে সঙ্গে প্রয়োগ হয়।
- অতিরিক্ত কী সারি: কী যোগ, অপসারণ, পুনর্বিন্যাস ও লুকান, নিজের এসকেপ-সিকোয়েন্স কী নির্ধারণ করুন এবং ডিফল্টে রিসেট করুন — সঙ্গে একটি লাইভ প্রিভিউ, যা আপনি ঠিক কেমন সারি-বিন্যাস পাবেন তা দেখায়। Android এটি একটি Keys ট্যাবে রাখে; iOS-এ এটি Extra keys → Customize keys-এ।
- প্রিসেট থেকে যোগ করুন: ছয়টি গ্রুপে প্রায় ৪৫টি কী-এর একটি প্যালেট —
F1–F12,^C^D^Z^R^L-এর মতো Ctrl সংমিশ্রণ,|~/_:-এর মতো প্রতীক, এবং মডিফায়ার।F1–F12সাধারণ এসকেপ সিকোয়েন্স হিসেবে পাঠানো হয়, তাই এদের জন্য কোনোFNকর্ড লাগে না। Android-এ একটি 📎 Attach a file কী-ও আছে, যা ফাইল পিকার খুলে চলমান সেশনে আপলোড করে; iOS-এ আছেINS,DELএবং একটিFNকী যা একটি অঙ্কের সারি দেখায়। - স্ক্রলব্যাক আকার: ১,০০০, ৫,০০০, ১০,০০০ বা ৫০,০০০ লাইন (ডিফল্ট ৫,০০০)। নতুন প্যানে প্রযোজ্য।
- টেক্সট আকার: পিঞ্চ-টু-জুমের পাশাপাশি একটি স্লাইডার।
- থিম: পুরো অ্যাপের জন্য System, Light বা Dark।
রিসেট আজকের তালিকাটিকে জমিয়ে না রেখে অ্যাপের সঙ্গে দেওয়া ডিফল্টগুলো ফিরিয়ে আনে, তাই পরবর্তী কোনো রিলিজের উন্নতিও আপনার কাছে পৌঁছায়। সম্পাদনা ইতিমধ্যেই খোলা প্যানে সঙ্গে সঙ্গে প্রযোজ্য হয়।
স্ক্রলিং
Mobile SSH টার্মিনাল অবস্থার উপর ভিত্তি করে স্ক্রল অঙ্গভঙ্গি রুট করে:
- সাধারণ শেল আউটপুটে সোয়াইপ করলে লোকাল স্ক্রলব্যাক বাফার স্ক্রল হয়।
- মাউস-মোড টার্মিনাল অ্যাপে স্ক্রলিং মাউস-হুইল এস্কেপ সিকোয়েন্স পাঠায়।
- মাউস মোড ছাড়া বিকল্প-স্ক্রিন অ্যাপে, যেমন অনেক tmux সেশন, স্ক্রলিং tmux কপি মোডে প্রবেশ করে এবং লাইন স্ক্রল কমান্ড পাঠায়।
দুই প্ল্যাটফর্মে মাউস-ট্র্যাকিং প্রোগ্রামে ট্যাপ সাধারণত বাম ক্লিক পাঠায়। 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 বাছুন। তালিকার তিনটি অংশ:
- Sessions — সার্ভারের প্রতিটি tmux সেশন।
- Windows — নির্বাচিত সেশনের উইন্ডোগুলো।
- Panes — নির্বাচিত উইন্ডোর প্যানগুলো।
ম্যানেজার থেকে আপনি পারেন:
- বর্তমান টার্মিনালে একটি সেশন Attach করতে।
- নতুন সেশন বা উইন্ডো Create করতে, এবং সেগুলোর rename করতে।
- একটি প্যান আনুভূমিক বা উল্লম্বভাবে Split করতে, একটি প্যান zoom করতে, এবং সেশন, উইন্ডো বা প্যান kill করতে।
- সেশন সাম্প্রতিক (ডিফল্ট), নাম বা তৈরির তারিখ দিয়ে সাজান।
যে সেশনের এজেন্ট ইনপুটের অপেক্ষায় আছে সেটি একটি 🔔 দিয়ে চিহ্নিত হয়, তাই থেমে থাকা কোনো Claude Code বা Codex চালু কাজ এক নজরেই চোখে পড়ে এবং আপনি তাতে অ্যাটাচ করতে পারেন। এটি উপরের reattach ইঙ্গিতের পরিপূরক: reattach যুক্তি পুনঃসংযোগে স্বয়ংক্রিয়ভাবে আপনার শেষ সেশন ফিরিয়ে আনে, আর ম্যানেজার আপনাকে পূর্ণ হাতে-করা নিয়ন্ত্রণ দেয়।
দুই প্ল্যাটফর্মে একই হোস্টের একাধিক tmux সার্ভার (সকেট) চলে। ম্যানেজারের সংযুক্তির চিহ্ন আপনার বর্তমান টার্মিনালের, সার্ভারের অন্য ক্লায়েন্টের নয়।
Herdr ও Zellij
Android ও iOS-এ Herdr ও Zellij-ও আছে। টুলবারের এক নিয়ন্ত্রণ প্রধান শনাক্ত মাল্টিপ্লেক্সার খোলে; অন্যটি বাছতে দীর্ঘক্ষণ চাপুন। সার্ভারে পাওয়া প্রোগ্রামই দেখায়। ম্যানেজারে সার্ভারের শিরোনাম দিয়ে সার্ভার ও মাল্টিপ্লেক্সার নির্বাচন দিয়ে ম্যানেজার বদলান।
- Herdr এজেন্টের অবস্থাসহ সেশন, ওয়ার্কস্পেস, ট্যাব ও পেন দেখায়। তালিকা থেকে আটকে থাকা এজেন্ট দেখুন বা উত্তর দিন। উত্তর বাছা পেন ও নামের সেশনেই যায়; পাঠান লেখা দেয়, শুধু Enter খালি সম্মতি পাঠায়। সমর্থিত হলে নির্দিষ্ট পেনের ফোকাস মেলে; নইলে তার মূল ট্যাবের ফোকাস নিন। Herdr-এর এজেন্ট অবস্থার জন্য আলাদা হুক লাগে না।
- Zellij সেশন, ট্যাব ও প্যান তালিকাভুক্ত করে, সঙ্গে অ্যাটাচ, নাম পরিবর্তন, কিল ও স্প্লিট। কিল করা সেশন তালিকায় থেকে যায়, তাই অ্যাটাচ করলে সেগুলো আবার জেগে ওঠে; আর delete সেগুলোকে চিরতরে ভুলে যায়। ট্যাব ও প্যানের বিস্তারিত জানতে Zellij 0.44 বা নতুন সংস্করণ লাগে; পুরোনো সংস্করণে পেজটি ট্যাবের নাম দেখায় এবং কারণটিও জানায়। স্প্লিট করতে সেশনে একটি ক্লায়েন্ট অ্যাটাচ থাকা দরকার, আর পেজটি ব্যর্থ হবে এমন বোতাম দেওয়ার বদলে সেটি ব্যাখ্যা করে।
herdr বা Zellij ইনস্টল থাকলেও লগইন শেলের PATH-এ না থাকলে পেজটি সেটি যোগ করে দেওয়ার প্রস্তাব দেয়।
প্রতি সংরক্ষিত সার্ভারে সংযোগে যুক্ত করুন আছে: স্বয়ংক্রিয়, কিছু নয়, tmux, herdr বা Zellij। স্বয়ংক্রিয় বাছাই আগে ব্যবহৃত মাল্টিপ্লেক্সার, তারপর চলমান সেশন আছে এমনটি, তারপর ইনস্টল থাকা প্রোগ্রাম নেয়। আগের শনাক্তকরণ না থাকলে সাধারণ শেল খোলে। পরের পরীক্ষা ভবিষ্যৎ সংযোগে প্রযোজ্য; বর্তমান ইনপুটের ওপর কিছু চালায় না।
এজেন্ট সতর্কতা
Mobile SSH আপনাকে জানায় কখন কোনো রিমোট AI কোডিং এজেন্ট — Claude Code, Codex, Gemini — আপনার জন্য আটকে অপেক্ষা করছে। এটি আপনার টার্মিনাল আউটপুট পড়ে অনুমান করে না। এর দুটি পথ আছে, আর সেগুলো ভিন্ন মাত্রার বিস্তারিত জানায়।
ঘণ্টা
টার্মিনালের ঘণ্টা এজেন্ট সতর্কতা দিতে পারে। টাইপের ঠিক পরের ঘণ্টা ডিফল্টভাবে উপেক্ষিত। রিমোট বিজ্ঞপ্তি (OSC 9, OSC 777) ও OSC 133 কমান্ড-শেষ সতর্কতার আলাদা সেটিং আছে; iOS-এ চালু করার আগে দুটিই বন্ধ।
এতে কোনো সেটআপ লাগে না, কিন্তু অ্যাপ শুধু এটুকুই জানে যে কিছু একটা বেজেছে।
এজেন্ট হুক
অ্যাপ যাতে জানতে পারে কোন এজেন্ট অপেক্ষা করছে এবং কী করছে, তার জন্য সার্ভারে এজেন্ট হুকটি ইনস্টল করুন:
- iOS: Settings → Agent alerts → Install Agent Hook। একাধিক সার্ভার সংযুক্ত থাকলে এটি জিজ্ঞাসা করে কোনটিতে।
- Android: কোনো সেশনের প্যান হেডারে দীর্ঘক্ষণ চেপে Install agent hooks বেছে নিন।
এটি সেই সার্ভারের ~/.mobile-ssh/agent-hook.sh-এ একটি ছোট শেল স্ক্রিপ্ট লেখে। এটি এজেন্ট-নিরপেক্ষ — কোনো নির্দিষ্ট ভেন্ডরের ফরম্যাট পার্স না করে এটি কমান্ড-লাইন আর্গুমেন্ট নেয় — তাই যা কিছু একটি কমান্ড চালাতে পারে তা-ই এর মাধ্যমে জানাতে পারে। ফাইলটি মুছে দিলেই পরিষ্কার আনইনস্টল হয়ে যায়।
একবার কোনো এজেন্ট হুকের মাধ্যমে জানাতে শুরু করলে:
- প্যানের হেডারে লেখা থাকে
claude · needs you, অথবা সে যে টুল চালাচ্ছে তার নাম। - যে প্যানের এজেন্ট আটকে আছে তার চারপাশে অ্যাম্বার রঙের বর্ডার আসে। আপনি যে প্যানটি ইতিমধ্যেই দেখছেন সেটিকে ছোঁয়া হয় না — প্রম্পটটি তো সেখানেই আছে।
- টুলবারের একটি ব্যাজ প্রতিটি সংযোগ জুড়ে অপেক্ষমাণ এজেন্টের সংখ্যা গোনে, সর্বোচ্চ
9+পর্যন্ত। - Agents স্ক্রিন প্রতিটি সংযোগের প্রতিটি এজেন্ট তালিকাভুক্ত করে, সে কী করছে এবং কতক্ষণ ধরে অপেক্ষা করছে তা-সহ।
টাইপ না করেই উত্তর
কোনো এজেন্ট যখন নির্দিষ্ট কয়েকটি উত্তরের বিকল্প দিয়ে প্রশ্ন করে, অ্যাপ Agents তালিকায় প্রতিটি বিকল্পের জন্য একটি করে বোতাম দেখায় — সর্বোচ্চ ছয়টি। Android-এ আপনি প্যান হেডারের এজেন্ট চিপেও ট্যাপ করতে পারেন।
আপনার উত্তরটি সেশনে টাইপ হয় না। এটি আলাদা একটি চ্যানেল দিয়ে একটি ফাইলে লেখা হয় এবং হুক তা তুলে নেয়, তাই উত্তর দেওয়ায় স্ক্রিনে যা আছে তা নষ্ট হতে পারে না। প্রম্পট আসলে দেয়নি এমন কোনো বিকল্প পাঠাতে অ্যাপ অস্বীকার করে, আর ইতিমধ্যে সংযোগ বিচ্ছিন্ন হয়ে গেলে নীরবে ব্যর্থ না হয়ে স্পষ্ট করে জানিয়ে দেয়।
সেটিংস
দুই প্ল্যাটফর্মে এজেন্ট সতর্কতা ডিফল্ট চালু; বিজ্ঞপ্তি, শব্দ, কম্পন ও সক্রিয় পেনের আলাদা সুইচ আছে। iOS সক্রিয় পেনের সতর্কতা চালু রাখে এবং শুধু ব্যাকগ্রাউন্ডে দেওয়ার বিকল্পও দেয়। অ্যাপ চলার অনুমতি পাওয়া পর্যন্তই iOS এগুলো দিতে পারে; দীর্ঘ স্থগিতাবস্থায় সরাসরি SSH সতর্কতা থামে।
একটি ডিফল্ট জেনে রাখা ভালো: শব্দ কেবল হেডফোনেই সীমাবদ্ধ। কিছু প্লাগ ইন করা বা জোড়া লাগানো না থাকলে সতর্কতা বিজ্ঞপ্তি দেয় ও কম্পন করে, কিন্তু কোনো শব্দ বাজে না। ফোনের স্পিকারে সতর্কতা শুনতে চাইলে এটি বন্ধ করে দিন।
কোনো সংবেদনশীলতা সেটিং নেই এবং কোনো শব্দ নির্বাচকও নেই — নিয়ন্ত্রণগুলো কেবল চালু/বন্ধ।
ফুল-স্ক্রিন টার্মিনাল প্রোগ্রাম
Vim, less, htop, ncurses টুল এবং tmux প্যানের মতো প্রোগ্রামের জন্য:
- iOS-এ সরাসরি ইনপুটের জন্য কণ্ঠলিখন ও পরামর্শ এবং কীবোর্ড পরামর্শ বন্ধ করে নতুন পেন খুলুন।
ESC, তীর,PGUPএবংPGDN-এর জন্য অতিরিক্ত কী সারি ব্যবহার করুন।- টেক্সট খুব ছোট হলে পিঞ্চ জুম ব্যবহার করুন, তারপর রিমোট টার্মিনালের আকার স্থির হওয়া পর্যন্ত একটু অপেক্ষা করুন।
রিমোট ডেস্কটপ
দুই প্ল্যাটফর্মে SSH-এর ভেতর VNC দিয়ে রিমোট ডেস্কটপ খোলে। macOS Screen Sharing-সহ বর্তমান শেয়ার স্ক্রিন নিন বা সমর্থিত Linux ডেস্কটপ সেটআপ অনুমোদন করুন। ডেস্কটপ সার্ভারকে দিতে হয়; শুধু SSH থেকে গ্রাফিক্যাল সেশন তৈরি হয় না। Linux মিররিংয়ে Wayland-এর বদলে X11 চাই। macOS-এ নতুন ব্যক্তিগত ডেস্কটপ নয়, বর্তমান শেয়ার স্ক্রিন দেখায়।
স্পর্শে ক্লিক, টানা ও জুম করুন; পর্দার বা হার্ডওয়্যার কীবোর্ডে লিখুন। ক্লিপবোর্ড নিয়ন্ত্রণে ফোনের লেখা ডেস্কটপে পেস্ট করা যায়; ডেস্কটপ থেকেও ফোনে লেখা কপি করা যায়।
স্ক্রিনের আকার পূর্বনির্ধারিত বা নিজস্ব মাপ সার্ভারপ্রতি মনে রাখে। iOS-এ প্রতিটি বাহু 320–5120 পিক্সেল হতে হবে। সার্ভার সমর্থন করলে সরাসরি মাপ বদলেও অ্যাপ চলে। পুনরারম্ভ বিকল্প নিশ্চিত করতে বলে এবং শুধু অ্যাপের তৈরি ব্যক্তিগত ডেস্কটপে থাকে। পুরোনো বা শেয়ার স্ক্রিন মাপ বদলাতে পুনরারম্ভ হয় না; Mac-এ সরাসরি বদল না চললে তার ডিসপ্লে সেটিং ব্যবহার করুন।