ٹرمینل

Mobile SSH ٹرمینل فون اور ٹیبلٹ کے استعمال کے لیے بنایا گیا ہے۔ یہ ایک ٹرمینل کینوس، اضافی کلید قطار، کثیر-سیشن پین، اسکرول ہینڈلنگ اور دوبارہ کنکشن کے رویے کو یکجا کرتا ہے۔

ٹرمینل کی بنیادی باتیں

کثیر-سیشن گرڈ

Mobile SSH ایک ساتھ آٹھ SSH سیشنز تک چلا سکتا ہے۔ ہر سیشن ٹرمینل گرڈ میں ایک پین کے طور پر ظاہر ہوتا ہے۔ منتخب کرنے کے لیے پین پر ٹیپ کریں، یا دوسرا کنکشن شروع کرنے کے لیے + Add Session استعمال کریں۔

پین ہیڈر بتاتا ہے کہ آپ کہاں ہیں۔ Android پر یہ پین کی اصل ورکنگ ڈائریکٹری دکھاتا ہے، جو tmux سے پوچھی جاتی ہے یا شیل OSC 7 کے ذریعے بتاتا ہے، اور ایپ کھلی رہنے تک تازہ ہوتی رہتی ہے؛ iOS پر یہ وہ عنوان دکھاتا ہے جو دور دراز سیٹ کرتا ہے، اور بصورتِ دیگر user@host:port پر واپس آ جاتا ہے۔

پین بند کرنا اس SSH سیشن کو منقطع کرتا ہے۔ اسٹارٹ اسکرین پر واپس جانا فعال سیشنز کو Active Sessions کے ذریعے دستیاب رکھتا ہے۔

Eternal Terminal (ET)

ہر محفوظ سرور دو ٹرانسپورٹ میں سے ایک استعمال کر سکتا ہے، جسے آپ سرور شامل یا ترمیم کرتے وقت Transport سلیکٹر سے منتخب کرتے ہیں:

ET سیشن کو سرور پر زندہ رکھتا ہے، اس لیے جب آپ کا فون نیٹ ورک بدلتا ہے یا نیند سے جاگتا ہے تو Mobile SSH نیا شیل کھولنے کے بجائے اسی جاری شیل سے دوبارہ منسلک ہو جاتا ہے۔ یہ اسے موبائل ڈیٹا، Wi-Fi/سیلولر ہینڈ-آف اور طویل دورانیے کی کمانڈز کے لیے موزوں بناتا ہے۔

ET کو ہوسٹ پر ایک etserver پروسیس درکار ہے۔ اگر سرور پر یہ موجود نہ ہو تو Mobile SSH موجودہ SSH کنکشن کے ذریعے آپ کے لیے اسے انسٹال اور شروع کر سکتا ہے — کسی دستی سرور سیٹ اپ کی ضرورت نہیں۔ ET دستیاب ہو جانے کے بعد، Eternal Terminal ٹرانسپورٹ منتخب کر کے جُڑیں۔

اضافی کلید قطار

دونوں پلیٹ فارم تیرہ ٹرمینل کلیدوں کی ایک قطار آپ کی پہنچ میں رکھتے ہیں — وہی کلیدیں جو ٹچ کی بورڈ پر مشکل یا سرے سے موجود نہیں۔ 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، دبائے رکھیں تو وہ دہراتی رہتی ہے۔

کی بورڈ کا رویہ

ٹرمینل آن-اسکرین کی بورڈ سے نیٹو پاس تھرو کنکشن استعمال کرتا ہے: جیسے ہی آپ ٹائپ کرتے ہیں، ہر حرف دور دراز شیل کو بھیج دیا جاتا ہے، خودکار درستی اور پیش گو تجاویز بند ہوتی ہیں تاکہ کی بورڈ شیل تک پہنچنے سے پہلے کبھی ان پٹ کو دوبارہ نہ لکھے۔ اس سے Vim، tmux، htop، less، غیر معمولی کلید کورڈز والے شیلز اور دور دراز پاس ورڈ پرامپٹس قابلِ پیش گوئی رہتے ہیں — غیر فعال کرنے کے لیے کوئی تجاویز بفر نہیں ہے۔

سافٹ کی بورڈ کی صوتی ڈکٹیشن پھر بھی کام کرتی ہے: بولا گیا متن کسی بھی دوسرے ٹائپ کیے گئے ان پٹ کی طرح سیدھا شیل کو بھیج دیا جاتا ہے۔

ہارڈویئر کی بورڈز

بیرونی اور Bluetooth کی بورڈز Android اور iOS دونوں پر ٹرمینل کو براہِ راست چلاتے ہیں۔ عام حروف کے علاوہ، Mobile SSH تیر کلیدیں، Home/End، PgUp/PgDn، Insert، Delete، Esc، فنکشن کلیدیں F1F12، Ctrl+کلید اور Alt/Option-بطور-Meta کورڈز، اور Shift+Tab کو نقشہ کرتا ہے۔ ترمیم کنندہ کلیدیں اضافی کلید قطار کے چپکنے والے ترمیم کنندہ کے ساتھ ملتی ہیں۔

