Drawbridge — скилл

Скилл и локальный сервер: Claude Code рисует блок-схемы и архитектуру, а диаграммы растут на холсте Excalidraw в браузере.

  • 73 ★ репозитория
  • Последний коммит
Скилл

Расширенный доступ

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

  • Скилл заставляет агента отправлять запросы на локальный HTTP-сервер.
  • Аутентификация API не описана: открытый порт позволит любому клиенту сети менять холсты.
Все причины и проверки

alexknowshtml/drawbridge

Установка

Работает в

В терминале, через SkillFoxx CLI

npx skillfoxx add skills/drawbridge

Определит агенты на машине, покажет уровень доступа и зафиксирует версию.

Другие способы установки

Доступ и проверки

Как мы проверяем

Расширенный доступИнструмент запускает код или ходит в сеть, а внешние данные только читает.

  • Скилл заставляет агента отправлять запросы на локальный HTTP-сервер.
  • Аутентификация API не описана: открытый порт позволит любому клиенту сети менять холсты.

Это чужой код. Посмотрите файлы в репозитории перед установкой.

Что делает

Drawbridge состоит из скилла для Claude Code и небольшого сервера диаграмм. Агент отправляет по HTTP упрощенные описания фигур, сервер передает их по WebSocket в браузер, где Excalidraw превращает их в полноценные элементы с подгрузкой шрифтов и измерением текста. Диаграмма растет на глазах у пользователя. Скилл обучает Claude формату элементов, палитре с осмысленными цветами, правилам размеров и минимальным шрифтам, порядку рисования для потокового вывода и выгрузке в PNG или SVG. Сессии определяются хешем адреса страницы, а история изменений хранится в журнале, поэтому доступны отмена, очистка и управление камерой через API.

Для кого. Разработчикам, которые просят Claude Code нарисовать архитектуру или карту зависимостей и хотят видеть результат сразу, без экспорта.

Подходит, если

  • Нужна блок-схема процесса, которую агент дорисовывает по ходу беседы.
  • Многоуровневую архитектуру показывают команде на общем холсте.
  • Карту зависимостей проекта строят и выгружают в PNG или SVG.
  • Скрипт или агент должен публиковать диаграмму по HTTP из пайплайна.

Не подходит, если

  • Нужна диаграмма в формате Mermaid или PlantUML: сервер рисует на Excalidraw.
  • Нет возможности запустить локальный сервер Node.js.
  • Диаграмму требуется получить без браузера и без участия человека.

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

Нарисуй схему трехуровневого веб-приложения на Drawbridge и добавляй блоки по мере объяснения.

Ограничения

Сервер запускают самостоятельно: `npm install`, `npm run build` и `npm start`, он слушает порт 3062 для HTTP и 3061 для WebSocket, а фронтенд отдает любой статический сервер. Картинки, брошенные на холст, не переживают перезагрузку страницы, пока не настроено хранилище DigitalOcean Spaces через переменные `DO_SPACES_*`. Описания аутентификации API нет, поэтому порт лучше держать закрытым от сети. У репозитория нет файла лицензии, условия использования не заданы.

Как отключить. Удалите `.claude/skills/drawbridge` из проекта и остановите сервер. Папку `data` с сохраненными сессиями удалите отдельно.

Частые вопросы

Как подключить скилл к проекту?

Создайте каталог `.claude/skills/drawbridge` и скопируйте туда `skills/SKILL.md` из репозитория. После этого Claude сам вызывает скилл на просьбы о диаграммах.

Как открыть холст?

Откройте `http://localhost:3000/#my-session` после запуска фронтенда командой `npx serve dist`. Часть адреса после решетки задает идентификатор сессии.

Какие запросы принимает API?

`POST /api/session/:id/elements` заменяет все элементы, `append` добавляет новые, `clear` очищает, `undo` отменяет последнюю операцию, `viewport` двигает камеру.

Сохраняются ли диаграммы?

Да, история изменений пишется в журнал в каталоге `DRAWBRIDGE_DATA_DIR`, по умолчанию `./data`. Изображения хранятся отдельно и требуют настройки Spaces.

Можно ли запустить сервер в контейнере?

Да. Команда `podman-compose up -d` собирает и запускает сервер на порту 5050, а для автозапуска есть пример службы systemd.

Обсуждение

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

Скиллы
Официальный

Excaliself — свой сервер доски Excalidraw: встроенный MCP дает агенту искать, читать, создавать и экспортировать схемы.

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

Excalidraw MCP

Excalidraw MCP App Server

Официальный

MCP-сервер рисует диаграммы в стиле от руки Excalidraw прямо в чате: потоковая отрисовка, полноэкранное редактирование, экспорт

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

Около сотни скиллов для Claude Code: встречи и расшифровки, исследования, публикации, TDD, Telegram, почта и личная аналитика

ПлагинШирокий доступ413Звезды репозитория

Набор скиллов и хуков для Claude Code: брейншторм, ведение проекта воркерами, вики, конвейер книги.

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

Маркетплейс скиллов daymade

Claude Code Skills Marketplace

Маркетплейс плагинов для Claude Code и Codex: документы, аудио, GitHub, история сессий, финансы, macOS и доработанный skill-creator

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

Second Brain Skills

Claude Code Second Brain Skills

Набор скиллов для Claude Code под работу со знаниями: бренд и голос, клиент MCP, презентации PPTX, видео на Remotion, регламенты SOP и конструктор скиллов

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

Коротко о README

Репозиторий включает сервер на Express, фронтенд на Excalidraw и файл скилла. Автор благодарит проекты, на которых построен холст. В README описаны формат элементов, палитра, правила размеров, порядок рисования и полные примеры диаграмм.

Бейдж для README

Исходный SKILL.md

---
name: drawbridge
description: |
  Generate Excalidraw diagrams with a hand-drawn aesthetic using Drawbridge.
  Use when user asks for: flowcharts, dependency diagrams, project visualization,
  task maps, or "make a diagram of this". Pushes elements to a live Excalidraw
  canvas via HTTP API, or renders to PNG/SVG.
---

# Drawbridge Diagram Skill

Generate hand-drawn style diagrams as Excalidraw JSON. Uses the simplified element format with `convertToExcalidrawElements` handling all the heavy lifting (text measurement, container binding, arrow routing).

## Element Format (Simplified)

Only specify what matters. `convertToExcalidrawElements` fills in all required internal properties (groupIds, frameId, seeds, versions, etc.).

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

### Defaults (skip these)
strokeColor="#1e1e1e", backgroundColor="transparent", fillStyle="solid", strokeWidth=2, roughness=1, opacity=100

### Labeled Shapes (PREFERRED)

Add `label` to any shape for auto-centered text. No separate text elements needed:

```json
{ "type": "rectangle", "id": "r1", "x": 100, "y": 100, "width": 200, "height": 80,
  "roundness": { "type": 3 }, "backgroundColor": "#a5d8ff", "fillStyle": "solid",
  "label": { "text": "API Server", "fontSize": 20 } }
```

- Works on rectangle, ellipse, diamond
- Text auto-centers and container auto-resizes to fit
- Always include `"roundness": { "type": 3 }` for rounded corners

### Standalone Text (titles, annotations only)

```json
{ "type": "text", "id": "t1", "x": 150, "y": 50, "text": "System Architecture", "fontSize": 28 }
```

- `x` is the LEFT edge of the text
- To center text at position cx: `x = cx - (text.length * fontSize * 0.5) / 2`
- `textAlign` does NOT control horizontal position — it only affects multi-line wrapping

### Arrows

```json

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