AxonHub is an AI gateway that accepts requests through common model-provider SDKs and routes them to more than 100 large language models without requiring application code changes. Developers and organizations use it to switch providers, track requests and usage, manage budgets, and configure failover and load balancing.
Borrowing it
Nothing to install: this file belongs to looplj/axonhub. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/looplj/axonhub/unstable/.agents/skills/claude-design/SKILL.mdgit clone --depth 1 https://github.com/looplj/axonhubWrote 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/looplj/axonhub/claude-design)<a href="https://agentmods.dev/skills/looplj/axonhub/claude-design"><img src="https://agentmods.dev/badge/skills/looplj/axonhub/claude-design/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/looplj/axonhub/claude-design"><img src="https://agentmods.dev/badge/skills/looplj/axonhub/claude-design.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.00120 | $0.08167 |
| Opus 5.5 | $0.00048 | $0.03267 |
| Sonnet 5.5 | $0.00024 | $0.01633 |
| Haiku 4.5 | $0.00012 | $0.00817 |
Grade A, and why
claude-design 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 yesterday.
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.
This is a copy
86% identical to claude-design, which has more behind it and is treated as the original. This page carries a canonical link to it rather than competing with it.
How it starts
The opening of the file, as written. The whole thing — 215 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Design
This skill is a local build of the claude.ai Design (canvas) artifact type: the rules below are the type's own,
with the Artifact tool replaced by files on disk and this skill's scripts/artifact.mjs (The calls). A canvas is a
folder, <root>; its content is ITS OWN files under <root>/project/. The editor page (scripts/editor/, served
by artifact.mjs open) reads those files and saves the user's edits back into them.
Write only under <root>/project/: a file elsewhere never shows.
The canvas exists
Work on THAT canvas, its <root> in every command: never
create another. If no canvas exists yet: <root> = a new folder designs/<slug>/ named for the canvas
(designs/spring-menu/) in the working directory, or where the user says; the canvas's name
(REQUIRED; as the user says it; not "Design" or "Untitled") goes in title.
Read <root>/project/canvas.json: none, or boards empty: if just made, see Creating; else list its files; no .dc.html: see
Creating. Else see Revising.
Tell the user what happens on the canvas, never the mechanism. Asked to send it to apps like Canva: there is no Send to here; point the user to the editor's Export, if shown, to save a file they can import there. Give an app's import tool no other link, never the editor's local address.
The canvas's files: exact shapes
project/canvas.json, the index:{"v":3,"createdOnFiles":{"v":1,"at":"2026-09-14T18:20:00Z"},"title":"Spring Menu Poster","launch":{"view":"canvas"},"pages":[],"boards":{"Main.dc.html":{"x":0,"y":0,"w":880,"h":560}},"order":["Main.dc.html"],"notes":{},"designSystems":[]}.createdOnFiles: an index YOU create carries it exactly so,at= now.boards= one entry per artboard, keyed by its file's path underproject/:x,y,w,h= the FRAME on the canvas in CSS px (w,h40–8000; 80 px between frames in a row, 120 between rows), plus optionaltitle,page(none = the first),expand("fill": a PAGE),print("flow": PDF paginates),paper("letter"|"a4"),is_interactive(true: working controls),frameless(editor-set, keep it),guides(format.md),radius(corner px).order= the same paths, back to front; name the first artboardMain.dc.html(the entry). EVERY.dc.htmloutsideproject/ds/shows, listed or not,<dc-import>ed ones too: list each (w,h= its$preview); give it its importer's<head>lines to render alone; its<helmet>(rerun in importers): only font<link>, upload@font-face,body{margin:0};font-family, color on its root. An entry needs its file: write it. Optionalpages[{"id","name"}](≤40; ids[A-Za-z0-9_-]{1,40}) andlaunch:{"view":"canvas"}(optionally"page": a listed page id) or{"view":"focused","file":"Main.dc.html"}.notes{"<id>":{"x":0,"y":-300,"text":"Flows","kind":"title1","maxW":1840}}:x,y,textrequired; <1000 notes; ids as for pages.kindtitle1= a title for SEVERAL artboards, never for one (a frame's name strip shows itstitleor filename): one bold 72 px line; setmaxW(its row's width;maxHif tight): longer text shrinks. ≥223 px above its row, off name strips, nothing over it. Nokind= a sticky: setw; up to 4/3wtall (keep that clear), taller in empty canvas, then scrolls. Both takesizepx|s|m|l|xl|xxl,bold,italic,page,color/stickyfillgray|red|orange|green|teal|blue|purple|pink.kindrect|oval|pen|line|arrow|image is the user's; leave it.designSystems, and the files underproject/ds/<folder>/: only step 4's install writes them. An index that exists: keep every key and entry you are not changing, ones not named here too.project/<path>, one file per artboard: the WHOLE.dc.htmlsource.<path>ends.dc.html; segments start with a letter, digit or_, then only those and.-, no spaces; stems unique.- A support file you name goes under
project/too, linked relatively; an unnamed image or a font stays an upload (step 3). project/assets/: the uploads (The calls); never write there yourself.
What ships with it
27 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.
- artifact-type/reference/brand-colors.md 2.2 KB
- artifact-type/reference/brand-typography.md 1.5 KB
- artifact-type/reference/craft.md 16 KB
- artifact-type/reference/design-system-components.md 12 KB
- artifact-type/reference/diagrams.md 9.4 KB
- artifact-type/reference/format.md 11 KB
- artifact-type/reference/google-fonts-families.json 26 KB
- artifact-type/reference/google-fonts-notices.json 59 KB
- artifact-type/reference/google-fonts-reserved.json 7.2 KB
- artifact-type/reference/make-from-this.md 2.0 KB
- artifact-type/reference/print.md 5.7 KB
- artifact-type/reference/questions.md 4.3 KB
- artifact-type/reference/view-state.md 8.6 KB
- scripts/artifact.mjs 182 KB runs code
- scripts/editor/artifact-type/babel.min.js 3064 KB runs code
- scripts/editor/artifact-type/dc-runtime.js 1129 KB runs code
- scripts/editor/artifact-type/fast-edit-worker.js 2344 KB runs code
- scripts/editor/artifact-type/reference/google-fonts-families.json 26 KB
- scripts/editor/artifact-type/reference/google-fonts-notices.json 59 KB
- scripts/editor/artifact-type/reference/google-fonts-reserved.json 7.2 KB
- scripts/editor/assets/anthropicons-fizzy-lake-CfC2JIbf.woff2 47 KB
- scripts/editor/assets/index-B-Upphbb.css 715 KB
- scripts/editor/assets/index-CLSAsUf1.js 6803 KB runs code
- scripts/editor/index.html 2.6 KB
- scripts/editor/share-ui.js 83 KB runs code
- scripts/editor/third-party-licenses.txt 47 KB
- scripts/server.mjs 219 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.
- yesterday First seen · 215 lines · 120 tokens per session scan A 3cb0dfeff790
claude-design is a skill published in the GitHub repository looplj/axonhub (5,452 stars, last pushed today), licensed Apache-2.0. It adds 120 tokens to every session and 8,167 once invoked, about $0.0005 per session on Opus 5.5. A static security scan graded it A with 0 findings. It is 86% identical to claude-design, and is treated as a copy.
claude-design compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| claude-designlooplj/axonhub | Skill | 5.5k | today | Apache-2.0 | A | 120 | Claude Code, Codex |
| html-artifactslangchain-ai/open-swe | Skill | 11k | today | MIT | A | 52 | Claude Code, Codex |
| generative-uibearlike/Assistant | Skill | 43 | today | MIT | A | 48 | Claude Code |
| st-widget-builderbearlike/Assistant | Skill | 43 | today | MIT | A | 65 | Claude Code |
| web-asset-generatoronurkanbakirci/awesome-skills | Skill | 14 | 10mo ago | none | A | 78 | Claude Code, Codex |
| json-canvasonurkanbakirci/awesome-skills | Skill | 14 | 10mo ago | none | A | 54 | Claude Code, Codex |
| canvas-designonurkanbakirci/awesome-skills | Skill | 14 | 10mo ago | none | A | 59 | Claude Code, Codex |