پیسٹ

جو پروگرام اس کی درخواست کرے (bash، Vim اور دیگر bracketed-paste ایپس) اس میں پیسٹ کرنا bracketed-paste نشانات میں لپیٹا جاتا ہے، اس لیے کئی سطروں والا کلپ بورڈ مواد سطر بہ سطر خودکار طور پر چلنے کے بجائے متن کے طور پر داخل ہوتا ہے۔ صرف حقیقی پیسٹ ہی لپیٹے جاتے ہیں؛ ٹائپ کیا اور بولا گیا متن نہیں چھیڑا جاتا۔

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

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

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

پوری ٹرمینل بفر — اسکرول بیک اور نظر آنے والی اسکرین — میں تلاش کریں اور مماثلتوں کے درمیان جائیں۔ ٹرمینل کنٹرولز سے تلاش کھولیں، ایک استفسار ٹائپ کریں اور نتائج میں ایک ایک کر کے آگے بڑھیں۔ یہ Android اور iOS دونوں پر کام کرتا ہے۔

رنگ، اِٹالکس اور ریموٹ کلپ بورڈ

شیل انٹیگریشن اور اِن لائن تصاویر

ظاہری شکل اور کیز

Android اور iOS دونوں پر، Settings آپ کو ٹرمینل کو اپنی مرضی کے مطابق ڈھالنے دیتی ہے:

ری سیٹ آج کی فہرست کو منجمد کرنے کے بجائے وہی ڈیفالٹس بحال کرتا ہے جو ایپ کے ساتھ آتے ہیں، اس لیے کسی بعد کی ریلیز کی بہتریاں بھی آپ تک پہنچتی رہتی ہیں۔ ترامیم پہلے سے کھلے ہوئے پینز پر لائیو لاگو ہوتی ہیں۔

اسکرولنگ

Mobile SSH ٹرمینل کی حالت کی بنیاد پر اسکرول اشاروں کو روٹ کرتا ہے:

Android پر، ماؤس ٹریکنگ پروگرام کے اندر ٹیپ اُسی خانے پر بائیں کلک کے طور پر پہنچائی جاتی ہے، اس لیے htop، vim اور کلک-سے-فوکس ہونے والے پین چھونے پر جواب دیتے ہیں۔ iOS پر اسی پروگرام میں ٹیپ کلک کرنے کے بجائے کی بورڈ اٹھاتی ہے؛ وہاں صرف وہیل اسکرولنگ رپورٹ ہوتی ہے۔

اگر آپ پیچھے اسکرول کرتے ہوئے ٹائپ کرتے ہیں تو Mobile SSH لائیو ٹرمینل ویو پر واپس آ جاتا ہے۔

tmux کا رویہ

Mobile SSH باہر جانے والی tmux attach اور new-session کمانڈز دیکھتا ہے، جیسے:

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

جب آپ tmux میں تھے اور کنکشن گر جاتا ہے، ایپ اس سرور کے آخری tmux سیشن کا نام یاد رکھ سکتی ہے اور دوبارہ کنکشن کے بعد دوبارہ منسلک ہونے کی کوشش کر سکتی ہے۔ اگر کوئی واضح سیشن نام نہیں دیکھا گیا لیکن ایپ جانتی ہے کہ آپ متبادل-اسکرین tmux جیسے سیشن میں تھے تو یہ عام tmux attach آزما سکتی ہے۔

یہ رویہ بہترین کوشش پر مبنی ہے۔ اگر دور دراز tmux سیشن اب موجود نہیں تو دور دراز شیل دستیاب رہتا ہے۔

Tmux manager

Mobile SSH میں ایک tmux manager شامل ہے تاکہ آپ پری فکس کورڈز ٹائپ کیے بغیر tmux کو براؤز اور کنٹرول کر سکیں۔ اسے کسی جُڑے ہوئے سیشن سے Tmux بٹن کے ذریعے کھولیں۔ یہ تین حصوں میں فہرست دکھاتا ہے:

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

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

دونوں پلیٹ فارم ایک ہی ہوسٹ پر ایک سے زیادہ tmux سرور (ساکٹ) بھی سنبھال سکتے ہیں، اور سیشنز کو نام یا تخلیق کی تاریخ کے لحاظ سے ترتیب دے سکتے ہیں۔

Herdr اور Zellij (Android)

Android دو دیگر ملٹی پلیکسرز کے لیے بھی یہی سہولت دیتا ہے۔ ہر ایک کا اپنا ٹول بار آئیکن ہے، اور آئیکن تبھی ظاہر ہوتا ہے جب ایپ نے وہ پروگرام واقعی سرور پر ڈھونڈ لیا ہو — یعنی ٹول بار آپ کو which چلائے بغیر بتا دیتا ہے کہ وہاں کیا انسٹال ہے۔

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

