Инструменты
Markdown в терминале: 14 просмотрщиков с Mermaid и без

Читать README.md и заметки прямо в терминале удобно, пока работаешь в репозитории или по SSH. Сам Markdown приятнее читать в отрендеренном виде, особенно документы с таблицами. Цель этого исследования — найти лучший просмотрщик Markdown для терминала, желательно с поддержкой Mermaid. Я взял Frogmouth как отправную точку, изучил документацию 13 альтернатив и проверил все 14 программ на документах с одинаковыми блоками. Терминальные режимы сняты в Ghostty, а mdv дополнительно проверен в GUI, который запускается из CLI. Ниже видно не только результат рендера Mermaid, но и часть полезных режимов чтения; графики других форматов и отдельные изображения я систематически не тестировал.
Мой топ-3 для Mermaid в терминале по этим снимкам: Markless — обе схемы и навигация; markdown-reader — чтение целого репозитория; glowm — графические схемы, но нужен Chrome или Chromium. mdv — отдельный удачный GUI, запускаемый из CLI. Frogmouth остаётся моим любимым просмотрщиком обычного Markdown, хотя Mermaid пока показывает кодом.
Что считать поддержкой Mermaid
Mermaid — текстовый язык для схем: блок с пометкой mermaid описывает узлы и связи, а просмотрщик решает, как их показать. В терминале встречаются три разных результата:
Фрагмент README.md
## Как показать документ
```mermaid
flowchart LR
A["Markdown-файл"] --> B{"Mermaid?"}
B -->|да| C["Показать схему"]
B -->|нет| D["Показать код"]
```
mermaid, справа схема из него. Это иллюстрация, а не снимок просмотрщика. Синтаксис flowchart.- Символьная схема. Линии и блоки нарисованы знаками терминала. Она работает в SSH и мультиплексорах без протокола картинок, но сложная схема может быть упрощена.
- Изображение внутри терминала. Схема похожа на привычный рендер Mermaid. Нужна поддержка Kitty, iTerm2 или Sixel либо символьный запасной режим. Внешний
mermaid-cliможет потребовать Chromium. - Исходный код. Просмотрщик знает про блок Mermaid, но показывает его текст. Для задачи «читать схемы» этого недостаточно.
Разница важна даже для одного инструмента: в обычном терминале он может показывать картинку, а внутри tmux — код. Поэтому «поддерживает Mermaid» ещё не означает, что схему увидите в своём окружении.
Скриншоты и режимы
Размеры ниже — ориентиры для macOS: размер исполняемого файла либо Python-окружения с зависимостями.
Метка Mermaid отмечает программы, у которых в проверенном режиме обе тестовые схемы — flowchart и sequenceDiagram — получились читаемыми с подписями. У mdv это относится к GUI. Другие типы схем этой меткой не оценены.



Frogmouth — мой любимый просмотрщик Markdown; пользуюсь им с весны. Ценю за локальные ссылки, оглавление, историю и закладки. В моём тесте Mermaid остался исходным кодом; запрос на его поддержку на дату проверки 26 сентября 2026 года открыт.
Установка
pipx install frogmouthРазмер утилиты для macOS: ≈18 МиБ (окружение Python с зависимостями).



Обе схемы отрисованы картинками с подписями; длинная последовательность продолжается ниже окна. Markless получает изображение из SVG и при необходимости показывает его полублоками. Есть оглавление, поиск, переходы по ссылкам и слежение за файлом; история и закладки в README не заявлены.
Установка
cargo install marklessРазмер утилиты для macOS: ≈39 МиБ (исполняемый файл).


Встроенный рендерер показал контуры и стрелки без подписей узлов. mdfried умеет искать по тексту, переходить к заголовкам и локальным ссылкам, открывать Markdown по URL. По документации доступен внешний mermaid-cli, но этот режим я не проверял. Для картинок предусмотрены Kitty, iTerm2, Sixel и запасной вывод через chafa.
Установка
cargo install mdfried --no-default-features --features mermaidВ Ghostty — без chafa. Размер утилиты для macOS: ≈183 МиБ (исполняемый файл).



Обе схемы стали символами; в Ghostty крупные кириллические заголовки разрежены и обрезаны. mdroll показывает GFM и переключает исходник с рендером; по документации для других типов Mermaid может вызывать mmdc. Для крупных заголовков README проекта описывает DECDHL или растровый шрифт и называет WezTerm референсным терминалом. В Ghostty заголовки обрезались даже при 123 столбцах; флаг -z отключил этот режим, что видно на третьем кадре.
Установка
cargo install --locked --git https://github.com/tokuhirom/mdrollРазмер утилиты для macOS: ≈8 МиБ (исполняемый файл).


