Терминал

Терминал 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-серверы требуют транспорта SSH.

Ряд дополнительных клавиш

Обе платформы держат под рукой ряд из тринадцати терминальных клавиш — тех, что неудобны или отсутствуют на сенсорной клавиатуре. На Android это полоса внизу сессии (она скрывается сама, когда подключена аппаратная клавиатура); на iOS она располагается над программной клавиатурой.

Два набора по умолчанию одного размера, но не одинаковые:

AndroidiOS
По умолчаниюESC TAB CTRL стрелки HOME PGUP END PGDN ⌫ ⌨ESC TAB CTRL ⇧ стрелки HOME END PGUP PGDN ⌨
Различиеесть Backspace, нет Shiftесть залипающий Shift, нет Backspace

Ряд никогда не прокручивается. Когда клавиши перестают помещаться по ширине, они делят место поровну и переносятся на вторую строку; всё, что не влезло и туда, убирается в меню переполнения ⋯. Ничего не прячется за свайпом и не обрезается краем экрана, а взведённый модификатор применяется и к клавише, выбранной из меню переполнения.

CTRL работает как залипающий модификатор: нажмите CTRL, затем введите C, чтобы отправить Ctrl-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 при смене сокета считывается текущий префикс tmux вместо предположения, что это Ctrl+B. Неподдерживаемый префикс или ошибка его определения останавливают переключение с сообщением. Ввод, закрытие панели или отключение отменяют ожидающие шаги присоединения; неопознанной полноэкранной программе команды присоединения не отправляются.

Менеджер tmux

В Mobile SSH есть менеджер tmux, позволяющий просматривать и управлять сессиями без префиксных сочетаний клавиш. Откройте его кнопкой мультиплексера в подключённой сессии; если доступно несколько менеджеров, удерживайте эту кнопку для выбора tmux. Список состоит из трёх разделов:

Из менеджера вы можете:

Значок 🔔 отмечает сессию, чей агент ожидает ввода, — так вы с одного взгляда замечаете приостановленный запуск Claude Code или Codex и подключаетесь к нему. Это дополняет подсказки по reattach выше: логика reattach автоматически восстанавливает вашу последнюю сессию при переподключении, а менеджер даёт полный ручной контроль.

На обеих платформах можно управлять несколькими серверами tmux (сокетами) на одном хосте. Индикаторы присоединения в менеджере относятся к используемому терминалу, а не к другому клиенту на сервере.

Herdr и Zellij

Android и iOS также управляют Herdr и Zellij. Одна кнопка на панели инструментов открывает основной обнаруженный мультиплексер; удерживайте её для выбора другого. Предлагаются только программы, найденные на этом сервере. В менеджере заголовок сервера переключает серверы, а селектор мультиплексера — менеджеры.

Если herdr или Zellij установлен, но отсутствует в PATH оболочки входа, страница предложит его туда добавить.

У каждого сохранённого сервера есть параметр Присоединяться при подключении: Авто (определить), Ничего, tmux, herdr или Zellij. Автоматический режим учитывает обнаруженные программы и историю присоединений: сначала ранее использованный мультиплексер, затем программу с работающими сессиями, затем установленную. Без сохранённых результатов обнаружения открывается обычная оболочка. Более поздняя проверка влияет на будущие подключения, не запуская программу поверх текущего ввода.

Уведомления агентов

Mobile SSH сообщает вам, когда удалённый ИИ-агент для кодинга — Claude Code, Codex, Gemini — заблокирован и ждёт вас. Он не гадает, вчитываясь в вывод вашего терминала. Есть два пути, и они работают с разной степенью подробности.

Звонок

Звуковой сигнал терминала может вызвать уведомление о необходимости внимания. Сигналы сразу после ввода по умолчанию игнорируются. Удалённые уведомления OSC 9 и OSC 777 и уведомления о завершении команды OSC 133 имеют отдельные настройки; на iOS оба варианта изначально выключены.

Настройка для этого не нужна, но приложение знает лишь то, что что-то прозвенело.

Хук агента

Чтобы приложение знало, какой агент ждёт и чем он занят, установите на сервер хук агента:

Это записывает небольшой shell-скрипт в ~/.mobile-ssh/agent-hook.sh на этом сервере. Он не привязан к конкретному агенту — принимает аргументы командной строки, а не разбирает формат какого-то одного поставщика, — поэтому отчитываться через него может всё, что умеет запускать команды. Удаление файла — это чистая деинсталляция.

Как только агент отчитывается через хук:

Ответ без набора текста

Когда агент задаёт вопрос с фиксированным набором ответов, приложение показывает в списке Agents по кнопке на каждый вариант — до шести. На Android можно также коснуться чипа агента в заголовке панели.

Ваш ответ не печатается в сессию. Он записывается в файл по отдельному каналу и подхватывается хуком, поэтому ответ не может испортить то, что у вас на экране. Приложение отказывается отправлять вариант, которого запрос на самом деле не предлагал, и прямо сообщает, если соединение к этому моменту оборвалось, а не проваливается молча.

Настройки

Уведомления агентов включены по умолчанию на обеих платформах; отдельно настраиваются уведомления, звук, вибрация и оповещения для активной панели. На iOS оповещения активной панели по умолчанию включены, также есть режим доставки только в фоне. iOS может доставлять их лишь пока приложению разрешено работать; длительная фоновая приостановка прерывает живые SSH-уведомления.

Об одном значении по умолчанию стоит знать: звук ограничен наушниками. Если ничего не подключено и не сопряжено, уведомление придёт и телефон завибрирует, но звук не прозвучит. Отключите этот параметр, если хотите слышать уведомление через динамик телефона.

Настройки чувствительности нет, выбора звука тоже: все элементы управления — это просто «включено/выключено».

Полноэкранные терминальные программы

Для программ, таких как Vim, less, htop, инструменты ncurses и панели tmux:

Удалённые рабочие столы

Обе платформы открывают удалённый рабочий стол по VNC через SSH. Используйте уже доступный экран, включая общий экран macOS, или подтвердите настройку поддерживаемого рабочего стола Linux. Рабочий стол должен предоставляться сервером: один лишь доступ SSH не создаёт графическую сессию. Зеркалирование экрана Linux требует X11, а не Wayland; macOS использует существующий общий экран вместо создания отдельного рабочего стола.

Касания позволяют щёлкать, перетаскивать и масштабировать; для ввода используйте экранную или аппаратную клавиатуру. Кнопки буфера обмена вставляют текст телефона на удалённый рабочий стол. Рабочий стол также может копировать текст обратно на телефон.

Параметр Размер экрана предлагает готовые и произвольные размеры, запоминаемые для каждого сервера. На iOS каждая сторона должна быть от 320 до 5120 пикселей. Изменение размера на лету сохраняет приложения, если сервер это поддерживает. Запасной вариант с перезапуском требует подтверждения и доступен только для отдельного рабочего стола, созданного приложением. Существующие рабочие столы и общие консольные экраны ради изменения размера не перезапускаются; если изменение на лету недоступно на Mac, задайте разрешение в его настройках дисплея.