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 h0rv/d2-mcp --skill d2git clone --depth 1 https://github.com/h0rv/d2-mcpWrote 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/h0rv/d2-mcp/d2)<a href="https://agentmods.dev/skills/h0rv/d2-mcp/d2"><img src="https://agentmods.dev/badge/skills/h0rv/d2-mcp/d2/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/h0rv/d2-mcp/d2"><img src="https://agentmods.dev/badge/skills/h0rv/d2-mcp/d2.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.00049 | $0.00867 |
| Opus 5.5 | $0.00020 | $0.00347 |
| Sonnet 5.5 | $0.00010 | $0.00173 |
| Haiku 4.5 | $0.00005 | $0.00087 |
Grade A, and why
d2 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 8d 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 — 34 lines — stays where its author put it; the contents beside it link to each section on GitHub.
D2 diagrams
Use the connected d2-mcp tools. If they are unavailable, explain that the MCP connection must be installed; do not claim a diagram was rendered. Discover compile-d2, render-d2, and fetch_d2_cheat_sheet; clients may add a prefix or normalize hyphens to underscores.
Inspect the advertised tool schemas before selecting options. This workflow targets the refreshed server; older releases may lack layout choices, structured diagnostics, or native PNG. If a requested feature is unavailable, explain the version limitation and use only options the connected server advertises.
- Identify the audience, relationships, and requested artifact. Infer reasonable layout choices from the task; ask only for missing facts that change the diagram.
- Read
fetch_d2_cheat_sheetwhen syntax or supported features are uncertain. Write the complete D2 source. Keep labels short, group related nodes, and make arrow direction meaningful. Start withdagre; tryelkfor dense hierarchies ortalawhen its layout improves readability. - Call
compile-d2withcodeand the intended layout/options. ReadisErrorandstructuredContent.error, including one-based diagnostic locations. Fix the source and validate again. Do not retry unchanged invalid input or silently remove requested content. - Call
render-d2with the same complete source/options. Prefer PNG for viewing, SVG for a scalable downloadable artifact, and ASCII for text-only output. Inspect the returned artifact when the client permits; report rendering success separately from visual inspection. - Return the artifact and complete source, or save source to a user-requested local file when your client has file tools. Explain material assumptions and any limitation that prevented the requested result. For revisions, resubmit the full source and options.
Inputs, files, and state
codeworks with local or remote servers and agents without files.file_pathmeans a relative.d2file on the server, within its configured input root; it does not upload a client file. Use exactly one input. Resolve imports into self-contained source for a remote server unless its operator has configured the required files.- Each HTTP request is independent. Preserve the source and rendering options in the conversation or user-controlled files. The default server has no document store. Use
document_idandrevisiononly if a configured server advertises a document backend; handles work only within that backend and its authorization namespace. - PNG is MCP image content, SVG is an embedded resource containing XML, and ASCII is text. A
urn:sha256:...identifies returned content; it is not a download URL. A returnedfile:path is server-local. Do not invent a hosted artifact link. - Use
output_nameonly when the user wants a server-local artifact and the server has an output root. Overwrite needs both server opt-in and explicit request intent. Saving returned bytes with client file tools does not require server output configuration. - Assets require server opt-in. Never fetch arbitrary network images or bypass configured file roots. If an asset is unavailable, describe the limitation and offer a text/native-shape alternative without silently changing the requested diagram.
- Multi-board source needs an explicit
board_pathwhen selecting a nested board; inspect the tool schema for its path representation. One render returns one artifact, not a board collection.
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.
- 8d ago First seen · 34 lines · 49 tokens per session scan A 1c599e248d24
d2 is a skill published in the GitHub repository h0rv/d2-mcp (22 stars, last pushed today), licensed MIT. It adds 49 tokens to every session and 867 once invoked, about $0.0002 per session on Opus 5.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-10-13.
Other skills, from other repositories
webgl-holographic-foil
A self-contained WebGL2 hero: thin-film interference over a crushed-foil surface whose palette shifts with the viewing angle; move the cursor to tilt the film.
html-ppt-hermes-cyber-terminal
OpenDesign + BYOK: choosing and wiring your own model, hands-on — cost, quality, and the routing decision. Built as a decision-grade AI literacy deck for engineers, IT, applied-AI teams.
html-ppt-taste-brutalist
16:9 HTML deck in tactical-telemetry / CRT-terminal taste. Deactivated-CRT charcoal slides, white-phosphor monospace, hazard-red accent, scanline overlay, ASCII syntax, density over decoration. Distilled from Leonxlnx/taste-skill brutalist-skill (Tactical Telemetry mode).
visual-ralph
Visual Ralph orchestration for frontend UI from generated references, static references, or live URL targets, using $ultragoal with built-in visual verdict and pixel-diff evidence until the implementation matches and leaves a reproducible design system.
glance-canonical-layouts
Use this skill to create home screen widgets using Jetpack Glance Canonical Layouts from the Android Platform Samples project, or when asked to implement standard widget layout patterns (including Check List, Image Grid, Snap Scrolling, and Standard Toolbar).
accessibility
Consolidated accessibility skill entrypoint for WCAG 2.2, ARIA Authoring Practices, cognitive accessibility, Section 508, EN 301 549, design intent verification, and the Accessibility Planner workflow.