What Programming Languages Does Diagram Design Support?
Diagram Design is a language‑agnostic diagram generation skill that requires no programming language to create diagrams—users describe diagrams in natural language or provide Mermaid/draw.io files, while the repository itself uses Python for internal tooling and optional JavaScript for animation.
Diagram Design, developed by cathrynlavery/diagram-design, does not lock you into any specific programming language for diagram creation. The skill accepts natural language prompts, Mermaid syntax, and draw.io files, then renders static diagrams that work in any browser without code execution.
How Diagram Design Works Without a Programming Language
The core philosophy of Diagram Design is 描述即代码 (description as code). You interact with the skill through supported AI agent platforms—Claude Code, Codex, Factory Droid, and Pi—using slash commands or plain-text requests.
For example, you can simply prompt:
"Make me an architecture diagram of my app"
The skill automatically selects the appropriate diagram type and renders it. No JavaScript, Python, or other language knowledge is required from the end user.
Input Formats Supported by Diagram Design
Rather than forcing a programming language, Diagram Design accepts several input formats as documented in skills/diagram-design/references/:
Mermaid Diagrams
The skill parses .mmd, .mermaid files, or fenced mermaid blocks within Markdown. As noted in skills/diagram-design/references/import-mermaid.md【source†L21-L23】, the parser extracts only the text—no Mermaid rendering or JavaScript execution occurs during processing.
Example input source that Diagram Design handles:
```mermaid
flowchart TD
A[Start] --> B{Is it working?}
B -->|Yes| C[Great!]
B -->|No| D[Debug]
### draw.io / diagrams.net Files
Diagram Design accepts `.drawio`, [`.drawio.xml`](https://github.com/cathrynlavery/diagram-design/blob/main/.drawio.xml), `.drawio.png`, and `.drawio.svg` formats. Per [`skills/diagram-design/references/import-drawio.md`](https://github.com/cathrynlavery/diagram-design/blob/main/skills/diagram-design/references/import-drawio.md)【source†L83-L86】, the skill **redraws these using its own layout system** rather than embedding the original files.
## Programming Languages in the Diagram Design Repository
While users need not code, the Diagram Design codebase itself contains two languages:
### Python (Core Implementation)
The repository's helper scripts are written in **Python**. Key files include:
| File | Purpose |
|------|---------|
| [`scripts/mermaid_extract.py`](https://github.com/cathrynlavery/diagram-design/blob/main/scripts/mermaid_extract.py) | Parses Mermaid text into internal diagram representation |
| [`scripts/drawio_extract.py`](https://github.com/cathrynlavery/diagram-design/blob/main/scripts/drawio_extract.py) | Extracts diagram data from draw.io files |
| [`scripts/self_check.py`](https://github.com/cathrynlavery/diagram-design/blob/main/scripts/self_check.py) | Validation and quality checks |
These scripts run during development or local installation, not during normal skill usage.
### JavaScript (Optional Enhancement)
Minimal **JavaScript** appears only for optional animation controls. According to [`SKILL.md`](https://github.com/cathrynlavery/diagram-design/blob/main/SKILL.md)【source†L559-L561】, diagrams are **fully functional without JavaScript execution**—they render as static HTML/SVG/PNG by default. JavaScript is strictly opt-in for motion effects.
## Agent Platform Compatibility
Diagram Design operates across multiple AI coding environments without platform-specific language requirements:
- **Claude Code** — `/diagram-design` slash command
- **Codex** — native skill integration
- **Factory Droid** — command invocation
- **Pi** — plain-text prompt support
Each platform invokes the same underlying skill; no local runtime or language installation is needed.
## Key Technical Documents
| Document | Location | Contents |
|----------|----------|----------|
| Skill overview | [`README.md`](https://github.com/cathrynlavery/diagram-design/blob/main/README.md) | Supported agents and diagram types |
| Core specification | [`skills/diagram-design/SKILL.md`](https://github.com/cathrynlavery/diagram-design/blob/main/skills/diagram-design/SKILL.md) | Design system and operation model |
| Mermaid reference | [`commands/import-mermaid.md`](https://github.com/cathrynlavery/diagram-design/blob/main/commands/import-mermaid.md) | Slash-command syntax |
| draw.io reference | [`commands/import-drawio.md`](https://github.com/cathrynlavery/diagram-design/blob/main/commands/import-drawio.md) | File format handling |
| Animation details | [`skills/diagram-design/references/animation.md`](https://github.com/cathrynlavery/diagram-design/blob/main/skills/diagram-design/references/animation.md) | Optional JavaScript constraints |
## Summary
- **Diagram Design supports no required programming language** for users—natural language, Mermaid, or draw.io inputs suffice.
- **Python powers the internal tooling** ([`mermaid_extract.py`](https://github.com/cathrynlavery/diagram-design/blob/main/mermaid_extract.py), [`drawio_extract.py`](https://github.com/cathrynlavery/diagram-design/blob/main/drawio_extract.py), and related scripts).
- **JavaScript is strictly optional** and only for animation; static diagrams work without it.
- **Output is static HTML/SVG/PNG** that renders in any browser environment.
## Frequently Asked Questions
### Does Diagram Design require me to know Python or JavaScript?
No. You interact with Diagram Design through natural language prompts or by providing Mermaid/draw.io files. The Python and JavaScript in the repository are implementation details for the skill itself, not user-facing requirements.
### Can I use Diagram Design if I only know Markdown?
Yes. Markdown with fenced Mermaid blocks is a fully supported input format. The skill parses the syntax directly without requiring you to understand Mermaid's underlying grammar.
### Why does the repository contain Python scripts if users don't need Python?
The Python files in `scripts/` handle file parsing and preprocessing. [`mermaid_extract.py`](https://github.com/cathrynlavery/diagram-design/blob/main/mermaid_extract.py) and [`drawio_extract.py`](https://github.com/cathrynlavery/diagram-design/blob/main/drawio_extract.py) transform external formats into Diagram Design's internal representation. These run server-side or during installation, shielding users from implementation complexity.
### Is JavaScript execution safe with Diagram Design diagrams?
Yes. JavaScript is **not executed by default**. Diagrams render as static assets. Optional motion features use minimal inline JavaScript only when explicitly enabled, and the skill documentation in [`skills/diagram-design/references/animation.md`](https://github.com/cathrynlavery/diagram-design/blob/main/skills/diagram-design/references/animation.md) describes strict constraints on what JavaScript is permitted.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →