Marp CLI
Marp team, участники на GitHub · лицензия MIT
Собирает презентацию из файла Markdown и сохраняет её в PDF, PPTX, HTML или картинки слайдов, заметки докладчика выгружает текстом.
✓ Проверено 10.10.2026: Ubuntu 24.04 (x86_64) в одноразовом контейнере Docker на сервере, от root: Node.js 22.23.3 и npm 10.9.9 из образа, Marp CLI 4.5.1 из npm, Google Chrome 155 из официального пакета .deb, poppler-utils из apt для проверки PDF. Что именно проверяли
Какую задачу решает
Собирает презентацию из обычного файла Markdown: каждый слайд отделяется строкой из трёх дефисов. Готовые слайды сохраняет в HTML, PDF, PPTX или картинки PNG, заметки докладчика выгружает отдельным текстом.
- Из одного файла .md делает HTML-презентацию, которая открывается в браузере. Для этого браузер на компьютере не нужен.
- Собирает PDF со слайдом на каждой странице, текст в нём остаётся текстом и ищется.
- Сохраняет PPTX вместе с заметками докладчика, по README такой файл открывают PowerPoint, Keynote, Google Slides и LibreOffice Impress. Слайды в нём лежат картинками, поэтому текст на них в PowerPoint не правится.
- Каждый слайд можно получить и отдельной картинкой PNG, в нашем прогоне 1280 на 720 точек.
- Картинки с диска в PDF, PPTX и PNG по умолчанию не попадают. Их подключает ключ --allow-local-files, и ставить его стоит только для своих файлов.
Пример результата
Говоришь агенту
В папке deck лежит slides.md на три слайда, рядом картинка mark.png. Собери из него HTML, PDF и PPTX с картинкой, PNG каждого слайда и заметки докладчика текстом. Проверь, что в PDF три страницы и текст слайдов на месте.
Что получится
В папке появятся slides.html, slides.pdf, slides.pptx, slides.001.png-slides.003.png и notes.txt. Мы прогнали этот сценарий на тестовых слайдах: PDF вышел на три страницы, текст всех слайдов нашёлся в нём командой pdftotext, картинка попала внутрь. В PPTX три слайда и три заметки, PNG по 1280 на 720 точек, исходные slides.md и mark.png не изменились.
Паспорт
- Кто делает
- Marp team, участники на GitHub
- Сайт
- marp.app
- Исходный код
- github.com/marp-team/marp-cli
- Инструкция
- github.com/marp-team/marp-cli#install
- Лицензия
- MIT
- Версия
- 4.5.1 на 10.10.2026
- Системы
- macOS · Windows · Linux
- Где работает
- На компьютере, на сервере и в контейнере
- Цена
- Бесплатно
- Проверка
- Проверено 10.10
Установить агентом
Установи программу «Marp CLI». Работай по шагам и после каждого коротко говори, что сделал.
Что это за программа (каталог smyslokod.ru, официальные источники сверены 10.10.2026):
- официальный сайт: https://marp.app/
- исходный код: https://github.com/marp-team/marp-cli
- инструкция по установке: https://github.com/marp-team/marp-cli#install
- актуальная версия на 10.10.2026: 4.5.1
- лицензия: MIT
- для работы нужно (в отдельных случаях): Node.js 18 или новее - нужен, если ставить через npm. Формула Homebrew ставит Node.js сама, а в готовых файлах на странице выпуска GitHub Node.js уже внутри
- для работы нужно (очень желательно): Google Chrome, Microsoft Edge или Firefox - без браузера не собрать PDF, PPTX и картинки, сама программа его не скачивает. HTML и заметки собираются и без него
- для работы нужно (в отдельных случаях): LibreOffice Impress - только для пробного режима --pptx-editable, где текст в PPTX можно править
Правила:
1. Ничего не устанавливай и не меняй, пока я не скажу «да» на твой план.
2. Ставь только способами из этого промпта. Сторонние сборки, скрипты с форумов и из чужих репозиториев не бери.
3. Мои проекты не трогай: не меняй их файлы, виртуальные окружения и списки зависимостей (package.json, requirements.txt, pyproject.toml).
4. Команды с sudo, правку профиля оболочки (~/.zshrc, ~/.bashrc) и переменной PATH делай только после моего отдельного «да» на каждую.
5. Не проси у меня пароли и ключи и не выводи их. Если нужен пароль администратора, дай команду, я выполню её сам.
6. Браузер для PDF и PPTX ставь только с моего «да»: назови, какой и сколько места займёт. Если Chrome, Edge или Firefox уже есть, используй его.
7. Ключ --allow-local-files ставь только для моих слайдов. Чужой Markdown собирай без него и скажи, каких картинок не хватило.
8. В чужой папке собирай слайды с ключом --no-config-file. Чужой файл .js через --engine не передавай. Если без файла настроек или движка не обойтись, сначала покажи мне их код и жди моего «да».
9. Режим сервера (-s) и --watch включай только с моего «да». Готовые файлы сохраняй под новыми именами и проверь число страниц и слайдов.
Шаги:
0. Определи, где ты работаешь: мой компьютер, сервер или контейнер. Какая система и процессор, какие менеджеры пакетов есть (Homebrew, apt, winget, uv, pipx). Ставить нужно туда, где ты сам запускаешь команды.
- на компьютере: если на компьютере уже стоит Chrome, Edge или Firefox, программа по README находит его сама.
- на сервере: окно не нужно, браузер работает без экрана. Для PDF, PPTX и картинок на сервере нужен Chrome, Edge или Firefox, а если его нет, браузер придётся поставить: в нашем прогоне Chrome занял около 440 МиБ. HTML и заметки собираются без браузера.
- в контейнере: мы проверяли в контейнере Ubuntu 24.04 от root. По исходному коду программа сама запускает Chrome без его песочницы (--no-sandbox), если работает от root или внутри контейнера. По README у проекта есть официальный образ Docker marpteam/marp-cli, его мы не запускали.
1. Проверь, не стоит ли программа уже: marp --version ; which -a marp. Если стоит и запускается, ничего не ставь и переходи к шагу 5.
2. Проверь, что есть всё нужное для работы: Google Chrome, Microsoft Edge или Firefox. Чего нет, внеси в план отдельным пунктом. Проверь свободное место на диске: нужно В нашем прогоне пакет npm с зависимостями занял 106 512 792 байт (около 102 МиБ). Браузер ставится отдельно: пакет Google Chrome для Linux весил 143 552 428 байт, после установки папка /opt/google/chrome заняла 461 618 038 байт (около 440 МиБ), плюс библиотеки, которые apt поставил вместе с Chrome, их мы отдельно не мерили. Если браузер уже стоит, ставить его не нужно. Сколько займёт установка через Homebrew, мы не мерили..
3. Составь план: каким одним способом из списка ниже будешь ставить, что появится на диске и сколько места займёт, что поменяется в системе и как потом удалить. Покажи план и жди моего «да».
Способы из официальных источников:
- macOS и Linux, Homebrew: brew install marp-cli (формула на 10.10.2026 ставит 4.5.1 и тянет за собой node. Не проверяли)
- Любая система, npm: npm install -g @marp-team/marp-cli@4.5.1 (так мы ставили в прогонах: npm добавлял 153 пакета за 35-40 секунд. Команда из README без номера версии ставит последнюю)
4. Установи по согласованному плану. Если что-то идёт не так, как в плане, остановись и спроси.
5. Проверь результат:
- marp --version: программа запускается без ошибки;
- Сделай файл slides.md на три слайда с заметками докладчика и картинкой mark.png рядом. Собери HTML, PDF и PPTX, PNG каждого слайда и заметки текстом. Проверь число страниц PDF и текст в нём, картинку в PDF с ключом --allow-local-files и без него, слайды и заметки внутри PPTX, размер PNG. Повтори PDF и PPTX с закрытым прокси, чтобы убедиться, что сеть не нужна. Сверь контрольные суммы исходных файлов до и после. Делай это во временной папке и не трогай мои файлы.
marp --version
cd deck
marp slides.md -o slides.html
marp slides.md --pdf -o slides-noimg.pdf
marp slides.md --pdf --allow-local-files -o slides.pdf
marp slides.md --pptx --allow-local-files -o slides.pptx
marp slides.md --images png --allow-local-files
marp slides.md --notes -o notes.txt
pdfinfo slides.pdf
pdftotext slides.pdf slides-pdf.txt
pdfimages -list slides.pdf
- если ты работаешь в папке моего проекта, покажи git status: от установки в проекте не должно появиться изменений.
6. Итог одним сообщением: что установлено, какой версии и куда, сколько места заняло, что поменялось в системе и как всё удалить (macOS и Linux, Homebrew: brew uninstall marp-cli; npm: npm uninstall -g @marp-team/marp-cli).
Если на любом шаге ошибка, не чини наугад: покажи текст ошибки и скажи, что, по-твоему, случилось. Частые проблемы: https://smyslokod.ru/cli/marp-cli#problemyПромпт собран из официальных инструкций, сверенных 10.10.2026. Агент сначала проверит, что уже стоит, покажет план с местом на диске и способом удаления и без твоего «да» ничего не поставит.
Как ставят вручную
Способы из официальных источников, у каждого ссылка на первоисточник.
macOS и Linux · Homebrew · источник
brew install marp-cli
формула на 10.10.2026 ставит 4.5.1 и тянет за собой node. Не проверяли
Любая система · npm · источник
npm install -g @marp-team/marp-cli@4.5.1
так мы ставили в прогонах: npm добавлял 153 пакета за 35-40 секунд. Команда из README без номера версии ставит последнюю
Как удалить
- macOS и Linux, Homebrew:
brew uninstall marp-cli - Любая система, npm:
npm uninstall -g @marp-team/marp-cli
Что нужно для работы
- Node.js 18 или новее (в отдельных случаях) - нужен, если ставить через npm. Формула Homebrew ставит Node.js сама, а в готовых файлах на странице выпуска GitHub Node.js уже внутри
- Google Chrome, Microsoft Edge или Firefox (очень желательно) - без браузера не собрать PDF, PPTX и картинки, сама программа его не скачивает. HTML и заметки собираются и без него
- LibreOffice Impress (в отдельных случаях) - только для пробного режима --pptx-editable, где текст в PPTX можно править
Системы
- macOS - ставится через npm или Homebrew. Для PDF, PPTX и картинок нужен Chrome, Edge или Firefox. На Mac мы не проверяли.
- Windows - ставится через npm. Для PDF, PPTX и картинок нужен Chrome, Edge или Firefox. На Windows мы не проверяли.
- Linux - мы проверяли на Ubuntu 24.04 через npm, браузер Google Chrome ставили отдельно из официального пакета .deb. Формула Homebrew есть и для Linux.
Где запускать
Ставить нужно туда, где работает агент: на твой компьютер, сервер или в контейнер.
- На компьютере - если на компьютере уже стоит Chrome, Edge или Firefox, программа по README находит его сама.
- На сервере - окно не нужно, браузер работает без экрана. Для PDF, PPTX и картинок на сервере нужен Chrome, Edge или Firefox, а если его нет, браузер придётся поставить: в нашем прогоне Chrome занял около 440 МиБ. HTML и заметки собираются без браузера.
- В контейнере - мы проверяли в контейнере Ubuntu 24.04 от root. По исходному коду программа сама запускает Chrome без его песочницы (--no-sandbox), если работает от root или внутри контейнера. По README у проекта есть официальный образ Docker marpteam/marp-cli, его мы не запускали.
Сколько ресурсов нужно
- Место на диске
- В нашем прогоне пакет npm с зависимостями занял 106 512 792 байт (около 102 МиБ). Браузер ставится отдельно: пакет Google Chrome для Linux весил 143 552 428 байт, после установки папка /opt/google/chrome заняла 461 618 038 байт (около 440 МиБ), плюс библиотеки, которые apt поставил вместе с Chrome, их мы отдельно не мерили. Если браузер уже стоит, ставить его не нужно. Сколько займёт установка через Homebrew, мы не мерили.
- Видеокарта
- В нашем прогоне видеокарта не понадобилась.
- Сеть
- Для установки нужна сеть: пакеты скачиваются с registry.npmjs.org, Chrome мы скачивали с dl.google.com. В прогоне apt ставил зависимости Chrome и poppler-utils для проверки PDF и ходил к archive.ubuntu.com, security.ubuntu.com и deb.nodesource.com, этот источник Node.js прописан в образе песочницы. Во время задачи netwatch записал DNS контейнера 127.0.0.11 и соединения с адресами Google: по нашей сверке это фоновые запросы самого Chrome (update.googleapis.com, www.google.com, www.gstatic.com) и его проверка IPv6 на 2001:4860:4860::8888. Мы повторили PDF и PPTX с прокси на закрытый порт, полностью отрезать сеть в нашей песочнице нельзя. Файлы собрались, netwatch записал только обращение к прокси и ту же проверку IPv6. Картинки по адресу https и эмодзи сеть требуют: по документации Marp Core эмодзи заменяются картинками twemoji с cdn.jsdelivr.net. В наших слайдах таких картинок и эмодзи не было.
PDF из трёх слайдов вместе с запуском браузера собирался от 5,2 до 5,5 секунды в трёх прогонах.
Лицензия и платные замены
Лицензия MIT. Свободная лицензия, текст лежит в репозитории. Текст лицензии
Цена: Бесплатно. Программа бесплатная, лицензия MIT.
Платные замены
Платную консольную программу, которая собирает слайды из Markdown, мы не нашли и не сверяли.
Бесплатные замены
- Pandoc - Тоже переводит Markdown в PPTX, но своим способом и без тем оформления Marp.
О чём помнить
- Безопасность. Агент запускает marp в терминале сам (exec). Программа читает файл Markdown, темы CSS и файл настроек из текущей папки (marp.config.js, .marprc или раздел marp в package.json), с ключом --allow-local-files ещё и файлы с диска, на которые ссылаются слайды (read). Готовые HTML, PDF, PPTX, PNG и текст заметок пишет с правами пользователя по пути из -o, а без него рядом с исходным (write). Файл настроек marp.config.js и движок, переданный ключом --engine файлом .js, - это код JavaScript, программа его выполняет (exec), и такой код может удалять и менять файлы. Поэтому в чужой папке агент собирает слайды с ключом --no-config-file, чтобы файл настроек не загрузился, и не передаёт чужой код через --engine. Входа в аккаунты и ключей программа не просит.
- Ключ --allow-local-files в справке помечен как небезопасный. По описанию проекта чужой Markdown с этим ключом может вытащить в готовый файл файлы с диска, а вместе с ключом --html это проще всего. Ставь его только для своих слайдов. Без ключа картинка с диска в PDF не попала, программа вывела предупреждение, а файл всё равно собрала.
- Для PDF, PPTX и картинок программа запускает браузер. По исходному коду от root и внутри контейнера Chrome стартует без своей песочницы (--no-sandbox), поэтому чужие слайды в таком режиме лучше не собирать.
- Обычный PPTX состоит из картинок слайдов, текст в PowerPoint не правится. Ключ --pptx-editable по README пробный: нужен ещё LibreOffice Impress, режим может завершиться ошибкой или дать неполный результат, заметки докладчика не переносятся. Его мы не проверяли.
- Режим сервера (-s) по README отдаёт по запросу PDF, PPTX и картинки из папки, которую ему передали, а режим --watch пересобирает файл при каждом изменении. Мы их не запускали.
Частые проблемы
Failed converting Markdown. (No suitable browser found. Please ensure one of the following browsers is installed: chrome, edge, firefox)
На компьютере нет Chrome, Edge или Firefox, а PDF, PPTX и картинки рисует браузер. В нашем прогоне до установки Chrome так и было, программа вернула код 1. Поставь один из браузеров с твоего «да» или укажи путь к нему ключом --browser-path или переменной CHROME_PATH. HTML и заметки собираются и без браузера.
Marp CLI has detected accessing to local file. That is blocked by security reason.
Слайды ссылаются на картинку с диска, а ключа --allow-local-files нет. В прогоне файл собрался, но картинки в нём не было. Если слайды твои, добавь --allow-local-files. Чужие слайды собирай без него, а картинки к ним можно выложить по адресу https.
Проверка
✓ Проверено 10.10.2026: Ubuntu 24.04 (x86_64) в одноразовом контейнере Docker на сервере, от root: Node.js 22.23.3 и npm 10.9.9 из образа, Marp CLI 4.5.1 из npm, Google Chrome 155 из официального пакета .deb, poppler-utils из apt для проверки PDF.
- Когда
- 10.10.2026
- Среда
- Ubuntu 24.04 (x86_64) в одноразовом контейнере Docker на сервере, от root: Node.js 22.23.3 и npm 10.9.9 из образа, Marp CLI 4.5.1 из npm, Google Chrome 155 из официального пакета .deb, poppler-utils из apt для проверки PDF
- Объём
- Установили и прогнали задачу на тестовых данных
- Что именно сделали
- Одноразовый контейнер Ubuntu 24.04 без данных и ключей. Поставили программу командой npm install -g @marp-team/marp-cli@4.5.1: npm добавил 153 пакета за 35 секунд. marp --version вывел «@marp-team/marp-cli v4.5.1 (w/ @marp-team/marp-core v4.4.0)». Пакет с зависимостями занял 106 512 792 байт.
- Без браузера PDF не собрался: программа вывела «No suitable browser found» и вернула код 1. Скачали пакет Google Chrome с dl.google.com (143 552 428 байт) и поставили его через apt вместе с зависимостями, встал Chrome 155.0.8059.39.
- Скрипт прогона сам написал тестовые слайды slides.md: три слайда с заголовками, списком, картинкой mark.png и заметками докладчика.
- Собрали HTML, PDF, PPTX, PNG каждого слайда и заметки в notes.txt. PDF вышел на три страницы, команда pdftotext нашла в нём текст всех слайдов. Первый PDF вместе с запуском браузера собирался 5,2 секунды.
- Без ключа --allow-local-files картинка с диска в PDF не попала, программа предупредила об этом. С ключом картинка оказалась внутри, это показала команда pdfimages.
- Внутри PPTX три слайда и три заметки с нашим текстом. PNG вышли по 1280 на 720 точек, в notes.txt все три заметки.
- Полностью отрезать сеть в песочнице не дали, поэтому повторили PDF и PPTX с прокси на закрытый порт. Файлы собрались так же, netwatch записал обращение к прокси и проверку IPv6 самого Chrome. В основной сборке соединения открывал только Chrome, по нашей сверке это его фоновые запросы к адресам Google.
- Исходные slides.md и mark.png после работы не изменились по sha256. Каждый результат скрипт сверил сам и только после этого напечатал TASK_OK.
- Удалили программу командой npm uninstall -g @marp-team/marp-cli и проверили, что команда marp больше не находится. Контейнер после прогона удалён вместе со всеми тестовыми файлами.
| Дата | Версия | Объём | Где | Итог |
|---|---|---|---|---|
| 10.10.2026 | 4.5.1 | задача | контейнер, Linux | получилось |
| 10.10.2026 | 4.5.1 | задача | контейнер, Linux | получилось |
«Проверено» ставим, только когда сами поставили программу и прогнали её на задаче. Сверка ссылок и вывод версии так не называются.
Похожие программы
- PandocПереводит документы из формата в формат: Markdown в Word и PDF, Word в Markdown. Агенту нужен, чтобы отдавать результат так, как его ждут люди.
- LibreOfficeПереводит Word, Excel и PowerPoint в PDF, CSV в Excel, Markdown в Word - без окон, одной командой. Агенту нужен, чтобы отдать договор, счёт или таблицу людям в PDF.
- TypstСобирает PDF из текстовой разметки: счёт, КП, отчёт. Данные берёт из JSON или CSV и сама считает итоги по формулам шаблона.
- Mermaid CLIРисует схему процесса из короткого текста и сохраняет её в SVG, PNG или PDF. В Markdown меняет блоки mermaid на готовые картинки.
Программу делают её авторы. Мы сверяем официальные источники и описываем, что ей нужно, но код остаётся чужим. Перед установкой посмотри план агента: что он поставит и что поменяет в системе.