본문으로 건너뛰기
cccskills
무료GitHub에 공개한국어 소개

Excalidraw

Excalidraw 실시간 캔버스에 손으로 그린 듯한 도식을 만들고 기존 캔버스나 `.excalidraw` 파일을 정리합니다. Mermaid 도식을 변환하고 결과를 내보내거나 적절한 형식으로 공유할 수 있습니다.

원문원문 설명 보기

Sketches ideas as hand-drawn Excalidraw diagrams on a live local canvas via the pinned mcp-excalidraw-server CLI, with mermaid conversion, file I/O, and share links. USE WHEN excalidraw, whiteboard, canvas, sketch a diagram, draw this on a canvas, hand-drawn diagram, draw my idea, architecture sketch, live canvas, put this on the whiteboard, read my canvas, organize my whiteboard, .excalidraw file, mermaid to excalidraw. NOT FOR polished images (Art), web UI (Webdesign), video (HyperFrames).

danielmiessler/LifeOS스타 19,635(GitHub 19,635 + cccskills 0)

실행 점수 미검증

설치 방법 보기

이럴 때 유용합니다

  • 아이디어를 손그림풍 도식으로 만들 때
  • 거친 화이트보드를 정리할 때
  • Mermaid 도식을 Excalidraw로 바꿀 때
  • 이미지가 포함된 도식을 내보낼 때

한국어 소개

할 수 있는 일

Excalidraw는 아이디어와 구성을 손으로 그린 듯한 도식으로 실시간 Excalidraw 캔버스에 그립니다. 기존 캔버스나 .excalidraw 파일을 읽고 요소를 정리하며, Mermaid 문법으로 작성한 도식을 변환할 수 있습니다. 결과를 파일로 내보낼 수 있고, 이미지가 없는 도식은 공유 링크를 만들 수 있습니다. 이미지가 포함된 도식은 이미지 데이터를 보존하는 .excalidraw 파일 같은 형식으로 전달합니다.

이럴 때 유용합니다

화이트보드에서 생각을 정리하거나 시스템 구성과 절차를 간단한 그림으로 나타낼 때 사용할 수 있습니다. 기존 도식의 그룹과 관계를 알아보기 쉽게 정리할 때도 유용합니다.

사용 예시

  • “이 3단계 흐름을 도식으로 그려 주세요.”
  • “캔버스에 적은 아이디어를 정리해 주세요.”
  • “이 Mermaid 도식을 Excalidraw로 바꿔 주세요.”

주의 사항

mcp-excalidraw-server를 사용하는 CLI가 필요합니다. 실시간 캔버스는 로컬에서 실행되며 브라우저에서 열어 확인합니다. 이미지가 포함된 도식은 공유 링크가 아니라 .excalidraw 파일 등으로 전달해야 합니다.

이 소개문은 공개된 SKILL.md를 바탕으로 AI(OpenAI Codex)가 작성했습니다. 정확한 사양은 아래 원문을 확인하세요.

문서 점검

AI가 SKILL.md의 내용에서 주의가 필요한 작업과 도입 전제를 확인했습니다. 점수는 실제로 실행한 결과(실행 검증)만으로 매깁니다.

안전성전송·삭제·명령 실행 등을 명시하고 있는가
B일부 부족먼저 스냅샷을 만들고 빈 캔버스를 주의하라고 하지만 위험한 캔버스 작업도 포함됩니다.
도입의 용이성필요한 도구나 API 키가 적고 적혀 있는가
B일부 부족bun, 고정 버전 CLI, 브라우저 탭이 필요하지만 여기에는 설치 단계가 없습니다.

점수에는 넣지 않았습니다. 2026년 10월 28일 기준으로 AI(OpenAI Codex)가 판정했습니다. 참고용이므로 설치 전에 원문도 확인해 주세요.

평가가 다르다고 생각되면 재검토를 요청하기

어느 항목이 왜 다르다고 생각하는지 적어 주세요. 로그인은 필요 없습니다. SKILL.md와 대조해 평가를 다시 만들고 이곳에 반영합니다.

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

포함된 파일(8)

  • SKILL.md9.7 KB
  • Intents/RefineDiagram.md2.2 KB
  • Intents/SketchDiagram.md3.7 KB
  • References/Cheatsheet.md5.9 KB
  • Tools/AddImage.ts6.2 KB
  • Tools/Canvas.ts765 B
  • Tools/ContrastCheck.ts4.3 KB
  • Tools/Share.ts2.8 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Excalidraw

