Активная разработка · v0.5.0

Незавершаемые сессии и живой контент в терминале — на всех трёх платформах

Обычно приходится выбирать: либо GPU-терминал с графикой, либо Windows, либо tmux, который ещё надо поставить и настроить. Som даёт всё сразу и из коробки: SSH-сессии, переживающие разрыв связи, картинки, видео, аудио и markdown через собственный протокол Som Rich Protocol, GPU-рендеринг, табы в заголовке окна и сплиты — одним бинарником на Windows, macOS и Linux, без установки и зависимостей.

Som: сплит с кодом слева, htop и терминал справа, таб-бар с профилями win/wsl/vpn/pi5/mac/usa
Почему лучший

Дело не в отдельных фичах — а в том, что они собраны вместе

Живучие сессии, графика в терминале, GPU-рендеринг, нативная Windows-сборка, работа без установки — по отдельности всё это где-то есть. Проблема в том, что за каждым пунктом обычно стоит другой инструмент: терминал с поддержкой графики не собирается под Windows, tmux надо ставить и настраивать на каждом сервере, портативный терминал не умеет ни того, ни другого. Som закрывает весь список одним бинарником на всех трёх платформах.

0

Установок и настроек

Скачали один файл — уже есть и сохранение сессий, и живой контент в терминале. Никакого apt install tmux на каждом сервере, никаких .tmux.conf, никаких внешних демонов для превью файлов: somsrv разворачивается на удалённый хост сам, графика включена по умолчанию.

3 / 3

Windows, macOS и Linux — на равных

Один движок, одна кодовая база, один и тот же набор возможностей на всех трёх платформах. Живучая сессия somsrv точно так же собирается в любом сочетании «клиент → хост»: с Windows на Linux-сервер, с Linux на macOS — без разницы.

100%

Rust, без компромиссов

Ни одной строчки C/C++ в логике терминала — весь стек, от GPU-рендера до PTY-обвязки и разбора протокола графики, на языке, выбранном для промышленного софта, которому нельзя падать и течь по памяти годами.

Возможности

Всё, что нужно от терминала — и ни байтом больше

В основе Som — GPUI: GPU-рендеринг и система тем без компромиссов, тот же движок, что несёт редактор Zed. Som строит на нём терминал с нуля, без редактора, LSP, AI и коллаборации — и получает скорость и стабильность, которые на голом Rust+GPU просто так не собрать.

GPU-рендеринг

Построен на GPUI — сильнейшем кроссплатформенном GUI-движке на рынке. Плавная прокрутка и отрисовка текста без лагов даже на больших scrollback-буферах.

🗂️

Табы в заголовке окна

Без отдельной полосы вкладок — табы живут прямо в title bar. Профили с иконками, быстрое переключение, drag-zone со спиннером восстановления.

Сплиты до 3 уровней

Ctrl+Shift+\ — новый сплит, направление чередуется вправо → вниз. Каждый таб хранит свою раскладку независимо, парковка при переключении.

💾

Полное восстановление сессии

Табы, сплиты, позиция и размер окна — всё в db.json. Перезапуск возвращает вас туда же, где вы остановились, без ожидания подключений.

🎨

Темы от Zed из коробки

Формат тем идентичен Zed — Catppuccin, Tokyo Night, Dracula, One Dark Pro и любые другие Zed-темы работают без конвертации.

🔤

Nerd Font и лигатуры

Полный контроль над OpenType-фичами: лигатуры, стилистические наборы, вес шрифта 100–900 — всё как в настоящем редакторском движке.

📦

Один портативный бинарник, ~40 МБ

Никакой установки и настройки: скачали som — запускается из любой папки, сразу рабочий. Ничего не тянет из сети при первом старте, не просит рантаймов и не оставляет следов в системе.

🖥️

Гибкий режим окна

Оконный / развёрнутый / полноэкранный / свёрнутый режим, точный отступ терминала от края окна, фиксированная позиция и размер запуска.

⌨️

Настраиваемые клавиши

Каждое действие — от нового таба до фокуса сплита — переопределяется в JSON. Дефолты продуманы отдельно под Windows, macOS и Linux.

🖼️

Контент прямо в терминале

