Больше не нужно переключаться между терминалом и браузером ради одного Markdown-файла
Знакомая история: вы пишете документацию в Vim или VS Code, а потом постоянно прыгаете в браузер, чтобы проверить, не поехала ли верстка таблиц или как там выглядят вложенные списки. Вроде бы мелочь, но этот постоянный Alt-Tab дико сбивает фокус. Можно, конечно, поставить тяжеловесные плагины для предпросмотра, но иногда хочется чего-то быстрого, легкого и прямо в консоли.
Недавно я наткнулся на leaf — проект на Rust, который позиционирует себя как просмотрщик Markdown с «ощущением GUI», оставаясь при этом полноценной TUI-утилитой.
Что это такое и зачем оно в вашем тулбоксе
Если вкратце, leaf берет ваш .md файл и превращает его в интерактивную страницу прямо внутри эмулятора терминала. Это не просто cat с раскраской синтаксиса. Здесь есть полноценная навигация, поиск и даже поддержка сложных штук вроде формул LaTeX.
Проект совсем свежий (ему чуть больше пары месяцев активной разработки), но уже сейчас он выглядит на голову выше многих аналогов. Основная фишка в том, что автор попытался перенести привычные паттерны из браузерных просмотрщиков в консоль: кликабельные ссылки, оглавление в боковой панели и автоматическое обновление при изменении файла.
Четыре повода попробовать leaf в деле
1. Живой предпросмотр без лишних движений
Самый полезный режим, на мой взгляд — это --watch. Вы открываете leaf в соседнем сплите терминала, и как только сохраняете файл в редакторе, просмотрщик тут же обновляет картинку. Никаких ручных обновлений или перезапусков команды.
leaf --watch README.md
2. Интерактивный поиск и навигация
Внутри утилиты работают привычные биндинги: j/k для скролла, / для поиска по тексту. Но есть и киллер-фича — боковая панель с оглавлением (вызывается на t). Если вы читаете огромный технический документ, перемещаться по заголовкам так гораздо удобнее, чем просто листать экран за экраном.
3. Математика и диаграммы
Обычно терминальные просмотрщики спотыкаются на чем-то сложнее списков. leaf умеет рендерить LaTeX-формулы и даже превращает блоки кода Mermaid в ASCII-диаграммы. Конечно, это не идеальная графика, но для понимания структуры схемы в консоли этого более чем достаточно.
4. Работа в связке с AI и конвейерами
Инструмент отлично дружит с пайпами. Например, если вы используете CLI для работы с LLM (вроде Claude или ChatGPT), можно прокинуть ответ от нейронки сразу в leaf, чтобы прочитать отформатированный ответ с подсветкой кода, а не сырую простыню текста.
claude "объясни разницу между ARC и RC в Rust" | leaf
Под капотом и настройка
Проект написан на Rust, что уже гарантирует неплохую скорость работы. Устанавливается он одной командой через curl или npm, а для пользователей Arch Linux даже есть пакет в AUR.
Интересно реализована система конфигов. Через leaf --config можно поменять тему оформления (есть классические Solarized и Ocean) или добавить поддержку расширений. По умолчанию leaf ищет только .md, но если вы часто читаете логи или конфиги, можно заставить его открывать .txt, .rs или .json — они будут отображаться с подсветкой синтаксиса.
Интеграция с Vim
Для тех, кто не хочет выходить из редактора, автор предлагает простую привязку в .vimrc:
nnoremap <Leader>md :vertical botright terminal leaf -w %<CR>
Теперь по нажатию пары клавиш рядом с кодом открывается терминальный сплит с живым превью. Это практически превращает Vim в полноценную IDE для документации.
Стоит ли переходить?
Проект leaf — это не про революцию, а про комфорт. Да, он не заменит полноценный браузерный рендеринг, если вам нужно видеть идеальные шрифты и картинки в высоком разрешении. Но для быстрой проверки документации, чтения README в репозиториях или работы с выводами AI-агентов это один из самых приятных инструментов на сегодня.
Из минусов можно отметить, что на Windows иногда приходится возиться с рантаймом Visual C++, но это скорее особенность платформы. В остальном — это крепкий, быстрый и очень аккуратно сделанный инструмент, который просто делает свою работу.
Если вы проводите в терминале больше времени, чем в браузере, leaf определенно заслуживает места в вашем /usr/local/bin.
