Бесконечный холст для терминалов как Horizon меняет работу с консолью
Знакомая ситуация: у вас открыто десять вкладок в iTerm или Windows Terminal, и вы постоянно переключаетесь между ними, пытаясь вспомнить, где крутится лог бэкенда, а где запущен воркер. Вкладки скрывают контекст, а тайлинг в духе tmux или iTerm быстро превращает экран в нечитаемую сетку из мелких окошек.
Недавно наткнулся на проект Horizon, который предлагает совсем другой подход. Вместо вкладок здесь бесконечный 2D-холст, как в Figma или Miro, на который можно «набросать» сколько угодно терминальных панелей.
Что это такое
Horizon — это терминал с GPU-ускорением, написанный на Rust. Его главная фишка в том, что ваши сессии не заперты в рамках одного окна. Вы создаете рабочие пространства, размещаете там панели, меняете их размер и группируете как удобно.
Автор проекта явно вдохновлялся тем, как работают современные инструменты дизайна. Здесь есть миникарта в углу, навигация через пробел и левый клик (pan) и зум через Ctrl+скролл. Это звучит странно для терминала, пока не попробуешь раскидать логи, SSH-сессии и AI-агентов по разным частям холста.
Чем он хорош на практике
Первое, что бросается в глаза — скорость. Внутри стоит движок от Alacritty, так что задержек ввода нет, всё отрисовывается через wgpu. Но интереснее заглянуть в возможности, которые выходят за рамки простого эмулятора.
AI-агенты как часть интерфейса
Сейчас многие используют CLI-инструменты вроде Claude Code или Gemini CLI. В Horizon они интегрированы на уровне панелей. Есть даже дэшборд, который в реальном времени считает, сколько токенов вы потратили на того или иного агента. Если агент поддерживает сохранение сессии, Horizon подхватит её при перезагрузке.
Умная работа с Git и файлами
Вместо того чтобы постоянно вводить git status, можно вынести отдельную панель Git Changes. Она следит за репозиторием в фоне и показывает диффы прямо в интерфейсе. Ещё Horizon умеет «видеть» пути к файлам и URL в выводе терминала. Кликнули с зажатым Ctrl — и ссылка открылась в браузере или файл открылся в редакторе.
Навигация по SSH
Для тех, кто постоянно прыгает по серверам, есть оверлей Remote Hosts (вызывается через Ctrl+Shift+H). Он сам парсит ваш SSH-конфиг и данные Tailscale. Нашли нужный хост, нажали Enter — и новая панель с сессией уже на холсте. Все удаленные сессии автоматически группируются в отдельное рабочее пространство.
Техническая начинка
Проект собран на довольно свежем стеке:
- Rust (Edition 2024) — гарантия того, что всё не упадет с сегфолтом в самый неподходящий момент.
- egui — библиотека для интерфейса. Это immediate-mode UI, который работает очень плавно благодаря GPU-рендерингу.
- Catppuccin — по дефолту используются темы Mocha и Latte, так что выглядит терминал «из коробки» очень приятно.
Интересно, что настройки хранятся в обычном YAML и меняются через встроенный редактор с подсветкой синтаксиса. Причем изменения применяются мгновенно, без перезагрузки приложения.
workspaces:
- name: Backend
cwd: ~/projects/api
panels:
- kind: shell
- kind: claude
- kind: git_changes
Как это использовать
Самый логичный сценарий — разделить контексты. Например, создать один Workspace для фронтенда, другой для API, третий для деплоя. Между ними можно мгновенно переключаться через Quick Nav (Ctrl+Shift+K).
Если вы случайно закроете приложение, Horizon восстановит всё: положение панелей на холсте, историю команд и даже то, в каком месте скролла вы остановились.
Для тех, кто любит порядок, есть режимы авто-выравнивания: можно заставить панели выстроиться в сетку, колонки или ряды одной кнопкой, а потом снова перейти в свободный режим «хаоса».
Стоит ли пробовать
Horizon сейчас активно развивается, и это видно по списку коммитов. У него пока не так много звезд (около 650), но архитектурно он выглядит очень крепко.
Кому он зайдет:
- Разработчикам, которым тесно в рамках обычных вкладок.
- Тем, кто плотно работает с AI-инструментами в консоли.
- Любителям Rust-тулз и высокой производительности.
Из минусов — нужно привыкнуть к управлению. Большинство шорткатов используют связку Ctrl+Shift, чтобы не конфликтовать с системными командами или тем же Vim внутри терминала.
Попробовать просто: есть бинарники под все платформы (Linux, macOS, Windows) и поддержка пакетных менеджеров вроде Homebrew или WinGet.
brew install peters/horizon/horizon
Если вы ищете способ упорядочить свой рабочий процесс в консоли и перестать теряться в бесконечных окнах, Horizon — это, пожалуй, самый свежий взгляд на проблему за последние пару лет.