Собственный протокол Som Rich Protocol: идущий в комплекте somcat выводит картинки, видео, аудио и markdown прямо в поток терминала — подробнее ниже.

📖

Открытый протокол, а не закрытая фича

SRP — не запертая внутри Som фича, а открытая спецификация: любую программу внутри PTY можно научить говорить на нём, как её учат Kitty-протоколу или Sixel. Файловый менеджер yazi уже так умеет — превью картинок, видео и аудио прямо в списке файлов, тем же протоколом, что и терминал Som.

🧰

somkey: диагностика клавиатуры

В комплекте отдельная утилита, которая рисует физическую клавиатуру и показывает, что именно движок получает от каждой клавиши — сразу видно, врёт ли KVM, раскладка ОС или всё-таки конфиг.

🎒

Всё нужное зашито внутрь

В бинарнике лежат настройки под каждую ОС, тема, шрифты (включая пропорциональный — для markdown), иконки, somsrv под все три платформы, патченный ConPTY и видеодекодер FFmpeg. Всё сжато zstd и разворачивается само при первом старте. FFmpeg отдельно урезан до используемых кодеков: вместе со сжатием это ужало пять DLL с ~18 МБ до ~2 МБ и сняло с бинарника ~15 МБ — около 29% веса.

🛟

Ошибка в конфиге не ломает работу

Невалидный JSON не роняет терминал и не сбрасывает настройки: Som покажет баннер с ошибкой и продолжит работать на последних валидных значениях, пока вы не почините файл.

Фирменная фича

somsrv: сессии, которые не умирают

Свой минималистичный аналог tmux, встроенный прямо в Som. Открыли SSH-таб с "tmux": true — и дальше связь с хостом можно рвать сколько угодно раз.

  • Закрыли Som или потеряли связь — процесс на удалённой машине продолжает работать
  • При переподключении вы видите тот же scrollback и те же запущенные программы, а не новую сессию
  • Работает и локально: shell переживает перезапуск самого Som на этой же машине
  • Автоматически подчищает осиротевшие процессы на удалённых хостах
  • Сам somsrv тоже трёхплатформенный: и хостом, и клиентом может быть Windows, macOS или Linux в любом сочетании — Windows-машина одинаково держит локальную сессию у себя и живую сессию на удалённом Linux-сервере
  • Бинарники для всех трёх платформ встроены в Som и деплоятся на сервер сами — руками ничего копировать не нужно
  • На хосте живёт полноценный headless-терминал: при реконнекте отдаётся снимок его состояния, а не «повтор последних байтов» — поэтому экран собирается корректно, с рамками, цветами и позицией курсора
  • Один демон на хост обслуживает все ваши сессии, а не по процессу на каждую вкладку
Som (клиент)
SSH-таб с tmux: true
HOLDER на удалённом хосте
Держит реальный shell и PTY, живёт независимо от Som
Разрыв связи / закрытие Som
Процесс на сервере продолжает работать как ни в чём не бывало
Повторное открытие таба
Реконнект к тому же HOLDER — тот же scrollback, тот же htop
Насыщенный контент

Som Rich Protocol — картинки, видео, звук и markdown прямо в тексте

Som реализует собственный бинарный протокол передачи насыщенного контента, поэтому somcat (идёт вместе с Som) выводит в поток терминала не мозаику из цветных символов, а настоящие изображения, проигрываемое видео, аудиодорожку с прогрессом и свёрстанный markdown. Никаких внешних демонов и оверлейных окон: всё рисуется тем же GPU-конвейером, что и текст, и ведёт себя как часть содержимого терминала. Протокол открыт, и уже сегодня им пользуется не только Som: файловый менеджер yazi показывает через него живые превью прямо в списке файлов.

🖼️

Изображения и GIF

PNG и JPEG выводятся полноцветным превью, анимированные GIF проигрываются покадрово прямо в сетке терминала. Пропорции сохраняются: картинка вписывается в отведённую область, а не растягивается под знакоместа.

🎬

Видео с управлением

Видеофайл открывается прямо в потоке терминала, с паузой, перемоткой и полосой прогресса. Данные тянутся по мере просмотра, а не грузятся целиком — 16-гигабайтный файл начинает играть так же быстро, как короткий ролик. Пока только Windows.

🎵

Аудио

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

📄

