Mermaid CLI

Проект Mermaid, участники на GitHub · лицензия MIT

Рисует схему процесса из короткого текста и сохраняет её в SVG, PNG или PDF. В Markdown меняет блоки mermaid на готовые картинки.

macOS · Windows · LinuxНа компьютере, на сервере и в контейнереБесплатно, MIT

✓ Проверено 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
Исходный код
github.com/mermaid-js/mermaid-cli
Лицензия
MIT
Версия
12.0.0 на 08.10.2026
Системы
macOS · Windows · Linux
Где работает
На компьютере, на сервере и в контейнере
Цена
Бесплатно
Проверка
Проверено 08.10

Установить агентом

Для Claude Code, Codex, Hermes и любого агента с терминалом
Установи программу «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
Объём
Установили и прогнали задачу на тестовых данных
Что именно сделали
  1. Одноразовый контейнер 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.
  2. Пакет с зависимостями занял 453 МБ, браузер в ~/.cache/puppeteer ещё 656 МБ.
  3. В первом прогоне браузер не запустился: в чистом контейнере не нашлось библиотеки libatk-1.0. Во втором ldd показал 14 недостающих библиотек, мы поставили пакеты из списка Puppeteer для Debian и Ubuntu, после этого недостающих не осталось.
  4. От root без настройки браузер отказался стартовать с ошибкой «Running as root without --no-sandbox is not supported». Дальше передавали файл настроек Puppeteer с --no-sandbox, как советует документация проекта.
  5. Скрипт прогона сам написал тестовую блок-схему flow.mmd из пяти шагов с русскими подписями: заявка с сайта, проверка телефона, звонок или письмо, отправка счёта.
  6. Нарисовали SVG за 4,9 секунды вместе с запуском браузера, все пять подписей нашлись в файле. PNG этой высокой схемы с --size 1600 вышел 1099 на 1600 точек, PNG с тёмной темой и прозрачным фоном сохранился с прозрачностью.
  7. PDF вышел на одну страницу по размеру схемы. Текст из него вытащили командой pdftotext, все подписи на месте.
  8. Файл Markdown с блоком mermaid превратился в Markdown со ссылкой на readme-out-1.svg, блока mermaid в нём не осталось, в картинке есть подписи схемы.
  9. Схема с ошибкой дала код 1 и сообщение «Parse error on line 3», картинка не появилась. Контрольные суммы исходных файлов после работы не изменились. Каждый результат скрипт сверил сам и только после этого напечатал TASK_OK.
  10. Сетевые соединения записаны по этапам. Установка ходила к registry.npmjs.org и storage.googleapis.com, apt к archive.ubuntu.com, security.ubuntu.com и deb.nodesource.com: этот источник Node.js уже был прописан в образе песочницы. За время задачи netwatch записал шесть соединений, все с собственным браузером программы на 127.0.0.1, внешних соединений не было.
  11. Удалили программу командой npm uninstall -g @mermaid-js/mermaid-cli, после этого mmdc не находится. Браузер в ~/.cache/puppeteer остался, его удаляют отдельно. Контейнер удалён.
ДатаВерсияОбъёмГдеИтог
08.10.202612.0.0задачаконтейнер, Linuxполучилось
08.10.202612.0.0задачаконтейнер, Linuxполучилось

«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.

Похожие программы

Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.