ٹرمینل

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 iOS پر Android کی نسبت زیادہ چپکنے والا ہے — 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 اور دیگر bracketed-paste ایپس) اس میں پیسٹ کرنا bracketed-paste نشانات میں لپیٹا جاتا ہے، اس لیے کئی سطروں والا کلپ بورڈ مواد سطر بہ سطر خودکار طور پر چلنے کے بجائے متن کے طور پر داخل ہوتا ہے۔ صرف حقیقی پیسٹ ہی لپیٹے جاتے ہیں؛ ٹائپ کیا اور بولا گیا متن نہیں چھیڑا جاتا۔

منتخب کریں، کاپی کریں، شیئر کریں

لفظ منتخب کرنے کے لیے ٹرمینل میں دیر تک دبائیں، پھر ہینڈل کھینچ کر انتخاب بدلیں۔ انتخابی ٹول بار میں شامل ہیں:

ٹرمینل میں تلاش

پوری ٹرمینل بفر — اسکرول بیک اور نظر آنے والی اسکرین — میں تلاش کریں اور مماثلتوں کے درمیان جائیں۔ ٹرمینل کنٹرولز سے تلاش کھولیں، ایک استفسار ٹائپ کریں اور نتائج میں ایک ایک کر کے آگے بڑھیں۔ یہ 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 ساکٹ بدلتے وقت Ctrl+B فرض کرنے کے بجائے موجودہ tmux سابقہ پڑھتا ہے۔ غیر معاون سابقہ یا ناکام دریافت پر پیغام دے کر رک جاتا ہے۔ ٹائپنگ، پین بند کرنا یا رابطہ توڑنا زیر التوا مراحل منسوخ کرتا ہے؛ نامعلوم مکمل اسکرین پروگرام کو منسلک ہونے کے احکامات نہیں بھیجے جاتے۔

Tmux manager

Mobile SSH کا tmux مینیجر سابقہ کلیدی امتزاج لکھے بغیر سیشن دیکھنے اور چلانے دیتا ہے۔ منسلک سیشن کے ملٹی پلیکسر کنٹرول سے کھولیں؛ کئی مینیجر ہوں تو دیر تک دبا کر tmux چنیں۔ اس کے تین حصے ہیں:

manager سے آپ یہ کر سکتے ہیں:

🔔 کسی بھی ایسے سیشن کو نشان زد کرتا ہے جس کا ایجنٹ ان پٹ کا منتظر ہے، اس لیے آپ ایک نظر میں رکے ہوئے Claude Code یا Codex رن کو پہچان کر اس سے منسلک ہو سکتے ہیں۔ یہ اوپر دیے گئے دوبارہ منسلک ہونے کے اشاروں کی تکمیل کرتا ہے: دوبارہ منسلک ہونے کی منطق دوبارہ کنکشن پر آپ کا آخری سیشن خود بخود بحال کر دیتی ہے، جبکہ manager آپ کو مکمل دستی کنٹرول دیتا ہے۔

دونوں پلیٹ فارم ایک میزبان کے کئی tmux سرور (ساکٹ) سنبھالتے ہیں۔ مینیجر کی وابستگی کا نشان آپ کے زیر استعمال ٹرمینل کے لیے ہے، سرور کے کسی دوسرے کلائنٹ کے لیے نہیں۔

Herdr اور Zellij

Android اور iOS، Herdr اور Zellij بھی سنبھالتے ہیں۔ ایک ٹول بار کنٹرول بنیادی دریافت شدہ ملٹی پلیکسر کھولتا ہے؛ دیر تک دبا کر دوسرا منتخب کریں۔ صرف اسی سرور پر ملنے والے پروگرام پیش ہوتے ہیں۔ مینیجر میں سرور کا عنوان سرور بدلتا ہے، جبکہ ملٹی پلیکسر انتخاب مینیجر بدلتا ہے۔

اگر herdr یا Zellij انسٹال تو ہے مگر لاگ اِن شیل کے PATH میں نہیں، تو صفحہ اسے شامل کرنے کی پیشکش کرتا ہے۔

ہر محفوظ سرور میں رابطے پر منسلک ہوں کے اختیارات خودکار، کچھ نہیں، tmux، herdr اور Zellij ہیں۔ خودکار دریافت اور سابقہ استعمال کی بنیاد پر پہلے استعمال شدہ، پھر فعال سیشن والے، پھر نصب ملٹی پلیکسر کو ترجیح دیتا ہے۔ محفوظ دریافت نہ ہو تو عام شیل کھلتا ہے۔ بعد کی دریافت صرف آئندہ رابطوں پر اثر ڈالتی ہے، موجودہ ان پٹ کے اوپر پروگرام نہیں چلاتی۔

Agent alerts

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 اسکرین شیئرنگ سمیت موجودہ مشترک اسکرین استعمال کریں یا معاون Linux ڈیسک ٹاپ کی تنصیب منظور کریں۔ سرور پر ڈیسک ٹاپ ضروری ہے؛ صرف SSH اجازت گرافیکل سیشن نہیں بناتی۔ Linux اسکرین عکس کے لیے X11 درکار ہے، Wayland نہیں؛ macOS نئی نجی میز بنانے کے بجائے موجودہ مشترک اسکرین دکھاتا ہے۔

لمس سے کلک، کھینچنے اور زوم کے عمل کریں؛ اسکرین یا بیرونی کی بورڈ سے لکھیں۔ کلپ بورڈ کنٹرول فون کا متن ڈیسک ٹاپ میں چسپاں اور ڈیسک ٹاپ کا متن فون پر نقل کرتے ہیں۔

اسکرین سائز میں تیار اور حسب ضرورت ابعاد ہیں جو ہر سرور کے لیے یاد رہتے ہیں۔ iOS میں ہر جانب 320 سے 5120 پکسل ضروری ہیں۔ سرور معاون ہو تو براہ راست سائز بدلنے سے پروگرام کھلے رہتے ہیں۔ دوبارہ شروع کرنے کا متبادل صرف ایپ کے بنائے نجی ڈیسک ٹاپ کو تصدیق کے بعد ملتا ہے۔ موجودہ ڈیسک ٹاپ یا مشترک کنسول سائز کے لیے دوبارہ شروع نہیں ہوتے؛ Mac پر براہ راست تبدیلی نہ ہو تو اس کی ڈسپلے ترتیبات بدلیں۔