Markdown рендерится по-настоящему

README, заметка или changelog открываются полноценным документом прямо в потоке терминала — с настоящими заголовками разного уровня, списками, цитатами, разделителями, жирным и курсивом, отдельным моноширинным шрифтом для кода. Не подсветка синтаксиса поверх текста, а честный макет: то, что в исходнике «# Заголовок», на экране выглядит заголовком, а не строкой с решёткой. Это уже фундамент для куда большего — Som задуман как markdown-браузер внутри терминала, а не только как эмулятор шелла.

Контент — это настоящий текст сетки

Каждый переданный объект становится блоком Unicode-плейсхолдер-ячеек прямо в scrollback терминала, поэтому обычная обработка скролла, очистки и истории самим терминалом корректно позиционирует и прячет его — без специального кода.

🔁

Переживает разрыв SSH

Через somsrv контент восстанавливается вместе с остальным содержимым сессии: переподключились к удалённому хосту — превью на месте, перерисовывать вручную не нужно.

🚇

Файлы идут мимо PTY

Байты картинок и видео передаются отдельным бинарным каналом somsrv, а не кодируются в текстовый поток терминала. Мегабайтное превью не забивает тот же канал, по которому идут ваши нажатия клавиш.

Платформы

Windows, macOS, Linux — один код, нативная скорость

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

Windows

amd64 · встроенный патченный ConPTY из проекта Windows Terminal — без стандартных багов системной консоли.

macOS

Apple Silicon (arm64) · нативная интеграция с system title bar и жестами трекпада.

🐧

Linux

amd64 · X11 и Wayland через GPUI, somsrv деплоится и на удалённые Linux-серверы тоже.

Настройка

Один JSON-файл, живая перезагрузка

~/.config/som/settings.json — правите, сохраняете, изменения применяются мгновенно. Невалидный JSON не ломает Som — покажет баннер с ошибкой и продолжит работать на прежних настройках.

{
  "window": {
    "theme": "Nord Dark",
    "mode": "maximized",
    "selection": "#88c0d0"
  },
  "font": {
    "face": "FiraCode Nerd Font",
    "size": 14,
    "features": { "calt": true }
  },
  "tabs": [
    { "name": "local", "shell": "/bin/zsh", "default": true },
    { "name": "prod", "shell": "ssh prod-1", "tmux": true }
  ]
}

Что настраивается

Тема, шрифт и лигатуры, форма и цвет курсора, скорость прокрутки, профили вкладок с любыми командами (обычный shell, ssh, wsl), горячие клавиши на каждое действие, отступы терминала, стартовая позиция и размер окна.

Профиль по умолчанию помечается флагом "default": true — именно его открывает Ctrl+Shift+= и кнопка «+».

Темы

Формат тем как у Zed — любая Zed-тема работает без конвертации

Som поставляется с одной встроенной темой, Nord Dark. Но движок тем поддерживает произвольные JSON-файлы с ~150 цветами — те же файлы, что устанавливают в Zed.

Установка: скачайте JSON-файл темы в ~/.config/som/themes/, затем укажите в settings.json значение поля "name" из самого файла как window.theme — оно не всегда совпадает с именем файла, а некоторые файлы описывают сразу несколько вариантов.

Горячие клавиши

Продуманные дефолты, полностью переопределяемые

Все специфичные для Som действия — на Ctrl+Shift+*, чтобы не конфликтовать со стандартными системными сочетаниями.

Ctrl+Shift+=Новый таб (профиль по умолчанию)
Ctrl+Shift+10Таб из профиля 1–10
Ctrl+Shift+-Закрыть активный таб
Ctrl+Shift+\Новый сплит
Ctrl+Shift+BackspaceЗакрыть сплит
Ctrl+Shift+←/→Переключить таб
Ctrl+Shift+↑/↓Фокус между сплитами
Ctrl+=/-/0Масштаб шрифта
Ctrl+ScrollМасштаб шрифта колесом
Ctrl+Shift+C / Ctrl+VКопировать / вставить

Скачайте один файл — и всё уже внутри

Живучие SSH-сессии, картинки, видео и markdown в терминале, GPU-рендеринг — без установки и настройки, на вашей платформе. Открытый исходный код на Rust: соберите сами или возьмите готовый релиз.