При 123 столбцах обе схемы помещаются рядом с деревом файлов. Есть вкладки, поиск по проекту и редактирование блоков. Автор заявляет локальный Rust-рендерер для 16 типов Mermaid; все типы я не проверял, а внутри tmux вместо картинки видел исходник.
Установка
cargo install markdown-tui-explorerРазмер утилиты для macOS: ≈13 МиБ (исполняемый файл).



Flowchart помещается при 123 столбцах; sequenceDiagram в моём тесте вывелась некорректно. mdterm рисует flowchart и graph символами, даёт поиск, оглавление, ссылки, вкладки, автоперезагрузку и режим слайдов.
Установка
cargo install mdtermРазмер утилиты для macOS: ≈9 МиБ (исполняемый файл).


Символьная схема получилась крупной; часть подписей теснится в панели. viewmd строит схему через beautiful-mermaid. Есть закреплённые заголовки, боковое оглавление и Markdown-ссылки, а обычные изображения показаны ссылками.
Установка
npm install -g viewmd-cliРазмер утилиты для macOS: ≈77 МиБ (исполняемый файл).


Символьный flowchart читается; на обзорном кадре текст Markdown-ссылки пропал. veol строит схемы символами без браузера и подпроцессов; автор заявляет 18 типов Mermaid, но все типы и сложные схемы я не проверял. Есть постраничное чтение, поиск и оглавление.
Установка
cargo install --git https://github.com/guiwohl/veolРазмер утилиты для macOS: ≈6 МиБ (исполняемый файл).



На тестовом файле вместо схем видны заглушки Mermaid. Компактный интерфейс bmd даёт оглавление и поиск. Навигация по Markdown URL и закладки в README не заявлены.
Установка
cargo install bmdРазмер утилиты для macOS: ≈17 МиБ (исполняемый файл).


При 123 × 35 символах flowchart читается; последовательность продолжается ниже окна. innomd рисует Mermaid и PlantUML символами и умеет следить за изменениями файла.
Установка
pipx install innomdРазмер утилиты для macOS: ≈8 МиБ (окружение Python с зависимостями).



Flowchart поместился при 123 столбцах; sequenceDiagram показана после прокрутки. glowm выводит Markdown в ANSI, Mermaid — картинкой; поддерживает stdin и PDF, а для схем ему нужен Chrome или Chromium.
Установка
go install github.com/atani/glowm/cmd/glowm@latestРазмер утилиты для macOS: ≈24 МиБ (исполняемый файл).


В терминальном режиме видны карточки со статусом рендера, а не сами схемы. mdviewer рендерит Mermaid через headless Chrome; заявлены Obsidian-ссылки и экспорт. Карточки показывают статус и размеры схем.
Установка
go install github.com/aquele_dinho/mdviewer/cmd/mdviewer@latestРазмер утилиты для macOS: ≈19 МиБ (исполняемый файл).


Обе схемы нарисованы символами; русские подписи переносятся в узких узлах. mdr — TUI на Zig с символьной поддержкой flowchart, sequence, class, state и ER.
Установка
mkdir -p ~/.local/bin && curl -fsSL https://github.com/unexge/mdr/releases/latest/download/mdr-aarch64-macos.tar.gz | tar -xz -f - -C ~/.local/bin --strip-components=1 mdr-aarch64-macos/mdrКоманда для macOS на Apple Silicon. Размер утилиты для macOS: ≈15 МиБ (исполняемый файл).



