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 larsboes/Axon --skill ha-dashgengit clone --depth 1 https://github.com/larsboes/AxonWrote 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/larsboes/axon/ha-dashgen)<a href="https://agentmods.dev/skills/larsboes/axon/ha-dashgen"><img src="https://agentmods.dev/badge/skills/larsboes/axon/ha-dashgen/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/larsboes/axon/ha-dashgen"><img src="https://agentmods.dev/badge/skills/larsboes/axon/ha-dashgen.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.00125 | $0.00955 |
| Opus 5.5 | $0.00050 | $0.00382 |
| Sonnet 5.5 | $0.00025 | $0.00191 |
| Haiku 4.5 | $0.00013 | $0.00096 |
Grade A, and why
ha-dashgen 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 2mo 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 — 65 lines — stays where its author put it; the contents beside it link to each section on GitHub.
ha-dashgen
Dashboards as code. A TypeScript model of the house goes in, three deployed dashboards come
out, and check refuses to let a dashboard reference an entity that does not exist or quietly
lose a control the previous one had.
Commands
scripts/ha-dashgen build # model -> JSON in <overlay>/config/home-assistant/dashboards/
scripts/ha-dashgen check # build + validate against the LIVE instance (exit 1 on a problem)
scripts/ha-dashgen ensure # create any dashboard that does not exist yet
scripts/ha-dashgen deploy # build, back up each dashboard, then push
Needs AXON_HOME_ROOT (or AXON_OVERLAY_ROOT) and, for anything touching the instance, an
unlocked BW_SESSION — it shells out to ha-cli and ha-dashboard, which own the credentials.
What check actually checks
- Every entity reference exists on the running instance, including IDs inside Jinja.
- No control appears on two peer views. The
startview is exempt: it is a shortcut surface, so a favourite tile pointing at a light that also lives in Räume is intended. - Nothing was silently dropped. It diffs against
dashboards/baseline-<date>/and fails on any entity the old dashboard had that the new one lacks, unlessmodel.tslists it indeliberatelyDroppedwith a reason. A stale entry — declared dropped but back on a view — also fails.
Run check before deploy. deploy always backs up to dashboards/pre-deploy/ first;
lovelace/config/save overwrites in one shot with no undo.
Gotchas
Each of these was found the expensive way against HA 2026.6.3 with a probe dashboard, and the first four blank the entire view, not just the offending card, with nothing in the browser console:
condition: templatein aconditionalcard renders "Konfigurationsfehler".- A template in section
visibilityhides the section even when it is{{ 1 == 1 }}. Put the logic in abinary_sensorand usecondition: state, which works. custom:mushroom-template-card: a staticsecondaryrenders, a templated one comes out empty, and inside aconditionalthe card takes the view with it.mushroom-chips-cardis fine. Prefer a nativetilewhose entity is a klartext sensor.- A
weatherentity as a view badge, and abinary_sensorbadge. View-level badges are not used at all for this reason; heading badges are fine. picture-glancewithcamera_imageandpicture-entityon a camera both render nothing here, atcamera_viewliveorauto. Cameras are plain tiles that open the live stream on tap.column_spangreater than the view'smax_columnscollapses the grid to a blank page.- A dashboard
url_pathmust contain a hyphen. HA rejectszuhause, acceptsmein-zuhause. notify:platforms are not reloadable. A new notify group needs a full restart, notautomation.reload.
What ships with it
4 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.
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.
- 2mo ago First seen · 65 lines · 125 tokens per session scan A 5f49ff5e3d42
ha-dashgen is a skill published in the GitHub repository larsboes/Axon (1 stars, last pushed 1mo ago), licensed MIT. It adds 125 tokens to every session and 955 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-08-31.
ha-dashgen compared with skills from other repositories
| Mod | Type | Stars | Last push | Licence | Scan | Tokens | Works with |
|---|---|---|---|---|---|---|---|
| ha-dashgenlarsboes/Axon | Skill | 1 | 1mo ago | MIT | A | 125 | Claude Code |
| usecase-smart-home-brainCoWork-OS/CoWork-OS | Skill | 537 | today | MIT | A | 22 | Claude Code, Codex |
| openhuetaracodlabs/aiden | Skill | 875 | 18d ago | AGPL-3.0 | A | 15 | Claude Code, Codex |
| freecadEldanRing/qubicl | Skill | 13 | 7d ago | Apache-2.0 | A | 23 | Claude Code, Codex |
| ryu-local-modelamajorai/ryu | Skill | 44 | today | none | A | 75 | Claude Code, Codex |
| beryl-it-techStunspot/nova-the-optimal-ai-mind | Skill | 31 | 10d ago | none | A | 17 | Claude Code, Codex |
| it-work-reviewerStunspot/nova-the-optimal-ai-mind | Skill | 31 | 10d ago | none | A | 17 | Claude Code, Codex |