excalidraw-cli
Командная строка excalidraw-cli превращает текстовое описание, JSON или Graphviz DOT в редактируемую схему Excalidraw и экспортирует PNG и SVG
- 319 ★ репозитория
- Последний коммит
- MIT
Минимальный доступ
Почему такой уровень
- Команда создает файлы схем и изображений в указанной папке, сеть не нужна
Установка
- Работает в
В терминале, через SkillFoxx CLI
npx skillfoxx add cli/excalidraw-cliОпределит агенты на машине, покажет уровень доступа и зафиксирует версию.
Другие способы установки
Доступ и проверки
Как мы проверяемМинимальный доступИнструмент ничего не запускает и не ходит в сеть.
- Команда создает файлы схем и изображений в указанной папке, сеть не нужна
Это чужой код. Посмотрите файлы в репозитории перед установкой.
Что делает
Пакет excalidraw-cli собирает файлы `.excalidraw` из короткого текстового языка: `[Метка]` рисует прямоугольник, `{Метка}` ромб решения, `(Метка)` овал начала и конца, `[[Метка]]` базу данных, а стрелки `->`, `-->` и `<->` задают сплошные, пунктирные и двусторонние связи с подписями. Источником может быть и JSON, и Graphviz DOT. Размещение узлов считает ELK.js, направление выбирают из TB, BT, LR и RL. Команда `convert` экспортирует готовый файл в PNG или SVG с темным режимом, масштабом, отступами и прозрачным фоном. Команда `create` пишет только JSON Excalidraw, картинки создает `convert`. В папке `skills/excalidraw-cli` лежит скилл для Claude Code, Codex и Cursor, а в `.claude-plugin` описан плагин. Агент разбирает запрос на узлы и связи, пишет небольшой `.dsl` и запускает `create`, затем при необходимости `convert`.
Для кого. Разработчикам и техписателям, которые просят агента нарисовать архитектуру, блок-схему или дерево решений и хотят получить файл, правимый в Excalidraw.
Подходит, если
- Схему сервиса надо получить из текстового описания и потом поправить руками в Excalidraw
- В репозитории лежит граф Graphviz DOT, который нужно перевести в редактируемый вид
- Дерево решений для техподдержки описывают в нескольких строках, и агент рисует его сам
- В документацию нужны PNG и SVG в темном режиме с нужным масштабом
- Агент строит схему по структуре каталога `src/` и сохраняет ее в корень проекта
Не подходит, если
- Нужна диаграмма Mermaid или PlantUML: инструмент создает только файлы Excalidraw
- Схема сложнее обычной блок-схемы и требует ручного дизайна
- На машине Node ниже 20.19: версия 18 не поддерживается
- Подграфы DOT важны как группы: при переводе они сводятся в плоский вид
Пример запроса к агенту
Нарисуй схему нашего API: клиент, шлюз, три сервиса и база данных, сохрани как api.excalidraw и сделай PNG в темном режимеОграничения
- Нужен Node.js 20.19 или новее, Node 18 больше не поддерживается: на более старых машинах `npx` завершится ошибкой или потребует обновления.
- Стилизация узлов и расширенные стрелки работают с версии 1.4.0, на более ранних версиях синтаксис с `@fillStyle:` не сработает.
- Подграфы Graphviz DOT при создании схемы сводятся в плоский вид, поддерживаемые атрибуты перечислены в `man excalidraw-cli`.
- Команда `create` не пишет изображения: попытка указать `-o file.png` отклоняется, экспорт выполняет `convert`.
Как отключить. Выполните `npm uninstall -g @swiftlysingh/excalidraw-cli` или `brew uninstall excalidraw-cli`, затем удалите папку скилла `excalidraw-cli` из каталога скиллов агента.
Частые вопросы
Как поставить excalidraw-cli для Claude Code?
Выполните `npm install -g @swiftlysingh/excalidraw-cli`, затем `npx skills add swiftlysingh/excalidraw-cli` для скилла. Есть также плагин Claude Code и установка через Homebrew.
Чем форматы входа отличаются?
DSL подходит для коротких блок-схем и пишется прямо в аргументе `--inline`. JSON нужен для программной генерации узлов. DOT берут, когда граф уже есть в Graphviz.
Как получить PNG из схемы?
Сначала создайте `.excalidraw` командой `create`, затем выполните `excalidraw-cli convert diagram.excalidraw --format png`. Добавьте `--dark` и `--scale 2` для темной темы и двойного размера.
Как открыть результат?
Файл `.excalidraw` открывают на excalidraw.com через File и Open, дальше схему правят как обычный рисунок.
Нужно ли ставить пакет глобально?
Нет, `npx --yes @swiftlysingh/excalidraw-cli create ...` запускает его без установки.
Обсуждение
Вопросов и отзывов пока нет.
Похожие
CLI-инструментыExcalidraw CLI рисует файлы .excalidraw и диаграммы Mermaid в PNG и SVG локально, без аккаунта, и отдает JSON агентам.
Скилл рисует диаграмму в стиле Excalidraw по текстовому запросу и отдает ссылку на редактор, анимацию и PNG.
Excalidraw MCP Server
Excalidraw MCP Server, CLI & Agent Skill
Живой холст Excalidraw для агента: создает, правит и экспортирует диаграммы через MCP или CLI, видит свою работу по скриншотам и сохраняет .excalidraw в репозит
Скилл, который строит диаграммы Excalidraw по описанию и проверяет их вид через рендер в Playwright
Плагин Codex перерисовывает научный рисунок по образцу на живом холсте draw.io шаг за шагом, затем проверяет файл и экспортирует PNG, SVG, PDF или JPG
Draw.io Skill
Draw.io Skill for Claude & Codex
Скиллы для диаграмм draw.io: архитектура, сети, блок-схемы, импорт из Terraform и кода, офлайн-генерация из YAML и экспорт в PNG и SVG
Сравнение с похожими
Карточки с тем же главным запросом: чем они отличаются.
| Инструмент | Официальный | Авторизация | Звезды репозитория | Главное отличие |
|---|---|---|---|---|
| excalidraw-cli (эта карточка) | нет | 319 | ||
| Excalidraw Diagram Skill | нет | 5 240 | скилл, где диаграммы Excalidraw собирает сам агент с проверкой результата, а здесь готовая команда и язык описания | |
| Excalidraw MCP Server | нет | не нужна | 2 646 | MCP-сервер и CLI для работы с живым холстом Excalidraw, а не генерация файлов из текста |
Коротко о README
Страница перечисляет возможности и три способа установки: npm, Homebrew и сборка из исходников. Затем показан запуск без установки, подключение скилла к агенту и примеры создания схем из DSL и DOT. Дальше идут таблица синтаксиса, параметры экспорта и описание программного интерфейса для встраивания в другие инструменты.
Бейдж для README
Исходный SKILL.md
---
name: excalidraw-cli
description: Create editable Excalidraw flowcharts and diagrams, or export .excalidraw files to PNG or SVG.
license: MIT
compatibility: Requires Node.js >=20.19.0 and excalidraw-cli (this repo after npm run build, a global install, or npx --yes @swiftlysingh/excalidraw-cli).
---
# Excalidraw CLI
Create editable `.excalidraw` diagrams from text, then optionally export PNG or SVG.
This skill lives with the CLI at https://github.com/swiftlysingh/excalidraw-cli.
## When to use
- User asks for a flowchart, architecture diagram, decision tree, or process visualization
- User mentions Excalidraw, `.excalidraw`, or this CLI
- User wants a diagram from a description or from code in the workspace
- User wants to preview or export an existing `.excalidraw` file as PNG or SVG
## Command
Use the first form that exists:
1. In this repo after `npm run build`: `node dist/cli.js`
2. Installed binary: `excalidraw-cli`
3. No install: `npx --yes @swiftlysingh/excalidraw-cli`
Examples below use `excalidraw-cli`. Substitute the form you are running.
`create` writes Excalidraw JSON only. It rejects `-o file.png` and `-o file.svg`. Export images with `convert` after `create`.
## Workflow
1. Extract nodes, decisions, and edges from the request.
2. Prefer DSL. Use DOT when the user already has Graphviz. Use JSON for programmatic node/edge lists.
3. Write a small `.dsl` file for anything beyond one line. Use `--inline` for short diagrams.
4. Run `create`, then `convert` if the user wants a PNG or SVG preview.
5. Tell the user the output path and that they can open the `.excalidraw` file at https://excalidraw.com via File > Open.
## DSL
| Syntax | Element |
|--------|---------|
| `[Label]` | Rectangle (process, action) |
| `{Label}` | Diamond (decision). A trailing `?` is just label text. |
| `(Label)` | Ellipse (start/end) |
| `[[Label]]` | Database |
| `![path]` | Local image node, default 100x100 |
| `` | Local image node with explicit size |
| `[Label @key:value]` | Styled node |
| `->` | Solid arrow |
| `<-` | Reverse solid arrow |
| `<->` | Bidirectional solid arrow |
| `-->` | Dashed arrow |
| `<--` | Reverse dashed arrow |
| `<-->` | Bidirectional dashed arrow |
| `-> "text" ->` | Labeled solid arrow (double quotes) |
| `-> 'text' ->` | Labeled solid arrow (single quotes) |