Repackage the draw.io Claude Code skill as an installable plugin under plugins/claude-code/ and add a marketplace manifest at the repo root, so users install via /plugin marketplace add jgraph/drawio-mcp /plugin install drawio@drawio instead of hand-copying SKILL.md into ~/.claude/skills/. Supersedes #49 (@TripleRD), the original plugin + marketplace proposal; reimplemented here with shell-safety hardening and a deduped marketplace manifest. Structure: - git mv skill-cli/{drawio/SKILL.md,README.md} -> plugins/claude-code/ - skill-cli/CLAUDE.md -> plugins/claude-code/DEVELOPING.md (a CLAUDE.md at a plugin root is not loaded as context and trips `claude plugin validate`; renamed so validation is clean while keeping the maintainer notes) - .claude-plugin/marketplace.json (marketplace "drawio", owner "draw.io", plugin "drawio") - plugins/claude-code/.claude-plugin/plugin.json: single source of truth for version/description/author/license; the marketplace entry stays minimal ({name, source, category}) and inherits the rest (verified against the official plugin docs) - plugins/README.md (per-host grouping) - docs re-pointed Skill+CLI -> Claude Code Plugin; invocation is now /drawio:drawio (auto-triggers without the command in normal use) Security / correctness fixes in SKILL.md (beyond a verbatim move): - Windows/WSL2 draw.io path used bash backticks (command substitution), which would execute the binary at locate-time rather than store its path; switched to double-quoting and corrected the explanation. - Windows-native url mode built the .url shortcut with `echo URL=%URL%`, which cmd.exe splits on the URL's `&` query separators (truncated/corrupt shortcut, lost diagram payload) and referenced an undefined %URL%. Node now writes the .url file directly; only the `&`-free file path is passed to `start`. - Quoted filenames passed to the export CLI and the node -e one-liner. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
1.7 KiB
AI Assistant Plugins
This directory groups assistant-side integrations by host — one subdirectory per AI assistant. Each subdirectory is the plugin root for its host, packaging the draw.io skill in whatever format that host expects (manifest schema, file layout, invocation convention).
| Directory | Host | Status |
|---|---|---|
claude-code/ |
Claude Code | ✅ Available |
The Claude Code plugin is published through a marketplace manifest at the repo root (.claude-plugin/marketplace.json), so users can install it with:
/plugin marketplace add jgraph/drawio-mcp
/plugin install drawio@drawio
Adding a plugin for another host
If support for another assistant (Cursor, Codex, etc.) is added later, it lands as a sibling directory at this level:
plugins/
└── claude-code/ ← Claude Code plugin
The draw.io guidance itself — how to generate .drawio files, embed XML in PNG/SVG/PDF, and produce app.diagrams.net URLs — is shared. Only the wrapping (manifest format, file layout, invocation prefix) differs per host, and each host has its own plugin/skill model, so the wrapping is not assumed to be uniform.
The single source of truth for draw.io XML generation guidance lives at ../shared/xml-reference.md — every plugin references that file rather than duplicating its contents.
Other delivery mechanisms in this repo
Plugins are one of four ways to integrate draw.io with AI assistants. See the root README for the full comparison with the MCP App Server, MCP Tool Server, and Claude Project Instructions approaches.