
Как я не нашёл нормальную альтернативу WinSSHTerm на macOS, психанул и написал свою
bekhzad-khamidullaev 58 минут назад Как я не нашёл нормальную альтернативу WinSSHTerm на macOS, психанул и написал свою Простой 4 мин 1.8K macOS * Linux * Из песочницы TL;DRПосле перехода на macOS я не нашёл SSH-клиент,...
Значимый прорыв формирует отрасль ИИ: bekhzad-khamidullaev 58 минут назад Как я не нашёл нормальную альтернативу WinSSHTerm на macOS, психанул и написал свою Простой 4 мин 1. 8K macOS * Linux * Из песочницы TL;DRПосле перехода на macOS я не нашёл SSH-клиент, который закрывает мой ежедневный сценарий так же удобно, как WinSSHTerm. Устал от постоянных компромиссов, сформулировал требования, собрал свой клиент и выложил код в open source.
РепозиторийКонтекстЕсли работаешь с несколькими серверами, почти любой SSH-клиент «как-то» подходит. Если работаешь с десятками и сотнями хостов каждый день, важны уже не фичи на слайде, а скорость и предсказуемость:насколько быстро находишь нужный хост;сколько действий до подключения;насколько удобно держать в порядке структуру окружений;как приложение ведёт себя после месяца активного использования. На Windows меня в этом плане долго выручал WinSSHTerm.
Технические детали
После перехода на macOS я рассчитывал найти аналог за один вечер. Что не устроило в существующих решенияхЯ не искал «идеал». Я искал инструмент, который не мешает работать.
Проблемы повторялись от клиента к клиенту:Слишком длинный путь до сессииГлавный сценарий должен быть быстрым, но часто он утопал в лишних кликах. Слабая организация большого пула хостовКогда у тебя много окружений и проектов, без нормальных групп, тегов и поиска всё превращается в хаос. Перегруженный интерфейсКрасивые панели и «богатый UI» часто ухудшали то, ради чего приложение открывается: подключение и работа.
Неудобная переносимость настроекХотелось прозрачной конфигурации, которую легко хранить, переносить и версионировать. Через несколько недель тестов я поймал себя на мысли: я трачу больше времени на борьбу с инструментом, чем на решение задач. Почему решил писать своёПричина не в том, что «все вокруг сделали плохо».
Отраслевые последствия
Причина в том, что у меня был конкретный набор требований под конкретную ежедневную нагрузку. Я сел и формализовал, что именно считаю обязательным:старт и подключение максимально быстро;поиск по имени/IP/тегам;структура групп по окружениям и проектам;горячие клавиши для частых операций;предсказуемое хранение конфигурации;минимум визуального шума;стабильное поведение при большом списке хостов. После этого стало понятно: проще собрать свой инструмент, чем бесконечно адаптироваться к чужим компромиссам.
Принципы, на которых строил клиент1) Local-firstОсновной сценарий должен работать быстро и без сетевых зависимостей. Данные о хостах и сессиях доступны локально, UI не ждёт «внешних сервисов», чтобы открыть список. 2) Быстрее к подключениюЛюбая функция оценивается вопросом: ускоряет ли она путь до активной сессии?
3) Предсказуемость важнее «магии»Лучше чуть меньше «авто-умностей», но понятная и контролируемая логика. 4) Конфиг как активКонфигурация должна быть:читаемой человеком;пригодной для бэкапа;переносимой между машинами;удобной для Git. Архитектура (высокоуровнево)Я разделил приложение на несколько независимых слоёв:UI LayerСписок хостов, поиск, фильтры, карточка сессии, быстрые действия.
Событие, по словам экспертов, усилит конкуренцию в сфере ИИ.





