excalidraw-cli

Командная строка excalidraw-cli превращает текстовое описание, JSON или Graphviz DOT в редактируемую схему Excalidraw и экспортирует PNG и SVG

  • 319 ★ репозитория
  • Последний коммит
  • MIT
CLI

Минимальный доступ

Почему такой уровень

  • Команда создает файлы схем и изображений в указанной папке, сеть не нужна
Все причины и проверки

swiftlysingh/excalidraw-cli

Установка

Работает в

В терминале, через 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 ...` запускает его без установки.

Обсуждение

Вопросов и отзывов пока нет.

Excalidraw CLI рисует файлы .excalidraw и диаграммы Mermaid в PNG и SVG локально, без аккаунта, и отдает JSON агентам.

CLIМинимальный доступ301Звезды репозитория

Скилл рисует диаграмму в стиле Excalidraw по текстовому запросу и отдает ссылку на редактор, анимацию и PNG.

СкиллРасширенный доступ85Звезды репозитория

Excalidraw MCP Server

Excalidraw MCP Server, CLI & Agent Skill

Живой холст Excalidraw для агента: создает, правит и экспортирует диаграммы через MCP или CLI, видит свою работу по скриншотам и сохраняет .excalidraw в репозит

MCP-серверРасширенный доступ2,6 тыс.Звезды репозитория

Скилл, который строит диаграммы Excalidraw по описанию и проверяет их вид через рендер в Playwright

СкиллРасширенный доступ5,2 тыс.Звезды репозитория

Плагин Codex перерисовывает научный рисунок по образцу на живом холсте draw.io шаг за шагом, затем проверяет файл и экспортирует PNG, SVG, PDF или JPG

ПлагинРасширенный доступ1,5 тыс.Звезды репозитория

Draw.io Skill

Draw.io Skill for Claude & Codex

Скиллы для диаграмм draw.io: архитектура, сети, блок-схемы, импорт из Terraform и кода, офлайн-генерация из YAML и экспорт в PNG и SVG

СкиллРасширенный доступ302Звезды репозитория

Сравнение с похожими

Карточки с тем же главным запросом: чем они отличаются.

ИнструментОфициальныйАвторизацияЗвезды репозиторияГлавное отличие
excalidraw-cli (эта карточка)нет319
Excalidraw Diagram Skillнет5 240скилл, где диаграммы Excalidraw собирает сам агент с проверкой результата, а здесь готовая команда и язык описания
Excalidraw MCP Serverнетне нужна2 646MCP-сервер и 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 |
| `![path](WxH)` | 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) |

Сообщить о проблеме