mdv стал для меня открытием. Хотя его лучший в этом тесте режим — отдельное графическое окно, я запускаю его одной командой из терминала, и он уже вошёл в мой консольный инструментарий. Удобно быстро открыть README.md или директорию с Markdown-документами, пройти по оглавлению и обратным ссылкам; обе проверенные Mermaid-схемы в GUI видны с подписями. Для чтения документации mdv начинает перетягивать на себя часть задач, ради которых я раньше открывал Obsidian. По документации проекта входные данные здесь — Markdown-файл, директория с такими файлами или Markdown из stdin: изображения, таблицы из CSV/TSV-блоков и формулы показываются внутри Markdown, а PDF можно экспортировать. Как отдельный просмотрщик PDF, CSV или изображений mdv не заявлен. mdv --gui --sidepanel . открывает директорию с боковой панелью, mdv --gui README.md — один файл. Режим --tui запустился в PTY, но Mermaid в нём не проверялся; --console в нашем тесте показал почти сырой Markdown и оставил Mermaid исходным кодом.
Установка
curl -fsSL https://raw.githubusercontent.com/thgossler/mdv/main/scripts/install.sh | shОфициальный скрипт для macOS и Linux. Размер утилиты для macOS: ≈99 МиБ (исполняемый файл).
Markdown и Mermaid внутри cmux
В cmux есть встроенный просмотрщик Markdown для тех, кто уже работает в его терминале. В установленной версии 0.64.22 команда открывает файл в панели рядом с терминалом:
cmux markdown open README.md
mermaid.md в cmux: исходник слева, две схемы справа.Панель обновляется после изменения файла. Markdown отображается в WKWebView: marked разбирает текст, highlight.js подсвечивает код, github-markdown-css оформляет документ, а Mermaid.js рисует блоки с пометкой mermaid. Все эти компоненты включены в cmux, поэтому для просмотра не нужен CDN. Схемы выводятся в графической панели рядом с терминалом и не зависят от протокола показа изображений в терминальном потоке. Панель cmux вынесена за рамки рейтинга 14 самостоятельных программ.
Как сняты кадры
Для 13 программ использованы два одинаковых синтетических файла: первый с заголовками, таблицей и ссылкой, второй с flowchart и sequenceDiagram. Для дополнительных кадров сделаны документ с оглавлением, задачами и GFM-примечанием и файл с тремя слайдами. Терминальные снимки сделаны в активном окне Ghostty 1.3.1 с Hack Nerd Font Mono 23,5 pt, без tmux; фактическая сетка — 123 × 35 ячеек. Перед запуском каждой программы я дождался полного размера окна и снял переменную NO_COLOR. GUI-кадры mdv сняты в отдельном окне приложения, запущенного из CLI. На них окно сохранено целиком, включая заголовок и нижнюю строку; удалён только фон за скруглёнными углами. Нажмите на кадр для полного размера.
Скачать файлы для повторения: demo.md — Markdown с таблицей, mermaid.md — две схемы, guide.md — локальная ссылка из первого файла.
SSH, tmux и Zellij
При работе по SSH символьные схемы остаются обычным текстом. Для Mermaid-картинки нужна поддержка на всём пути от просмотрщика до локального терминала. Протокол Kitty допускает передачу изображения с удалённой машины прямо в потоке терминала; ссылка на файл на удалённом диске локальному терминалу не поможет.
Мультиплексор добавляет ещё одно звено. tmux может отбрасывать незнакомые графические последовательности; для его режима passthrough нужна настройка allow-passthrough, а программе — соответствующий способ передачи. Это не гарантия работы любой схемы. В нашем раннем тесте mdfried внутри tmux в Terminal.app перешёл к символьному выводу через chafa; прямой запуск в Ghostty 1.3.1 показал картинку. Такой результат относится к проверенной связке, а не ко всем установкам tmux.
Zellij 0.45 добавил поддержку Kitty Graphics Protocol наряду с Sixel. Ему всё равно нужен терминал с подходящим протоколом; настройка Zellij позволяет отключить поддержку Kitty-графики. Для конкретного просмотрщика в SSH, tmux или Zellij вид схемы нужно проверять отдельно. SSH и Zellij на этих документах я не тестировал; все графические результаты на снимках выше получены в Ghostty без мультиплексора.
Что такое chafa
chafa — отдельная утилита для вывода изображений в терминале. Она может преобразовать картинку в цветные символы ANSI/Unicode или передать её через поддерживаемый графический протокол. В нашем тесте с mdfried она служила запасным способом показать уже отрендеренную Mermaid-схему. Сама chafa не разбирает Markdown и не строит схему из кода Mermaid; поэтому при плохом символьном выводе смена шрифта не всегда исправляет картинку.
Шрифт на снимках
Все терминальные кадры статьи сделаны в Ghostty 1.3.1 с Hack Nerd Font Mono: размер 23,5 pt, окно 123 × 35 ячеек, без tmux. Это моноширинная версия Hack с кириллицей и дополнительными значками Nerd Fonts. Её же я выбрал для крупных заголовков mdfried. Первый тест с неустановленным Driod Sans Mono Dotted for Powerline дал искажённые знаки; после выбора существующего шрифта заголовки стали читаемыми.
Параметры окна при съёмке:
font-family = Hack Nerd Font Mono
font-size = 23.5
window-width = 123
window-height = 35
Фактическую сетку проверял через stty size. Именно с этими настройками следует сравнивать подписи и псевдографику на снимках; другой шрифт или размер окна могут изменить вид схем.
Термины
- TUI — интерактивный интерфейс внутри терминала, обычно с навигацией с клавиатуры.
- GFM — вариант Markdown с таблицами, списками задач и другими расширениями GitHub.
- Kitty, iTerm2, Sixel — способы показать изображение прямо внутри терминала.
mermaid-cli/mmdc— внешняя команда, которая превращает описание Mermaid в изображение.chafa— отдельная утилита, которая показывает готовые изображения в терминале через графический протокол или символы ANSI/Unicode.- Полублоки — символы верхней и нижней половины ячейки терминала, из которых собирают приближённую картинку.
Налаживаете работу с ИИ-агентами?
Помогаю командам освоить агентную разработку и настроить проверяемый рабочий процесс. Практические заметки между статьями выходят в Telegram-канале.