ہر محفوظ سرور کی ایک Attach on connect ترتیب ہے: Auto (detect)، Nothing، tmux، herdr یا Zellij۔ Auto پہلے وہ چنتا ہے جو آپ نے اُس سرور پر آخری بار استعمال کیا، پھر وہ جس کے سیشن چل رہے ہوں، پھر وہ جو انسٹال ہو — اور جب تک اس نے سرور کو جانچا نہ ہو، اندازہ لگانے کے بجائے کسی چیز سے منسلک نہیں ہوتا۔

iOS ایپ آج صرف tmux کے لیے ہے۔

Agent alerts

Mobile SSH آپ کو بتاتا ہے کہ کوئی دور دراز AI کوڈنگ ایجنٹ — Claude Code، Codex، Gemini — کب آپ کے جواب پر رکا ہوا ہے۔ یہ آپ کے ٹرمینل آؤٹ پٹ کو پڑھ کر اندازہ نہیں لگاتا۔ اس کے دو راستے ہیں، اور دونوں مختلف سطح کی تفصیل پر کام کرتے ہیں۔

گھنٹی

بغیر کسی سیٹ اپ کے، ایسے سیشن سے آنے والی ٹرمینل گھنٹی جسے آپ نہیں دیکھ رہے، ایک الرٹ اٹھا دیتی ہے، اور اسی طرح ڈیسک ٹاپ اطلاع کے escape سلسلے (OSC 9، OSC 777) بھی جو بہت سے ٹولز پہلے ہی خارج کرتے ہیں۔ وہ گھنٹیاں جو آپ کے ٹائپ کرنے کے فوراً بعد آئیں، نظر انداز کر دی جاتی ہیں، تاکہ شیل کی معمولی تکمیل کا شور آپ کو نہ بلائے۔

اس کے لیے کچھ ترتیب دینے کی ضرورت نہیں، مگر ایپ کو صرف اتنا پتہ چلتا ہے کہ کچھ بجا ہے۔

ایجنٹ ہک

ایپ کو یہ معلوم ہونے کے لیے کہ کون سا ایجنٹ منتظر ہے اور کیا کر رہا ہے، سرور پر ایجنٹ ہک انسٹال کریں:

اس سے اُس سرور پر ~/.mobile-ssh/agent-hook.sh میں ایک چھوٹی شیل اسکرپٹ لکھی جاتی ہے۔ یہ کسی ایک ایجنٹ سے بندھی نہیں — یہ کسی وینڈر کی شکل پارس کرنے کے بجائے کمانڈ لائن دلائل لیتی ہے — اس لیے ہر وہ چیز جو کوئی کمانڈ چلا سکتی ہو، اس کے ذریعے اطلاع دے سکتی ہے۔ فائل حذف کر دینا صاف ستھری ان انسٹال ہے۔

جب کوئی ایجنٹ ہک کے ذریعے اطلاع دینے لگے:

ٹائپ کیے بغیر جواب دینا

جب کوئی ایجنٹ ایسا سوال کرے جس کے جوابات کا ایک مقررہ سیٹ ہو، تو ایپ Agents فہرست میں ہر اختیار کے لیے ایک بٹن دکھاتی ہے — زیادہ سے زیادہ چھ۔ Android پر آپ پین ہیڈر میں موجود ایجنٹ چِپ پر بھی ٹیپ کر سکتے ہیں۔

آپ کا جواب سیشن میں ٹائپ نہیں ہوتا۔ وہ ایک الگ چینل سے ایک فائل میں لکھا جاتا ہے اور ہک اسے اٹھا لیتا ہے، اس لیے جواب دینے سے اسکرین پر جو کچھ چل رہا ہے وہ خراب نہیں ہو سکتا۔ ایپ ایسا اختیار بھیجنے سے انکار کر دیتی ہے جو سوال نے حقیقتاً پیش ہی نہ کیا ہو، اور اگر کنکشن ٹوٹ چکا ہو تو خاموشی سے ناکام ہونے کے بجائے صاف صاف بتا دیتی ہے۔

ترتیبات

الرٹس دونوں پلیٹ فارمز پر بطور ڈیفالٹ آن ہیں، اور اطلاع، آواز، وائبریشن اور اس بات کے لیے الگ الگ سوئچ ہیں کہ جو سیشن آپ اِس وقت دیکھ رہے ہیں وہ بھی الرٹ کرے یا نہیں۔

ایک ڈیفالٹ جاننے کے قابل ہے: آواز صرف ہیڈ فونز تک محدود ہے۔ جب کچھ لگا یا جوڑا ہوا نہ ہو تو الرٹ اطلاع دیتا اور وائبریٹ کرتا ہے مگر کوئی آواز نہیں بجاتا۔ اگر آپ چاہتے ہیں کہ الرٹ فون کے اسپیکر پر سنائی دے تو اسے بند کر دیں۔

نہ کوئی حساسیت کی ترتیب ہے اور نہ آواز کا انتخاب — کنٹرول صرف آن/آف ہیں۔

فل-اسکرین ٹرمینل پروگرام

Vim، less، htop، ncurses ٹولز اور tmux پین جیسے پروگراموں کے لیے: