Mosh — сетевой терминальный инструмент для удалённого взаимодействия с командной строкой, разработанный как альтернатива интерактивному SSH. Проект возник с целью повышения устойчивости удалённых сессий при ненадёжных сетевых условиях: при смене сетей, потере кратковременного соединения или высокой задержке. Mosh использует клиент‑серверную архитектуру, где на сервере запускается процесс, поддерживающий состояние терминала, а клиент связывается с ним по протоколу, отличному от традиционного TCP‑соединения SSH.
Ключевой технической особенностью Mosh является использование протокола поверх UDP для передачи изменений состояния терминала и предиктивного локального ввода, что позволяет отображать ввод пользователя мгновенно, даже если ответы от сервера приходят с заметной задержкой. При этом Mosh сохраняет семантику терминала и синхронизирует отображение экрана, обеспечивая корректную работу программ, использующих терминал. Проект развивается как свободное программное обеспечение и нашёл применение у пользователей, работающих через ненадёжные или мобильные сети.
- Устойчивость сессий: сохраняет сеанс при смене IP‑адреса и кратковременных разрывах связи, позволяя клиенту автоматически переподключаться к серверному процессу.
 - Протокол на базе UDP: передаёт только изменения состояния экрана и управляющие данные, снижая задержки, связанные с установлением и восстановлением TCP‑соединений.
 - Предиктивный локальный ввод: клиент прогнозирует отрисовку ввода пользователя на основе локальных событий, обеспечивая немедленный отклик интерфейса до подтверждения от сервера.
 - Синхронизация состояния терминала: сервер поддерживает модель экрана и курсора, посылая дельты клиенту для согласованного отображения, что важно для корректной работы полноэкранных текстовых приложений.
 - Защита и аутентификация: изначально проект предполагал использование SSH для аутентификации и установки начального защищённого канала, после чего управление сессией переходит на UDP‑сообщения между клиентом и сервером.
 - Кроссплатформенность: доступен для различных Unix‑подобных систем и клиентских платформ, что делает его удобным для использования на серверах и мобильных устройствах с командной строкой.
 - Оптимизация трафика: пересылает компактные обновления экрана вместо полного потока байтов ввода/вывода, что снижает объём передаваемых данных при медленных соединениях.