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-dashboard/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-dashboard)<a href="https://agentmods.dev/skills/looplj/axonhub/claude-dashboard"><img src="https://agentmods.dev/badge/skills/looplj/axonhub/claude-dashboard/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-dashboard"><img src="https://agentmods.dev/badge/skills/looplj/axonhub/claude-dashboard.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.00132 | $0.08983 |
| Opus 5.5 | $0.00053 | $0.03593 |
| Sonnet 5.5 | $0.00026 | $0.01797 |
| Haiku 4.5 | $0.00013 | $0.00898 |
Grade A, and why
claude-dashboard 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 2d 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 — 505 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Dashboard — the shared type
A dashboard is a page you write over datasets the type loads, attributes
and refreshes. Everything is a document in its own store, written with
write-db. SKILL.md, artifact-type/ and scripts/ are the type's own
files: leave them as they are.
What the person asks for is what you build; the defaults apply only to what
they left unsaid. Whatever the page's code can draw or do is allowed: any
chart, control or interaction. Draw the chart they named, by hand where d3 has
no helper; if you draw another, say which and why.
The calls
A dashboard is a folder, <root>: designs/<slug>/ in the current project
unless the person names another (<slug>: the title in lowercase words joined
by -; a title not in Latin letters, such as a Chinese one, takes a short
English rendering of it: x-account-analytics). The first write-db or
upload creates it. One script, Node 22 or later with nothing to install,
does every call; below, A is <this skill's folder>/scripts/artifact.mjs.
| Command | Does |
|---|---|
node $A write-db <root> <batch.json | -> |
Writes documents: set, update, delete. All or nothing. |
node $A read-db <root> [<collection>[/<doc_id>]] [--text] |
Lists every document, a collection's, or one (--text prints its text raw). |
node $A upload <root> <file> [--name n] |
Attaches a CSV, TSV or JSON file: {"url": "/_blob/<id>", "bytes", "contentType", …}. |
node $A delete-asset <root> <url | id> |
Removes an attached file no document names any more. |
node $A check <root> |
Checks the documents, the page's files, and that each dataset mark's data-where/data-row finds its rows. Exit 1 while problems > 0. |
node $A open <root> [--port n] [--lan] |
Starts the editor in the background and returns {"url", "pid", "stop", …}. All the dashboards open on this computer share one server and port (4740, the next free port up when that is taken; --port n looks for it at n and starts from n, --port 0 runs a server of its own on any port); url is this dashboard's own page, whose path, /dashboard/<id>/, stays the same from one start to the next. Run again, it reuses the one running. --lan: also on the local network (see Sharing). --agent-hook "<command>": see Comments. NETWORK_BLOCKED from open means your commands run in a sandbox without local network. Run open, share and comments <root> --wait with local network allowed, outside the sandbox, asking for that permission if your commands need approval; in the sandbox comments --wait says NO_SERVER even while the page is open. Commands that only read and write files work in the sandbox. |
node $A serve <root> [--port n] [--lan] / stop <root> |
The same server in the foreground / takes this folder off the server, which ends with the last one. |
node $A share <root> |
Opens it to the local network and prints a link per role; --disable / --enable / --reset <role>, --role <guest>=<role>, --off. See Sharing. |
node $A comments <root> [--all] / --wait |
The comments people left on the page / waits for one they send you. See Comments. |
node $A comment-reply <root> <id> <text|-> / comment-resolve <root> <id> |
Answers one (--resolve closes it too) / closes one (--reopen). |
node $A archive <root> [--out file.zip|dir] |
The whole folder, history and comments too, as one zip beside it (--out: another file or folder), to back it up, move it to another computer or send it to someone: {file, files, bytes, open}. Unzipped anywhere, open carries on. The owner's Download folder button in the page does the same; the server's own files, the share links, exports/ and .git stay out. |
What ships with it
24 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/admin-setup.md 8.8 KB
- artifact-type/reference/dependent-calls.md 3.9 KB
- artifact-type/reference/design-defaults.md 16 KB
- artifact-type/reference/design-system.md 9.0 KB
- artifact-type/reference/exporting.md 3.2 KB
- artifact-type/reference/features.md 17 KB
- artifact-type/reference/looks.md 2.9 KB
- artifact-type/reference/one-writer.md 5.6 KB
- artifact-type/reference/questions.md 5.0 KB
- artifact-type/reference/read-aloud.md 12 KB
- artifact-type/reference/remix.md 5.7 KB
- artifact-type/reference/sources.md 19 KB
- artifact-type/reference/visual-short-script.md 12 KB
- artifact-type/reference/visual-short-skeleton.md 13 KB
- artifact-type/reference/visual-short.md 15 KB
- scripts/artifact.mjs 255 KB runs code
- scripts/editor/assets/anthropicons-fizzy-lake-CPTdBYLV.woff2 33 KB
- scripts/editor/assets/index-CAlN5GoK.css 680 KB
- scripts/editor/assets/index-qXbVz6oJ.js 2312 KB runs code
- scripts/editor/comments.js 667 KB runs code
- scripts/editor/index.html 2.3 KB
- scripts/editor/local-host.js 18 KB runs code
- scripts/editor/share-ui.js 83 KB runs code
- scripts/editor/third-party-licenses.txt 54 KB
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.
- 2d ago First seen · 505 lines · 132 tokens per session scan A ae909e6fe41b
claude-dashboard is a skill published in the GitHub repository looplj/axonhub (5,452 stars, last pushed today), licensed Apache-2.0. It adds 132 tokens to every session and 8,983 once invoked, about $0.0005 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-11-11.
claude-dashboard compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| claude-dashboardlooplj/axonhub | Skill | 5.5k | today | Apache-2.0 | A | 132 | Claude Code, Codex |
| html-artifactslangchain-ai/open-swe | Skill | 11k | today | MIT | A | 52 | Claude Code, Codex |
| web-appslangchain-ai/open-swe | Skill | 11k | today | MIT | A | 43 | Claude Code, Codex |
| workspaceslangchain-ai/open-swe | Skill | 11k | today | MIT | A | 88 | Claude Code, Codex |
| baby-sitlangchain-ai/open-swe | Skill | 11k | today | MIT | A | 30 | Claude Code, Codex |
| linear-ticketslangchain-ai/open-swe | Skill | 11k | today | MIT | A | 44 | Claude Code, Codex |
| connectlangchain-ai/open-swe | Skill | 11k | today | MIT | A | 20 | Claude Code |