excalidraw-skill
Agents365-ai/excalidraw-skillClaude Code skill для создания диаграмм в стиле Excalidraw по текстовому описанию. Поддерживает экспорт в PNG/SVG/PDF через Kroki API или локальный CLI, встроенную семантическую цветовую систему, точные правила отступов и защиту от типичных ошибок вёрстки.
Установка
npm install -g excalidraw-brute-export-cliREADME
Excalidraw Skill — генерация диаграмм
Claude Code skill для создания диаграмм в стиле ручного рисунка из естественного языка с автоматическим экспортом в PNG/SVG.
Зачем этот skill
- Генерация диаграмм из естественного языка — опишите нужную схему на русском или английском, и диаграмма будет создана автоматически без ручного перетаскивания элементов.
- Нулевой порог входа — не нужно изучать формат Excalidraw JSON, синтаксис Mermaid или любой другой DSL.
- Экспорт без установки (Kroki API) — достаточно
curl, не нужны npm, Docker или инструменты браузерной автоматизации. - Проактивная генерация — когда Claude обнаруживает сложную систему, требующую визуализации, диаграмма создаётся автоматически без явного запроса.
- Профессиональная дизайн-система — встроенная семантическая цветовая система (правило 60-30-10), иерархия размеров шрифтов, семантика стрелок (сплошная/пунктирная/точечная) и шаблоны компоновки для разных типов диаграмм.
- 5 режимов диаграмм — блок-схемы, архитектурные схемы, диаграммы последовательностей, ментальные карты, диаграммы с дорожками — каждый со своими правилами компоновки и отступов.
- Защита от антипаттернов — задокументированные типичные ошибки (наложение текста в областях, запутанные стрелки, коллизии подписей) позволяют Claude избегать проблем ещё до генерации.
- Умный расчёт размеров — автоматическое вычисление ширины элементов по длине подписи (
max(160, charCount * 9)), адаптация для CJK-символов, исключение обрезки текста. - Точная система отступов — пиксельные правила для стрелок с подписями и без, межколоночные расстояния, внутренние отступы областей.
- 3 режима маршрутизации стрелок — прямые линии, L-образные ломаные, кривые изгибы.
- Редактируемый вывод — файлы
.excalidrawоткрываются и редактируются на excalidraw.com с полным сохранением привязок стрелок. - Поддержка офлайн — локальный CLI (на базе Firefox) работает полностью без сети.
Сравнение с аналогами
| Возможность | Этот skill | Нативный Claude Code | Другие skills |
|---|---|---|---|
| Генерация Excalidraw JSON | ✓ с дизайн-системой | ✓ без правил компоновки | ✓ у каждого свой акцент |
| Экспорт PNG/SVG | ✓ автоматически | ✗ требует явного запроса | частично |
| Экспорт без установки (Kroki API) | ✓ только curl | ✗ нет запасного варианта | ✗ |
| Проактивный запуск (автодетект) | ✓ от 3+ компонентов | ✗ только по явному запросу | ✗ |
| Семантическая цветовая система | ✓ правило 60-30-10 | ✗ нет дизайн-норм | частично |
| Точные правила отступов | ✓ пиксельные нормы | ✗ на глаз | частично |
| Защита от антипаттернов | ✓ встроенная документация | ✗ нет защиты | ✗ |
| Умный расчёт размеров (CJK) | ✓ автоадаптация | ✗ частое обрезание | ✗ |
| Маршрутизация стрелок (прямая/ломаная/кривая) | ✓ 3 режима | ✗ только прямые | частично |
| Двусторонняя привязка стрелок | ✓ полное взаимодействие | ✗ статические линии | частично |
| Ключевые слова на нескольких языках | ✓ | ✗ | ✗ |
| Сквозной рабочий процесс | ✓ генерация→экспорт→отчёт | ✗ только генерация кода | частично |
| Один самодостаточный файл | ✓ один SKILL.md | н/д | ✗ (4–6 файлов) |
Ключевые преимущества перед нативным Claude Code:
- Полный конвейер — Claude Code умеет писать Excalidraw JSON, но не экспортирует изображения автоматически и не знает дизайн-норм. Этот skill обеспечивает полную автоматизацию от генерации до готового результата.
- Профессиональное качество — встроенные семантические цвета, точные отступы, маршрутизация стрелок: вывод готов к использованию без ручных правок.
- Защита от ошибок — антипаттерны предотвращают наложение текста, запутанные стрелки и другие типичные проблемы.
- Проактивная визуализация — диаграммы создаются автоматически при обсуждении архитектуры, без явного запроса.
Почему Skill, а не MCP?
Формат JSON в Excalidraw — это просто массив элементов с полями x/y/width/height, которые Claude умеет писать нативно. Skill учит Claude «как рисовать», MCP даёт Claude «кисть». Когда LLM сам умеет рисовать — лучше научить его делать это правильно.
| Параметр | Skill | MCP Server |
|---|---|---|
| Принцип | Инструкции вводятся в контекст Claude | Отдельный запущенный сервис |
| Генерация | Claude пишет JSON напрямую (нативная способность LLM) | Требует кода для обработки логики генерации JSON |
| Гибкость | Claude понимает семантику, свободная компоновка | Фиксированные параметры API, ограниченная гибкость |
| Установка | Скопировать один файл | Запустить сервис, настроить MCP |
| Зависимости | Нет | Среда выполнения Node.js / Python |
| Экспорт | Вызов существующих инструментов (curl / CLI) | Требует встроенной логики экспорта или всё равно вызывает curl |
Ценность MCP — в предоставлении Claude возможностей, недоступных ему самому: доступ к базам данных, браузерная автоматизация, API с аутентификацией. Ядро генерации диаграмм — дизайн компоновки + написание JSON — как раз то, в чём LLM наиболее силён.
Функциональность
- Генерация файлов
.excalidrawJSON по описанию на естественном языке - Экспорт в SVG через Kroki API — без установки, только
curl - Локальный экспорт в PNG/SVG через
excalidraw-brute-export-cli(на базе Firefox) - Автоматический запуск при необходимости визуализации сложных систем
- Автоматическое применение семантических цветов, иерархии шрифтов и стилей стрелок
- Автоматический расчёт ширины элементов по подписи с адаптацией для CJK-символов
- Пошаговое построение больших диаграмм для предотвращения превышения лимита токенов
- Генерация полностью интерактивных файлов с двусторонней привязкой стрелок
Возможности
Семантическая цветовая система
8 семантических категорий цветов — основной (синий), успех (зелёный), предупреждение (жёлтый), ошибка (красный), внешний (фиолетовый), процесс (голубой), триггер (оранжевый), нейтральный (серо-синий). Правило 60-30-10: 60% пустое пространство, 30% основной цвет, 10% акцентный.
Режимы диаграмм
| Режим | Компоновка | Применение |
|---|---|---|
| Блок-схема | Горизонтально или вертикально, отступ 200px | Процессы, деревья решений |
| Архитектурная схема | Колонки с точными правилами отступов | Дизайн систем, микросервисы |
| Диаграмма последовательностей | 200px между участниками | API-потоки, протоколы |
| Ментальная карта | Радиальная, уменьшение по уровням | Мозговой штурм, концептуальные карты |
| Диаграмма с дорожками | Горизонтальные дорожки + стрелки между ними | Межкомандные рабочие процессы |
Точная система отступов
| Сценарий | Отступ |
|---|---|
| Стрелки с подписями | 150–200px |
| Стрелки без подписей | 100–120px |
| Межколоночный (с подписями) | 400px |
| Межколоночный (без подписей) | 340px |
| Внутренний отступ области | 50–60px |
Маршрутизация стрелок
3 режима: прямые линии (по умолчанию), L-образные ломаные (прямоугольные повороты через points), кривые изгибы (roundness: { type: 2 }).
Семантика стрелок
| Стиль | Значение |
|---|---|
| Сплошная линия | Основной поток |
| Пунктирная линия | Ответ, асинхронность |
| Точечная линия | Опциональная или слабая зависимость |
Умный расчёт размеров элементов
Автоматический расчёт ширины по подписи: латинские символы — max(160, charCount * 9), CJK-символы — max(160, charCount * 18). Исключает обрезку текста в генерируемых диаграммах.
Иерархия шрифтов
Заголовок (28px) → Заголовок группы (24px) → Подпись (20px) → Описание (16px) → Примечание (14px)
Защита от антипаттернов
Встроенная документация типичных ошибок — центрирование текста с наложением в областях, запутанные стрелки между зонами, коллизии подписей коротких стрелок, правила прозрачности контейнеров — позволяет Claude избегать ошибок ещё до генерации.
Зависимости
| Инструмент | Назначение |
|---|---|
curl | Отправка .excalidraw в Kroki API для рендеринга в SVG |
excalidraw-brute-export-cli | CLI для локального экспорта .excalidraw → PNG/SVG |
Playwright + Firefox | Headless-браузер для локального CLI |
curl предустановлен на macOS, Linux и Windows (Git Bash/WSL).
Установка skill
Claude Code (глобально):
git clone https://github.com/Agents365-ai/excalidraw-skill.git ~/.claude/skills/excalidrawClaude Code (только текущий проект):
git clone https://github.com/Agents365-ai/excalidraw-skill.git .claude/skills/excalidrawOpenClaw:
git clone https://github.com/Agents365-ai/excalidraw-skill.git skills/excalidrawSkillsMP: найдите excalidraw на skillsmp.com и установите в один клик.
Установка зависимостей
Вариант A: Kroki API (рекомендуется — без установки, только SVG)
# curl предустановлен, достаточно проверить:
curl --versionДополнительная настройка не требуется. SVG рендерится через https://kroki.io.
Вариант B: Локальный CLI (обязателен для PNG)
npm install -g excalidraw-brute-export-cli
npx playwright install firefoxОсобенности платформ
| Платформа | Дополнительные шаги |
|---|---|
| macOS | Требуется однократный патч (см. ниже) |
| Windows | Не требуется |
| Linux | Не требуется |
Патч для macOS (однократно, обязателен для локального CLI)
CLI использует Control+O / Control+Shift+E, но macOS требует клавишу Meta (Cmd):
CLI_MAIN=$(npm root -g)/excalidraw-brute-export-cli/src/main.js
sed -i '' 's/keyboard.press("Control+O")/keyboard.press("Meta+O")/' "$CLI_MAIN"
sed -i '' 's/keyboard.press("Control+Shift+E")/keyboard.press("Meta+Shift+E")/' "$CLI_MAIN"Использование
Просто опишите нужную диаграмму:
Нарисуй архитектурную схему микросервисного интернет-магазина:
клиенты Mobile/Web/Admin, API Gateway, микросервисы Auth/User/Order/Product/Payment,
очередь сообщений Kafka, сервис Notification и отдельные базы данных для каждого сервиса
Claude автоматически создаст файл .excalidraw и экспортирует его в PNG.
Пример
Запрос:
Нарисуй архитектурную схему микросервисного интернет-магазина: клиенты Mobile/Web/Admin, API Gateway (с аутентификацией, ограничением запросов и маршрутизацией), микросервисы Auth/User/Order/Product/Payment, очередь Kafka, сервис Notification, User DB / Order DB / Product DB / Redis Cache / Stripe API
Результат:

Структура файлов
SKILL.md— файл инструкций skill, загружаемый Claude CodeREADME.md— этот файл (на китайском)README_EN.md— описание на английскомassets/— примеры диаграмм
Лицензия
MIT