Mermaid CLI
Проект Mermaid, участники на GitHub · лицензия MIT
Рисует схему процесса из короткого текста и сохраняет её в SVG, PNG или PDF. В Markdown меняет блоки mermaid на готовые картинки.
✓ Проверено 08.10.2026: Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере, от root: Node.js 22.23.3 и npm 10.9.9 из образа, Mermaid CLI 12.0.0 из npm, браузер Chrome for Testing 154 от Puppeteer, библиотеки Chrome и poppler-utils из apt. Что именно проверяли
Какую задачу решает
Рисует схему из короткого текста на языке Mermaid: порядок работы с заявкой, этапы сделки, связи между сервисами. Готовую схему сохраняет в SVG, PNG или PDF, а в Markdown заменяет блоки mermaid картинками.
- Из файла .mmd делает SVG с подписями на русском, шрифты встраивает в файл.
- Сохраняет PNG с тёмной темой или прозрачным фоном. Ключ --size пробует довести картинку до заданного размера, у нашей высокой схемы с --size 1600 высота вышла ровно 1600 точек.
- Делает PDF по размеру схемы, подписи в нём остаются текстом и ищутся.
- Проходит по файлу Markdown, рисует каждую схему отдельной картинкой и ставит на её место ссылку.
- В нашем прогоне схема с синтаксической ошибкой дала код 1 и сообщение с номером строки, картинка не появилась.
Пример результата
Говоришь агенту
В папке docs лежит flow.mmd со схемой обработки заявки. Нарисуй её в SVG, PDF и PNG с ключом --size 1600, проверь размер картинки и что все подписи на месте, и сделай вариант PNG с тёмной темой на прозрачном фоне.
Что получится
В папке появятся flow.svg, flow.png, flow.pdf и flow-dark.png. Агент найдёт подписи в SVG и вытащит текст из PDF. Мы прогнали этот сценарий на тестовой схеме из пяти шагов: все подписи нашлись в SVG и PDF, PNG у этой высокой схемы вышел 1099 на 1600 точек (у другой схемы размер может отличаться, агент его проверит), PDF занял одну страницу по размеру схемы, исходный flow.mmd не изменился.
Паспорт
- Кто делает
- Проект Mermaid, участники на GitHub
- Сайт
- mermaid.js.org
- Исходный код
- github.com/mermaid-js/mermaid-cli
- Лицензия
- MIT
- Версия
- 12.0.0 на 08.10.2026
- Системы
- macOS · Windows · Linux
- Где работает
- На компьютере, на сервере и в контейнере
- Цена
- Бесплатно
- Проверка
- Проверено 08.10
Установить агентом
Установи программу «Mermaid CLI». Работай по шагам и после каждого коротко говори, что сделал.
Что это за программа (каталог smyslokod.ru, официальные источники сверены 08.10.2026):
- официальный сайт: https://mermaid.js.org/
- исходный код: https://github.com/mermaid-js/mermaid-cli
- инструкция по установке: https://github.com/mermaid-js/mermaid-cli#installation
- актуальная версия на 08.10.2026: 12.0.0
- лицензия: MIT
- для работы нужно (обязательно): Node.js 22.13 или новее - программа написана на JavaScript и ставится через npm
- для работы нужно (обязательно): Chrome for Testing - схему рисует браузер, npm скачивает его сам при установке
- для работы нужно (обязательно): Библиотеки Chrome из пакетов Linux - браузер без них не запускается. На компьютере с рабочим столом они обычно уже стоят, на чистом сервере или в контейнере их ставят отдельно по списку Puppeteer для Debian и Ubuntu
Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
5. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
6. Ключ --no-sandbox ставь, если работаешь от root в одноразовом контейнере и рисуешь мои схемы. Скажи мне, что включил его.
7. Наборы значков по адресу (--iconPacksNamesAndUrls) подключай только с моего «да», назови адрес.
8. Готовые картинки сохраняй под новыми именами, существующие файлы не перезаписывай. После сборки проверь, что все подписи схемы на месте.
Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
- на компьютере: ставится через npm, если стоит Node.js 22.13 или новее. Вместе с программой скачивается браузер Chrome for Testing.
- на сервере: окно не нужно, браузер работает без экрана. На сервере без рабочего стола понадобятся пакеты с библиотеками Chrome.
- в контейнере: мы проверяли в контейнере Ubuntu 24.04 от root, с файлом настроек Puppeteer, где указан --no-sandbox, так советует документация проекта. У проекта есть и свой образ Docker minlag/mermaid-cli, его мы не запускали.
1. Проверь, не стоит ли программа уже: mmdc --version ; which -a mmdc. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Проверь, что есть всё нужное для работы: Node.js 22.13 или новее, Chrome for Testing, Библиотеки Chrome из пакетов Linux. Чего нет, внеси в план отдельным пунктом. Проверь свободное место на диске: нужно В нашем прогоне пакет npm с зависимостями занял 453 МБ, браузер в ~/.cache/puppeteer ещё 656 МБ, всего около 1,1 ГБ. Пакеты Linux с библиотеками Chrome занимают место сверх этого, сколько именно, мы не записали. Сколько займёт установка через Homebrew, мы не мерили..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
Способы из официальных источников:
- macOS, Homebrew: brew install mermaid-cli (формула на 08.10.2026 ставит 12.0.0 и тянет за собой node. README проекта называет этот способ неподдерживаемым. На Mac мы не проверяли)
- Любая система, npm: npm install -g @mermaid-js/mermaid-cli@12.0.0 (так мы ставили в прогоне, ушло 85 секунд. Команда из README без номера версии ставит последнюю. При установке npm скачивает Chrome for Testing в ~/.cache/puppeteer)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
- mmdc --version: программа запускается без ошибки;
- Сделай файл flow.mmd с блок-схемой из пяти шагов с русскими подписями. Нарисуй SVG, PNG высотой 1600 точек, PDF и PNG с тёмной темой на прозрачном фоне. Проверь, что все подписи есть в SVG и в тексте PDF. Переведи файл Markdown с блоком mermaid в Markdown со ссылкой на картинку. Убедись, что схема с ошибкой даёт код 1 и картинки не создаёт. Сверь контрольные суммы исходных файлов до и после. Делай это во временной папке и не трогай мои файлы.
mmdc --version
mmdc -p puppeteer-config.json -i docs/flow.mmd -o docs/flow.svg
mmdc -p puppeteer-config.json -i docs/flow.mmd -o docs/flow.png -b white --size 1600
mmdc -p puppeteer-config.json -i docs/flow.mmd -o docs/flow.pdf
mmdc -p puppeteer-config.json -i docs/flow.mmd -o docs/flow-dark.png -t dark -b transparent
mmdc -p puppeteer-config.json -i docs/readme.md -o docs/readme-out.md
mmdc -p puppeteer-config.json -i docs/broken.mmd -o docs/broken.svg
pdftotext docs/flow.pdf flow-pdf.txt
- если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS и Linux, кэш браузера Puppeteer: rm -rf ~/.cache/puppeteer; macOS, Homebrew: brew uninstall mermaid-cli; npm: npm uninstall -g @mermaid-js/mermaid-cli).
Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/mermaid-cli#problemyПромпт собран из официальных инструкций, сверенных 08.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.
Как ставят вручную
Способы из официальных источников, у каждого ссылка на первоисточник.
macOS · Homebrew · источник
brew install mermaid-cli
формула на 08.10.2026 ставит 12.0.0 и тянет за собой node. README проекта называет этот способ неподдерживаемым. На Mac мы не проверяли
Любая система · npm · источник
npm install -g @mermaid-js/mermaid-cli@12.0.0
так мы ставили в прогоне, ушло 85 секунд. Команда из README без номера версии ставит последнюю. При установке npm скачивает Chrome for Testing в ~/.cache/puppeteer
Как удалить
- macOS и Linux, кэш браузера Puppeteer:
rm -rf ~/.cache/puppeteer - macOS, Homebrew:
brew uninstall mermaid-cli - Любая система, npm:
npm uninstall -g @mermaid-js/mermaid-cli
Что нужно для работы
- Node.js 22.13 или новее (обязательно) - программа написана на JavaScript и ставится через npm
- Chrome for Testing (обязательно) - схему рисует браузер, npm скачивает его сам при установке
- Библиотеки Chrome из пакетов Linux (обязательно) - браузер без них не запускается. На компьютере с рабочим столом они обычно уже стоят, на чистом сервере или в контейнере их ставят отдельно по списку Puppeteer для Debian и Ubuntu
Системы
- macOS - ставится через npm или Homebrew. Готовые сборки Homebrew есть для Apple silicon. README проекта называет способ через brew неподдерживаемым. На Mac мы не проверяли.
- Windows - тот же пакет npm. По документации Puppeteer скачивает Chrome и для Windows. На Windows мы не проверяли.
- Linux - в нашем прогоне на чистой Ubuntu 24.04 браузеру не хватило 14 системных библиотек, после установки пакетов из списка Puppeteer всё заработало. Под root нужен файл настроек с --no-sandbox.
Где запускать
Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.
- На компьютере - ставится через npm, если стоит Node.js 22.13 или новее. Вместе с программой скачивается браузер Chrome for Testing.
- На сервере - окно не нужно, браузер работает без экрана. На сервере без рабочего стола понадобятся пакеты с библиотеками Chrome.
- В контейнере - мы проверяли в контейнере Ubuntu 24.04 от root, с файлом настроек Puppeteer, где указан --no-sandbox, так советует документация проекта. У проекта есть и свой образ Docker minlag/mermaid-cli, его мы не запускали.
Сколько ресурсов нужно
- Место на диске
- В нашем прогоне пакет npm с зависимостями занял 453 МБ, браузер в ~/.cache/puppeteer ещё 656 МБ, всего около 1,1 ГБ. Пакеты Linux с библиотеками Chrome занимают место сверх этого, сколько именно, мы не записали. Сколько займёт установка через Homebrew, мы не мерили.
- Видеокарта
- В нашем прогоне видеокарта не понадобилась.
- Сеть
- Для установки нужна сеть: пакеты скачиваются с registry.npmjs.org, браузер Chrome for Testing с storage.googleapis.com. В прогоне apt ставил библиотеки Chrome и poppler-utils для проверки PDF и ходил к archive.ubuntu.com, security.ubuntu.com и deb.nodesource.com, этот источник Node.js прописан в образе песочницы. За время задачи netwatch записал шесть соединений, все с собственным браузером программы на 127.0.0.1, внешних соединений не было. Наборы значков по адресу (--iconPacksNamesAndUrls) по справке скачиваются во время работы.
Первая схема в SVG вместе с запуском браузера рисовалась 4,9 секунды.
Лицензия и платные замены
Лицензия MIT. Свободная лицензия, текст лежит в репозитории. Текст лицензии
Цена: Бесплатно. Программа бесплатная, а у команды Mermaid есть отдельный платный облачный сервис Mermaid Chart.
Платные замены
- Mermaid Chart - Облачный редактор схем Mermaid от команды проекта, работает по подписке. Цены на странице тарифов мы сверить не смогли, оплату из России не проверяли.
Бесплатные замены
- Mermaid Live Editor - Редактор схем Mermaid в браузере для человека: пишешь текст и сразу видишь схему.
- Graphviz - Рисует схемы связей из текста на своём языке dot.
О чём помнить
- Безопасность. Агент запускает mmdc в терминале сам (exec). Программа читает файл схемы или Markdown, файлы настроек и CSS, которые ей передали (read), и пишет SVG, PNG, PDF или Markdown с правами пользователя по пути, который агент задаёт ключом -o (write). Без -o файл ложится рядом с исходным, при входе Markdown рядом с выходным ложатся и картинки. Для работы она запускает браузер Chrome. Удаление кэша браузера командой rm -rf ~/.cache/puppeteer стирает файлы (acts): агент делает это только после проверки, что папка не нужна другим программам, и с твоего «да». Входа в аккаунты и ключей программа не просит.
- Под root браузер не стартует: «Running as root without --no-sandbox is not supported». Документация проекта советует запускать программу от обычного пользователя. Если без root нельзя, ей передают файл настроек Puppeteer с --no-sandbox. Ключ отключает песочницу браузера, поэтому так стоит рисовать только свои схемы.
- Удаление пакета через npm браузер не стирает: в нашем прогоне ~/.cache/puppeteer после npm uninstall остался на месте и занимал 656 МБ. Это общий кэш Puppeteer, папку можно перенастроить, и браузеры в ней бывают нужны другим программам. Перед удалением агент проверяет, чья это папка, и спрашивает тебя.
- С версии 12.0.0 сменились темы и раскладка схем по умолчанию, а шрифты встраиваются в SVG, файл выходит крупнее (наш SVG из пяти шагов весил около 200 КБ). Встраивание выключается ключом --no-font-embed.
Частые проблемы
Failed to launch the browser process: Code: 127 ... error while loading shared libraries: libatk-1.0.so.0
На Linux без рабочего стола нет системных библиотек Chrome. В нашем прогоне на чистой Ubuntu 24.04 их не хватало 14. Поставь пакеты из списка Puppeteer для Debian и Ubuntu (раздел Chrome doesn't launch on Linux на pptr.dev/troubleshooting), агент делает это только с твоего «да» на sudo.
Running as root without --no-sandbox is not supported
Программа запущена от root, браузер отказывается стартовать с включённой песочницей. Запусти от обычного пользователя. В одноразовом контейнере можно передать файл puppeteer-config.json с {"args": ["--no-sandbox"]} ключом -p.
Error: Parse error on line 3, код выхода 1
Ошибка в тексте схемы. Картинка при этом не создаётся, так было в прогоне. Открой названную строку и поправь синтаксис по документации Mermaid, затем собери заново.
Проверка
✓ Проверено 08.10.2026: Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере, от root: Node.js 22.23.3 и npm 10.9.9 из образа, Mermaid CLI 12.0.0 из npm, браузер Chrome for Testing 154 от Puppeteer, библиотеки Chrome и poppler-utils из apt.
- Когда
- 08.10.2026
- Среда
- Ubuntu 24.04.5 (x86_64) в одноразовом контейнере Docker на сервере, от root: Node.js 22.23.3 и npm 10.9.9 из образа, Mermaid CLI 12.0.0 из npm, браузер Chrome for Testing 154 от Puppeteer, библиотеки Chrome и poppler-utils из apt
- Объём
- Установили и прогнали задачу на тестовых данных
- Что именно сделали
- Одноразовый контейнер Ubuntu 24.04.5 без данных и ключей. Поставили программу командой npm install -g @mermaid-js/mermaid-cli@12.0.0: npm добавил 194 пакета и скачал браузер Chrome for Testing, ушло 85 секунд. mmdc --version вывел 12.0.0.
- Пакет с зависимостями занял 453 МБ, браузер в ~/.cache/puppeteer ещё 656 МБ.
- В первом прогоне браузер не запустился: в чистом контейнере не нашлось библиотеки libatk-1.0. Во втором ldd показал 14 недостающих библиотек, мы поставили пакеты из списка Puppeteer для Debian и Ubuntu, после этого недостающих не осталось.
- От root без настройки браузер отказался стартовать с ошибкой «Running as root without --no-sandbox is not supported». Дальше передавали файл настроек Puppeteer с --no-sandbox, как советует документация проекта.
- Скрипт прогона сам написал тестовую блок-схему flow.mmd из пяти шагов с русскими подписями: заявка с сайта, проверка телефона, звонок или письмо, отправка счёта.
- Нарисовали SVG за 4,9 секунды вместе с запуском браузера, все пять подписей нашлись в файле. PNG этой высокой схемы с --size 1600 вышел 1099 на 1600 точек, PNG с тёмной темой и прозрачным фоном сохранился с прозрачностью.
- PDF вышел на одну страницу по размеру схемы. Текст из него вытащили командой pdftotext, все подписи на месте.
- Файл Markdown с блоком mermaid превратился в Markdown со ссылкой на readme-out-1.svg, блока mermaid в нём не осталось, в картинке есть подписи схемы.
- Схема с ошибкой дала код 1 и сообщение «Parse error on line 3», картинка не появилась. Контрольные суммы исходных файлов после работы не изменились. Каждый результат скрипт сверил сам и только после этого напечатал TASK_OK.
- Сетевые соединения записаны по этапам. Установка ходила к registry.npmjs.org и storage.googleapis.com, apt к archive.ubuntu.com, security.ubuntu.com и deb.nodesource.com: этот источник Node.js уже был прописан в образе песочницы. За время задачи netwatch записал шесть соединений, все с собственным браузером программы на 127.0.0.1, внешних соединений не было.
- Удалили программу командой npm uninstall -g @mermaid-js/mermaid-cli, после этого mmdc не находится. Браузер в ~/.cache/puppeteer остался, его удаляют отдельно. Контейнер удалён.
| Дата | Версия | Объём | Где | Итог |
|---|---|---|---|---|
| 08.10.2026 | 12.0.0 | задача | контейнер, Linux | получилось |
| 08.10.2026 | 12.0.0 | задача | контейнер, Linux | получилось |
«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.
Похожие программы
- TypstСобирает PDF из текстовой разметки: счёт, КП, отчёт. Данные берёт из JSON или CSV и сама считает итоги по формулам шаблона.
- PandocПереводит документы из формата в формат: Markdown в Word и PDF, Word в Markdown. Агенту нужен, чтобы отдавать результат так, как его ждут люди.
- Node.jsЗапускает MCP-серверы через npx и собирает сайты на Next.js и Astro. Вместе с Node.js ставятся npm и npx: без них агент не подключит многие MCP-серверы.
Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.