Любая программа из терминала - по ссылке в браузере, бесплатно.
Представьте: вы написали удобную утилиту, которая за секунды делает то, на что раньше уходили минуты. Хотите показать её коллеге - и упираетесь в стену. Он не знает, что такое терминал. Объяснять установку - полчаса. Настраивать удалённый доступ по защищённому протоколу SSH - ещё дольше, и это уже требует технических знаний от обеих сторон. В итоге машете рукой и говорите: «Ну, поверь на слово». Textual-web решает именно эту проблему - и решает её неожиданно просто.
Это программа с открытым кодом, которая берёт ваше терминальное приложение и выдаёт вам обычную ссылку. Коллега открывает её в браузере - и видит работающую программу. Ничего не устанавливает, ничего не настраивает. Просто ссылка, как на любой сайт.
Как textual-web превращает терминал в веб-страницу
Здесь важно понять одну вещь, которая поначалу кажется нелогичной: само приложение продолжает работать на вашем компьютере. Браузер коллеги только отображает картинку и передаёт нажатия клавиш. Это не облако, не чужой сервер - вычисления идут у вас, а удалённый человек видит результат через обычный браузер.
Под капотом у textual-web не просто трансляция терминального вывода, а собственный протокол передачи данных. Разработчики из компании Textualize - они же создали популярную библиотеку Rich, которую используют тысячи Python-программ для красивого вывода в терминале - заложили в него задел на будущее. В перспективе это позволит терминальным приложениям делать то, что сейчас умеют только настоящие сайты: скачивать файлы прямо в папку «Загрузки» браузера, взаимодействовать с браузерными возможностями. Пока это планы, но архитектура уже заточена под это.
Запустить инструмент можно на macOS или Linux. Сначала нужно установить pipx - это небольшая утилита, которая устанавливает Python-программы так, чтобы они не мешали друг другу. Затем одной командой устанавливается сам textual-web. После этого достаточно запустить его в терминале рядом с вашим приложением - и он сам сгенерирует ссылку, которую можно отправить кому угодно.
Расшарить htop по ссылке - это теперь реально
Textual-web умеет публиковать не только программы, написанные специально под него. Можно взять любую терминальную утилиту - например, htop, который показывает загрузку процессора и памяти в реальном времени - и открыть к ней доступ через браузер. Системный администратор может показать коллеге состояние сервера, не объясняя, как подключиться по SSH и что вводить после подключения.
Если нужно опубликовать сразу несколько инструментов, это настраивается через конфигурационный файл в формате TOML - это простой текстовый файл с настройками, похожий по структуре на обычный список параметров. Каждому приложению можно задать свой адрес: не случайный набор букв, а читаемый путь вроде «/monitor» или «/calc». Без регистрации ссылка каждый раз новая; с бесплатным аккаунтом на сайте разработчиков - постоянная.
Есть и режим отладки: если что-то пошло не так, можно включить расширенное журналирование и посмотреть, на каком шаге возникла проблема. Для нетехнического инструмента это неожиданно удобная деталь.
Где textual-web пока проигрывает
Честно о слабых местах - они есть, и некоторые существенные.
Проект находится в бета-версии. Это означает, что баги встречаются, и рассчитывать на стабильность в критически важных задачах пока не стоит. Закрыл вкладку браузера - сеанс завершился, возобновить его нельзя. Разработчики обещают исправить это в будущем, но сейчас это ограничение нужно учитывать.
На мобильных устройствах ситуация неровная: на iPhone работает терпимо, на Android возможны проблемы с отображением. Приложения с большим количеством цветов иногда показывают визуальные артефакты - это известная проблема в одной из зависимых библиотек, не в самом textual-web.
Пользователи Windows получают урезанный вариант: расшарить терминал целиком не получится, поддержка этого режима на Windows пока не реализована.
И самое важное предупреждение: если вы открываете доступ к терминалу своей машины, а не к отдельному приложению - ссылку нужно беречь. Тот, кто её получит, получит и полный доступ к вашему компьютеру. Случайно отправить её не туда - серьёзный риск.
Сравнение с тем, что уже существует
Задача «дать коллеге доступ к терминалу» решалась и раньше. Инфраструктурные платформы вроде Teleport умеют это делать красиво и безопасно - но стоят от 5 долларов в месяц за пользователя, требуют настройки сервера и рассчитаны на корпоративные команды. Сервис туннелирования ngrok, который часто используют для похожих задач, в платном варианте обходится от 800-900 рублей в месяц. Есть бесплатные альтернативы - ttyd, Sshwifty - но они требуют самостоятельно поднять и настроить сервер, что само по себе задача не для новичка.
Textual-web в этом ряду занимает нишу «быстро и бесплатно для разовых задач». Не для постоянного корпоративного доступа, не для продакшена - но для того, чтобы показать инструмент, провести демонстрацию или дать коллеге разово поработать с утилитой, это самый низкий порог входа из всего, что существует.
Скажу прямо: на мой взгляд, textual-web делает SSH избыточным инструментом для большинства задач, где нужно просто показать что-то удалённому человеку. SSH создавался для постоянного защищённого доступа к серверам - и с этим он справляется отлично. Но когда нужно за две минуты дать коллеге посмотреть на работающую утилиту, настройка ключей и файрвола выглядит как попытка забить гвоздь микроскопом.
Порог входа здесь всё же есть: нужен Python на машине и базовое умение работать с терминалом. Это не инструмент для человека, который никогда не открывал командную строку. Но если терминал вам знаком - настройка займёт минут десять, и дальше вы просто отправляете ссылку.
Терминальные программы десятилетиями оставались вещью в себе - мощной, но закрытой для тех, кто не в теме. Textual-web делает маленький, но реальный пролом в этой стене. Интересно другое: как вы сейчас решаете задачу показать терминальный инструмент человеку, который не дружит с командной строкой?
Источник: textual-web