Drives a live Excalidraw canvas from the command line via the community mcp-excalidraw-server package (MIT), version-pinned through Tools/Canvas.ts. The canvas runs locally; the user watches the diagram draw itself at the canvas URL and can hand-edit the moment the model stops. Two directions: model → canvas (sketch ideas) and canvas → model (describe reads a human's rough canvas back as structured data).

Ideal State

  • Every diagram left behind is readable by the person it is for: no truncated or overlapping text, label style set at creation, and Tools/ContrastCheck.ts exiting 0 against the real ground, which holds in light and dark themes alike.
  • What leaves the machine is the form that renders correctly: a link from Tools/Share.ts for a scene without images, the exported .excalidraw file (or a PNG flattened from it) for a scene carrying screenshots, and never a local canvas screenshot as final art.
  • The canvas is driven only through Tools/Canvas.ts, so the pinned package version and port hold, and the skill registers no MCP server.
  • A human's canvas is read back faithfully and nothing they drew is lost: risky changes are snapshotted first, and the detached server is stopped when the drawing work is done unless the user keeps using it.

Intent Routing

IntentTriggerFile
SketchDiagram"sketch a diagram", "draw this", "put this on a canvas"Intents/SketchDiagram.md
RefineDiagram"refine the diagram", "read my canvas", "organize my whiteboard", edit an existing .excalidrawIntents/RefineDiagram.md
FileRead when
References/Cheatsheet.mdwriting element JSON or using a command the intents do not show: full command list, element format, palette and sizing, layout anti-patterns, quality checklist, error recovery, raw REST API

Data & Config

User customizations live at <configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/Excalidraw/ (configRoot is $CLAUDE_CONFIG_DIR when set, else ~/.claude). When the directory exists, its PREFERENCES.md (default export directory, preferred palette, canvas port override) applies; when it is absent, the defaults stand.

Quick Reference

  • Tool: bun ~/.claude/skills/Excalidraw/Tools/Canvas.ts <command> [...] — pins mcp-excalidraw-server@2.0.0 and port 3579; all commands pass through.
  • Canvas URL: http://127.0.0.1:3579 — the user opens this to watch live and hand-edit. Any canvas-touching command auto-starts the server.
  • Contrast gate: bun ~/.claude/skills/Excalidraw/Tools/ContrastCheck.ts [--bg <hex>] — deterministic WCAG check of every text element against its effective background; MUST exit 0 before any diagram is declared done.
  • Embed an image: bun ~/.claude/skills/Excalidraw/Tools/AddImage.ts <image> --x N --y N [--w N --h N] or --replace <shapeId> to fit a screenshot inside an existing box. Registers the bytes as a data-URL file and adds an image element; the file travels inside the exported .excalidraw. Use for real screenshots as diagram nodes (e.g. a dashboard capture as the "Agents Dashboard" node).
  • Black-canvas share: bun ~/.claude/skills/Excalidraw/Tools/Share.ts <scene.excalidraw> [--bg <hex>] — uploads to excalidraw.com with the canvas background baked in (default #111114). Use it, never the CLI share (which hardcodes a white canvas). The shared-link editor does not reliably honor the file's viewBackgroundColor alone, so a non-white scene also carries a backdrop rectangle (Gotchas).
  • Exit codes: 0 ok, 1 error, 2 usage, 3 canvas unreachable, 4 browser tab required.
  • Files: exported .excalidraw files open at excalidraw.com (File → Open) or in the Excalidraw VS Code extension. A .excalidraw.md export targets the Obsidian plugin's native format.

Gotchas

  • Label styling is set at CREATION, deterministically — the export/share expansion gives each bound label its shape's strokeColor and the shape's fontSize prop (default 16). So: put fontSize: 20 on labeled shapes, choose stroke colors that read on the fill, and give solid-color focal boxes a PALE fill with a saturated stroke (never saturated fill + dark stroke, which makes the label invisible). No post-add patching, no free-text label workaround — free labels detach from shapes and were retracted after live use (2026-08-26). The viewer's dark mode inverts the whole canvas, so colored text on colored fill can vanish even when a light-mode screenshot looks fine; run Tools/ContrastCheck.ts before declaring done. Inversion preserves contrast ratios, so a passing check holds in both themes.
  • Embedded images do NOT survive an anonymous excalidraw.com share LINK — they render as a broken-image placeholder. Excalidraw stores image bytes in a separate encrypted file backend that the #json= link path doesn't populate; only the scene travels. Images DO survive the exported .excalidraw FILE (open it via File→Open / the VS Code extension / desktop app and the picture renders). So a diagram carrying screenshots ships as the FILE, or as a flattened PNG rendered from the file — never as a share link.
  • Loading a share link on excalidraw.com shows a "Load from link" dialog — the user must click "Replace my content" (their previous excalidraw.com scene is overwritten; mention it when handing over a link).
  • The bundled live-canvas app mismeasures API-created text (upstream bug, v2.0.0) — the interactive layer renders text at ~2× its stored size, clipping bound AND free labels, and its screenshot/export renders can be mangled too. The scene DATA stays correct: excalidraw.com renders the same elements perfectly. Until fixed upstream: treat the local canvas as watch-it-draw preview only; the editing surface and any final render is excalidraw.com via Tools/Share.ts (or the exported .excalidraw file). Never ship a local screenshot as final art without eyeballing it.
  • Fresh browser tabs race the initial scene load and can show an EMPTY canvas while the server holds the full scene. Repaint every connected tab with export + import --replace (full rebroadcast). Warn the user never to click the app's "Sync to Backend" button in a blank tab — it pushes the empty scene over the server (snapshot first regardless).
  • Always go through Tools/Canvas.ts, never bare bunx mcp-excalidraw-server — the wrapper pins version and port; a bare invocation on default port 3000 collides with dev servers and drifts on @latest.
  • Screenshots, mermaid, image export, and viewport need an open browser tab (exit code 4) — the rendering runs in the frontend. Element CRUD, describe, export/import work headless. For automated visual verification, open the canvas URL via the browser-automation skill; otherwise ask the user to open it.
  • The scene background is not controllable from the CLI — import does not apply appState.viewBackgroundColor (verified). For a non-white ground, draw an explicit locked backdrop rectangle first (created first = behind everything) and pass its color to ContrastCheck.ts --bg.
  • Never put text on a large background-zone rectangle — the bound label centers mid-zone, overlapping everything inside, and cannot be repositioned. Use a free-standing text element at the zone's top-left instead.
  • zsh echo mangles element JSON — it expands \n inside strings. Write specs to a file and pass the path, or pipe with printf '%s'.
  • Duplicate text elements after clear/re-add — the frontend auto-sync can re-inject cached bound labels. Find them with query --type text (look for containerId), delete, let sync settle.
  • fontFamily must be a string ("1"–"8" or a name like "helvetica"); a bare number fails.
  • Raw REST uses a stricter format than CLI (label: {text}, start/end: {id}) — only relevant when POSTing to the API directly.
  • stop when the session's drawing work is done if the user won't keep using the canvas — the server runs detached and survives the session.
  • This skill deliberately registers no MCP server — the same package ships one, but the LifeOS standard is CLI-first; don't add it to any mcpServers block, and never run the upstream install-skill command (it writes a non-canonical skill dir).

Examples

Example 1: Idea to diagram

User: "Sketch the three-stage pipeline as a diagram"
→ SketchDiagram intent
→ The live canvas URL with the pipeline drawn, ContrastCheck passing, and an exported .excalidraw file or verified share link

Example 2: Structure a rough canvas

User: "I dumped ideas on the canvas — organize them"
→ RefineDiagram intent
→ The user's own elements, clustered into labelled zones and connected with bound arrows, visible live on the canvas

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

AnnualReports

무료요약 있음

여러 업체와 공공기관의 사이버 보안 보고서를 검색하고 가져와 위협, 랜섬웨어, 침해 통계 등의 추세를 비교합니다. 분석에는 출처별 업체, 연도, 보고서를 표시하고 자료 간 차이도 따로 다룹니다.

  • 분류별 위협 보고서를 찾을 때
  • 특정 업체의 보고서를 가져올 때
  • 여러 업체의 랜섬웨어 동향을 비교할 때
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

ApertureOscillation

무료요약 있음

기능이나 구성 요소 자체의 설계 요구와 시스템 전체의 목표를 세 단계로 비교합니다. 설계상의 충돌과 적절한 구현 범위를 정리하고, 제안한 설계가 전체 방향과 맞는지 평가합니다.

  • 서비스나 라이브러리를 분리할지 판단하기
  • 기능 요구와 제품 방향 비교하기
  • 새 구성 요소와 기존 시스템의 정합성 확인하기
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

Aphorisms

무료요약 있음

글의 주제에 맞는 격언과 인용문을 찾아 저자와 선정 이유를 함께 제안합니다. 출처가 있는 인용문을 추가하고, 사상가의 말을 주제별로 조사하며, 사용 기록을 관리해 같은 인용문을 반복하지 않도록 돕습니다.

  • 뉴스레터에 어울리는 인용문 찾기
  • 출처와 함께 중복 없이 인용문 저장하기
  • 주제별로 사상가의 말 조사하기
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

Art

무료요약 있음

블로그 삽화, 기술 도표, 비교 그림, 만화, 아이콘 등을 용도에 맞는 절차로 제작합니다. 구도와 색상, 이미지 모델을 정하고 검토용 이미지를 출력합니다.

  • 블로그 제목 이미지를 만들 때
  • 시스템 구조를 그림으로 설명할 때
  • 비교나 연대표를 시각화할 때
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

ArtDirection

무료요약 있음

브리프와 제작 기준에 따라 이미지, 영상, 슬라이드, 사이트 화면 캡처의 시각 품질을 평가합니다. 두 비전 심사자가 점수와 결함 우선순위를 제시하고, 정해진 횟수 안에서 수정을 돕습니다. 평가를 통과한 결과물만 전달할 수 있으며, 사람의 점수와 의견은 별도 기록해 심사 보정에 활용합니다.

  • 이미지 수정 항목의 우선순위 정리
  • 기준에 따라 영상이나 슬라이드 평가
  • 공개 전 시각 품질 점검
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

ArXiv

무료요약 있음

주제, 연구 분야, 논문 ID로 arXiv 논문을 찾고 제목, 저자, 초록, 링크를 정리합니다. 새 논문을 확인하고, 제공되는 경우 AlphaXiv의 AI 생성 개요도 가져옵니다.

  • AI·머신러닝 분야의 새 논문 확인
  • 특정 주제의 논문 검색
  • 논문 ID나 arXiv 주소로 조회
danielmiessler/LifeOS2만2026년 10월 28일 업데이트

danielmiessler의 스킬 모두 보기

이 스킬의 문제 신고