Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add fabricioartur/codex-excalidraw-skill --skill skillgit clone --depth 1 https://github.com/fabricioartur/codex-excalidraw-skillWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/fabricioartur/codex-excalidraw-skill/skill)<a href="https://agentmods.dev/skills/fabricioartur/codex-excalidraw-skill/skill"><img src="https://agentmods.dev/badge/skills/fabricioartur/codex-excalidraw-skill/skill/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/fabricioartur/codex-excalidraw-skill/skill"><img src="https://agentmods.dev/badge/skills/fabricioartur/codex-excalidraw-skill/skill.svg" alt="Reviewed on agentmods" width="80" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00095 | $0.03233 |
| Opus 5 | $0.00048 | $0.01617 |
| Sonnet 5 | $0.00019 | $0.00647 |
| Haiku 4.5 | $0.00010 | $0.00323 |
Grade A, and why
excalidraw scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 9d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 218 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Excalidraw
Overview
Create diagrams as real .excalidraw JSON, not screenshots, so the user can keep editing them in Excalidraw. Prefer simple editable shapes, text, arrows, frames, and grouped sections over pixel-perfect artwork.
Important boundary: this skill can create editable files and preview pages, but a skill alone cannot create a native inline Excalidraw widget with live editing, checkpoint restoration, or host-provided buttons inside the chat UI. That experience requires an MCP/app/widget integration that exposes operations like read_me, create_view, checkpoint storage, and widget rendering.
Core Workflow
- Clarify the diagram intent only when the request lacks the actors, nodes, or flow.
- Decide whether this is a new diagram or an edit to the previous diagram:
- If the user asks to adjust, change, add, remove, make bigger/smaller, recolor, relabel, simplify, improve, or otherwise revise "this", "that", "the diagram", or "the last one", use the incremental edit workflow below.
- If the user asks for a new subject, create a new diagram.
- Default to web-link handoff for new diagrams:
- Use
scripts/create_web_diagram.pyand pass the spec through stdin. - Let the script create its own temporary folder under
/private/tmp. - Request network permission during generation so Codex can upload the encrypted scene and return a ready
https://excalidraw.com/#json=...link. - Return the preview image, the local preview page path, and the ready Excalidraw Web URL.
- The local preview page must include an Open in Excalidraw button that points directly to the ready web URL.
- Use
--no-web-linkonly when the user explicitly asks for local-only/offline output or refuses network access. - Persist a copy of the latest diagram in the default state directory, or in
CODEX_EXCALIDRAW_STATE_DIRwhen configured, withscripts/session_state.py saveso later edits can reuse it.
- Use
- Choose the fastest path:
- For simple node-and-edge diagrams, use
scripts/generate_excalidraw.py. - For soccer/football roster or tactical squad diagrams, use
scripts/create_tactical_roster.py; do not hand-write the scene unless the template cannot represent the request. - For landmark/building elevation diagrams, use
scripts/create_building_elevation.py; do not hand-write a building scene unless the template cannot represent the request. - For Mermaid or standard diagram syntax, consult
references/official-excalidraw.mdand prefer the official@excalidraw/mermaid-to-excalidrawpath when available. - For spatial, editorial, tactical, dashboard-like, swimlane, field/court/map, roster, org chart, comparison, or visually composed diagrams, edit/create the JSON directly using
references/format.md; do not force these into generic boxes and arrows.
- For simple node-and-edge diagrams, use
- Save output with the
.excalidrawextension when a file is needed. - Generate a preview when the user expects to see the diagram in chat or browser:
- Prefer
--previewwithscripts/generate_excalidraw.pyfor generated diagrams. - For direct JSON edits, create a separate SVG preview, generate a ready web URL when permitted, and use
scripts/preview_page.pyto create the HTML preview with the Open in Excalidraw button.
- Prefer
- Validate the result with
scripts/validate_scene.pywhen an.excalidrawfile exists. It checks top-level shape, duplicate IDs, invisibly small elements, and text likely to be unreadable. - Run the visual quality gate in
references/quality-gate.mdbefore delivery. Fix readability or layout problems before showing the user. - Save latest-state metadata with
scripts/session_state.py saveunless the user explicitly asks for a throwaway diagram. - Tell the user what is available: preview image first, then the ready Excalidraw Web link and local preview page with the Open in Excalidraw button.
What ships with it
15 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
- agents/openai.yaml 218 B
- references/authoring-rules.md 1.7 KB
- references/format.md 1.6 KB
- references/official-excalidraw.md 2.8 KB
- references/quality-gate.md 1.4 KB
- references/visual-layouts.md 1.1 KB
- scripts/create_building_elevation.py 7.8 KB runs code
- scripts/create_tactical_roster.py 13 KB runs code
- scripts/create_web_diagram.py 3.1 KB runs code
- scripts/generate_excalidraw.py 13 KB runs code
- scripts/preview_page.py 7.6 KB runs code
- scripts/scene_primitives.py 4.7 KB runs code
- scripts/session_state.py 3.3 KB runs code
- scripts/share_excalidraw.mjs 2.8 KB runs code
- scripts/validate_scene.py 2.9 KB runs code
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 9d ago First seen · 218 lines · 95 tokens per session scan A 867edc987f7e
excalidraw is a skill published in the GitHub repository fabricioartur/codex-excalidraw-skill (20 stars, last pushed 3mo ago), licensed MIT. It adds 95 tokens to every session and 3,233 once invoked, about $0.0005 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
design-audit
Premium UI/UX design auditor with Jobs/Ive philosophy. Use when reviewing, evaluating, or elevating existing UI — triggers on "audit my design", "review UI", "make it feel premium", "design review", "UX audit", "elevate the design", "Jobs/Ive style", or when asked to improve visual quality of an existing interface…
double-diamond
A four-stage design method for understanding a problem, defining it clearly, exploring possible solutions, and choosing one to deliver.
HTMLHero.skill
A workflow for building a working, previewable first-page hero section—a prominent opening area of a website—from a prompt, brand direction, and visual requirements. It can work with HTML or React projects and treats the hero as the visual template for later pages.
HTMLPPT.skill
A workflow for turning a designed HTML page or existing web project into a multi-page presentation that runs in a browser. It keeps later slides consistent with the first page's visual style.
design-review
Use when adding or restyling a Facet UI component, or before merging a UI PR — walks the component against DESIGN.md (tokens, states, a11y, contrast, responsive) so the design system is matched, not just remembered. The judgment check verify.sh can't grep.
make-interfaces-feel-better
Use when building or reviewing UI polish: typography, hit areas, nested radius, optical alignment, shadows, media outlines, micro-interactions, and animation performance.