К основному содержанию
скилл Claude Code CX Codex Cursor GitHub Copilot

excalidraw — скилл для Claude Code: схемы и установка

Скилл создаёт файлы .excalidraw с архитектурными схемами, блок-схемами и диаграммами последовательностей. Пригодится, когда нужно описать структуру проекта или ход процесса.

Установить в Claude Code · Через Skills CLI (Vercel) Все способы и платформы ↓
npx skills add NousResearch/hermes-agent --skill excalidraw -a claude-code
Открыть на GitHub

Что делает excalidraw

Скилл формирует диаграммы как JSON-элементы Excalidraw и сохраняет их в файлы .excalidraw. Внутри могут быть фигуры, подписи и стрелки; для связи подписи с фигурой используется привязка контейнера. Порядок элементов в массиве задаёт порядок отрисовки.

Готовый файл можно открыть в Excalidraw для просмотра и редактирования. Для получения ссылки на диаграмму предусмотрен scripts/upload.py; ему нужен пакет Python cryptography. Это повод проверить окружение заранее: без этого пакета загрузка скриптом не сработает. Скилл также задаёт ориентиры для размеров фигур и текста, а палитра вынесена в references/colors.md.

Какие задачи решает

  • создать архитектурную схему проекта
  • показать этапы процесса блок-схемой
  • описать последовательность взаимодействий
  • собрать карту связанных понятий

Примеры запросов агенту

  • Создай архитектурную схему сервиса и сохрани её в `~/diagrams/architecture.excalidraw`.
  • Покажи этот процесс блок-схемой в файле `flow.excalidraw`.
  • Составь диаграмму последовательностей взаимодействия компонентов и сохрани её как `sequence.excalidraw`.

Как установить excalidraw

1Через Skills CLI (Vercel)

npx skills add NousResearch/hermes-agent --skill excalidraw -a claude-code

2Вручную: положить файлы

~/.claude/skills/excalidraw/SKILL.md

Папка скилла целиком; для одного проекта — .claude/skills/excalidraw/

Из того же набора42

Весь набор →
dogfood Teknium (teknium1), Hermes Agent Скилл проводит разведочное тестирование веб-приложения через браузер: обходит страницы, ловит ошибки в консоли, копит скриншоты и отдаёт отчёт с багами. Claude Code CX Codex Cursor +1 6 400установок humanizer Siqi Chen (@blader, https://github.com/blader/humanizer), ported by Hermes Agent Скилл убирает характерные AI-обороты и переписывает текст живее. Пригодится для постов, документации, писем и других черновиков. Claude Code CX Codex Cursor +1 1 300установок popular-web-designs Hermes Agent + Teknium (design systems sourced from VoltAgent/awesome-design-md) 54 готовых дизайн-систем реальных сайтов (Stripe, Linear, Vercel, Claude) с CSS-токенами, типографикой и компонентами для быстрой вёрстки в стиле известных брендов. Claude Code CX Codex Cursor +1 914установок powerpoint Nous Research Создаёт, читает и редактирует презентации .pptx через python-pptx. Пригодится для сборки слайдов, разбора чужих deck-файлов и правок шаблонов. Claude Code CX Codex Cursor +1 751установок claude-design BadTechBandit Скилл для сборки HTML-артефактов — лендингов, прототипов, деков — в Claude Code, Codex и Cursor. Читает контекст проекта и собирает самодостаточный файл с вёрсткой и стилями. Claude Code CX Codex Cursor +1 645установок llm-wiki Hermes Agent Скилл для построения персональной базы знаний из interlinked markdown-файлов. Агент суммирует источники, перекрёстно ссылается и поддерживает консистентность, а вы курируете и направляете анализ. Claude Code CX Codex Cursor +1 603установок yuanbao Teknium (teknium1), Hermes Agent Скилл для взаимодействия с группами в Yuanbao: ищет участников, отправляет упоминания через @nickname и доставляет личные сообщения с файлами. Claude Code CX Codex Cursor +1 564установок songwriting-and-ai-music Teknium (teknium1), Hermes Agent Скилл помогает писать тексты песен, подбирать рифмы и составлять промпты для генератора Suno AI без упоминания имён защищённых артистов. Claude Code CX Codex Cursor +1 563установок

Похожие

startup-canvas phuryn Скилл генерирует Startup Canvas — шаблон для новых продуктов, который разделяет стратегию (9 секций) и бизнес-модель (затраты и доход). Используй, когда запускаешь продукт или оцениваешь идею стартапа. Claude Code CX Codex Cursor +1 3 200установок frontend-dev MiniMax-AI Скилл проектирует страницы с анимациями, медиафайлами от MiniMax и готовым текстом. Помогает собирать промо-сайты, витрины и дашборды. Claude Code CX Codex Cursor +1 3 200установок customer-journey-map phuryn Строит карту пути клиента от первого знакомства до рекомендации: этапы, точки контакта, эмоции, проблемы и идеи улучшений. Пригодится для анализа опыта и онбординга. Claude Code CX Codex Cursor +1 3 100установок gpui-kit-design-guides longbridge Скилл передаёт агенту обязательные правила дизайна десктопных приложений на GPUI Kit. Пригодится при проектировании новых экранов, правке интерфейсов и проверке вёрстки по чек-листам. Claude Code CX Codex Cursor +1 959установок threejs-postprocessing calesthio Скилл помогает агенту добавлять в Three.js постобработку: свечение, размытие, глубину резкости и экранные эффекты. Пригодится для настройки визуального пайплайна. Claude Code CX Codex Cursor +1 1 000установок frontend-design официальный anthropics Скилл задаёт осмысленное визуальное направление для новых интерфейсов и редизайна. Подойдёт, когда стандартный шаблонный UI не устраивает. Claude Code Claude.ai 1 025 790установок grill-me Matt Pocock Скилл проводит жёсткое интервью по плану или дизайну, чтобы найти пробелы и уточнить решения. Подойдёт перед началом разработки. Claude Code 1 424 476установок design-taste-frontend Leonxlnx Скилл задаёт арт-дирекцию для публичных страниц и рабочих экранов, а затем проверяет результат в браузере по скриншотам. Нужен, когда интерфейс выглядит шаблонным или недоработанным. Claude Code CX Codex Cursor +1 673 100установок

Вопросы о excalidraw

Как установить excalidraw в Claude Code?

Выполните npx skills add NousResearch/hermes-agent --skill excalidraw -a claude-code. Файл скилла находится по пути ~/.claude/skills/excalidraw/SKILL.md.

Что делает скилл excalidraw?

Он создаёт JSON-диаграммы Excalidraw и сохраняет их как .excalidraw файлы. Скилл охватывает архитектурные схемы, блок-схемы и диаграммы последовательностей.

Что нужно для загрузки диаграммы по ссылке?

Для загрузки через scripts/upload.py нужен пакет Python cryptography. Скрипт принимает путь к .excalidraw файлу.

Исходный текст

SKILL.md · MIT
---
name: excalidraw
description: "Hand-drawn Excalidraw JSON diagrams (arch, flow, seq)."
version: 1.0.1
author: Hermes Agent
license: MIT
dependencies: []
platforms: [linux, macos, windows]
metadata:
  hermes:
    tags: [Excalidraw, Diagrams, Flowcharts, Architecture, Visualization, JSON]
    related_skills: []

---

# Excalidraw Diagram Skill

Create diagrams by writing standard Excalidraw element JSON and saving as `.excalidraw` files. These files can be drag-and-dropped onto [excalidraw.com](https://excalidraw.com) for viewing and editing. No accounts, no API keys, no rendering libraries -- just JSON.

## When to use

Generate `.excalidraw` files for architecture diagrams, flowcharts, sequence diagrams, concept maps, and more. Files can be opened at excalidraw.com or uploaded for shareable links.

## Workflow

1. **Load this skill** (you already did)
2. **Write the elements JSON** -- an array of Excalidraw element objects
3. **Save the file** using `write_file` to create a `.excalidraw` file
4. **Optionally upload** for a shareable link using `scripts/upload.py` via `terminal`

### Saving a Diagram

Wrap your elements array in the standard `.excalidraw` envelope and save with `write_file`:

```json
{
  "type": "excalidraw",
  "version": 2,
  "source": "hermes-agent",
  "elements": [ ...your elements array here... ],
  "appState": {
    "viewBackgroundColor": "#ffffff"
  }
}
```

Save to any path, e.g. `~/diagrams/my_diagram.excalidraw`.

### Uploading for a Shareable Link

Run the upload script (located in this skill's `scripts/` directory) via terminal:

```bash
python skills/creative/excalidraw/scripts/upload.py ~/diagrams/my_diagram.excalidraw
```

This uploads to excalidraw.com (no account needed) and prints a shareable URL. Requires the `cryptography` pip package (`pip install cryptography`).

---

## Element Format Reference

### Required Fields (all elements)
`type`, `id` (unique string), `x`, `y`, `width`, `height`

### Defaults (skip these -- they're applied automatically)
- `strokeColor`: `"#1e1e1e"`
- `backgroundColor`: `"transparent"`
- `fillStyle`: `"solid"`
- `strokeWidth`: `2`
- `roughness`: `1` (hand-drawn look)
- `opacity`: `100`

Canvas background is white.

### Element Types

**Rectangle**:
```json
{ "type": "rectangle", "id": "r1", "x": 100, "y": 100, "width": 200, "height": 100 }
```
- `roundness: { "type": 3 }` for rounded corners
- `backgroundColor: "#a5d8ff"`, `fillStyle: "solid"` for filled

**Ellipse**:
```json
{ "type": "ellipse", "id": "e1", "x": 100, "y": 100, "width": 150, "height": 150 }
```

**Diamond**:
```json
{ "type": "diamond", "id": "d1", "x": 100, "y": 100, "width": 150, "height": 150 }
```

**Labeled shape (container binding)** -- create a text element bound to the shape:

> **WARNING:** Do NOT use `"label": { "text": "..." }` on shapes. This is NOT a valid
> Excalidraw property and will be silently ignored, producing blank shapes. You MUST
> use the container binding approach below.

The shape needs `boundElements` listing the text, and the text needs `containerId` pointing back:
```json
{ "type": "rectangle", "id": "r1", "x": 100, "y": 100, "width": 200, "height": 80,
  "roundness": { "type": 3 }, "backgroundColor": "#a5d8ff", "fillStyle": "solid",
  "boundElements": [{ "id": "t_r1", "type": "text" }] },
{ "type": "text", "id": "t_r1", "x": 105, "y": 110, "width": 190, "height": 25,
  "text": "Hello", "fontSize": 20, "fontFamily": 1, "strokeColor": "#1e1e1e",
  "textAlign": "center", "verticalAlign": "middle",
  "containerId": "r1", "originalText": "Hello", "autoResize": true }
```
- Works on rectangle, ellipse, diamond
- Text is auto-centered by Excalidraw when `containerId` is set
- The text `x`/`y`/`width`/`height` are approximate -- Excalidraw recalculates them on load
- `originalText` should match `text`
- Always include `fontFamily: 1` (Virgil/hand-drawn font)

**Labeled arrow** -- same container binding approach:
```json
{ "type": "arrow", "id": "a1", "x": 300, "y": 150, "width": 200, "height": 0,
  "points": [[0,0],[200,0]], "endArrowhead": "arrow",
  "boundElements": [{ "id": "t_a1", "type": "text" }] },
{ "type": "text", "id": "t_a1", "x": 370, "y": 130, "width": 60, "height": 20,
  "text": "connects", "fontSize": 16, "fontFamily": 1, "strokeColor": "#1e1e1e",
  "textAlign": "center", "verticalAlign": "middle",
  "containerId": "a1", "originalText": "connects", "autoResize": true }
```

**Standalone text** (titles and annotations only -- no container):
```json
{ "type": "text", "id": "t1", "x": 150, "y": 138, "text": "Hello", "fontSize": 20,
  "fontFamily": 1, "strokeColor": "#1e1e1e", "originalText": "Hello", "autoResize": true }
```
- `x` is the LEFT edge. To center at position `cx`: `x = cx - (text.length * fontSize * 0.5) / 2`
- Do NOT rely on `textAlign` or `width` for positioning

**Arrow**:
```json
{ "type": "arrow", "id": "a1", "x": 300, "y": 150, "width": 200, "height": 0,
  "points": [[0,0],[200,0]], "endArrowhead": "arrow" }
```
- `points`: `[dx, dy]` offsets from element `x`, `y`
- `endArrowhead`: `null` | `"arrow"` | `"bar"` | `"dot"` | `"triangle"`
- `strokeStyle`: `"solid"` (default) | `"dashed"` | `"dotted"`

### Arrow Bindings (connect arrows to shapes)

```json
{
  "type": "arrow", "id": "a1", "x": 300, "y": 150, "width": 150, "height": 0,
  "points": [[0,0],[150,0]], "endArrowhead": "arrow",
  "startBinding": { "elementId": "r1", "fixedPoint": [1, 0.5] },
  "endBinding": { "elementId": "r2", "fixedPoint": [0, 0.5] }
}
```

`fixedPoint` coordinates: `top=[0.5,0]`, `bottom=[0.5,1]`, `left=[0,0.5]`, `right=[1,0.5]`

### Drawing Order (z-order)
- Array order = z-order (first = back, last = front)
- Emit progressively: background zones → shape → its bound text → its arrows → next shape
- BAD: all rectangles, then all texts, then all arrows
- GOOD: bg_zone → shape1 → text_for_shape1 → arrow1 → arrow_label_text → shape2 → text_for_shape2 → ...
- Always place the bound text element immediately after its container shape

### Sizing Guidelines

**Font sizes:**
- Minimum `fontSize`: **16** for body text, labels, descriptions
- Minimum `fontSize`: **20** for titles and headings
- Minimum `fontSize`: **14** for secondary annotations only (sparingly)
- NEVER use `fontSize` below 14

**Element sizes:**
- Minimum shape size: 120x60 for labeled rectangles/ellipses
- Leave 20-30px gaps between elements minimum
- Prefer fewer, larger elements over many tiny ones

### Color Palette

See `references/colors.md` for full color tables. Quick reference:

| Use | Fill Color | Hex |
|-----|-----------|-----|
| Primary / Input | Light Blue | `#a5d8ff` |
| Success / Output | Light Green | `#b2f2bb` |
| Warning / External | Light Orange | `#ffd8a8` |
| Processing / Special | Light Purple | `#d0bfff` |
| Error / Critical | Light Red | `#ffc9c9` |
| Notes / Decisions | Light Yellow | `#fff3bf` |
| Storage / Data | Light Teal | `#c3fae8` |

### Tips
- Use the color palette consistently across the diagram
- **Text contrast is CRITICAL** -- never use light gray on white backgrounds. Minimum text color on white: `#757575`
- Do NOT use emoji in text -- they don't render in Excalidraw's font
- For dark mode diagrams, see `references/dark-mode.md`
- For larger examples, see `references/examples.md`


© Hermes Agent · MIT · NousResearch/hermes-agent

Смотрите также

Спонсоры проекта

Компании, которые помогают держать аналитику открытой