ha-card-features-add

ha-card-features-add is a skill for Claude Code from nolte/claude-home-assistant. It costs 190 tokens per session (2,106 once invoked), scanned A, original, MIT.

A custom control feature for a Home Assistant dashboard tile or other supported card. It adds an interactive row of controls inside the card and registers it with the frontend.

In plain words
What is it for?
Use it to add one quick control to a tile card or another host card in an existing Home Assistant frontend module.
Why use it?
It provides a focused dashboard interaction without changing the whole card. The feature can be scoped to the relevant entity or domain and may be configurable.

Skill for Claude Code

Written for Claude Code: shipped in a Claude Code plugin.

Part of the claude-home-assistant plugin — 45 skills, 11 agents shipped together

Good fit Use it to add one quick control to a tile card or another host card in an existing Home Assistant frontend module.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/nolte/claude-home-assistant/ha-card-features-add
Install

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.

Any agent
npx skills add nolte/claude-home-assistant --skill ha-card-features-add
Clone the repo
git clone --depth 1 https://github.com/nolte/claude-home-assistant

Made for: Claude Code.

Or install claude-home-assistant, the plugin that ships this one along with the rest of its 45 skills, 11 agents.

Wrote 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.

agentmods badge for ha-card-features-add

README.md
[![agentmods](https://agentmods.dev/badge/skills/nolte/claude-home-assistant/ha-card-features-add/github.svg)](https://agentmods.dev/skills/nolte/claude-home-assistant/ha-card-features-add)
Your own site
<a href="https://agentmods.dev/skills/nolte/claude-home-assistant/ha-card-features-add"><img src="https://agentmods.dev/badge/skills/nolte/claude-home-assistant/ha-card-features-add/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.

agentmods 80×15 button for ha-card-features-add

Your own site · 80×15
<a href="https://agentmods.dev/skills/nolte/claude-home-assistant/ha-card-features-add"><img src="https://agentmods.dev/badge/skills/nolte/claude-home-assistant/ha-card-features-add.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 190 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,106 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5.1 $0.00190 $0.02106
Opus 5 $0.00095 $0.01053
Sonnet 5 $0.00038 $0.00421
Haiku 4.5 $0.00019 $0.00211

Measured 11d ago against content hash a44a038f006e, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-11, from the pricing page.

Security

Grade A, and why

ha-card-features-add 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 11d 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.

skills/ha-card-features-add/SKILL.md · 106 lines

How it starts

The opening of the file, as written. The whole thing — 106 lines — stays where its author put it; the contents beside it link to each section on GitHub.

HA Card Features Add

Spec: spec/claude/ha-card-features-add/en.md (EN canonical) / spec/claude/ha-card-features-add/de.md (DE translation).

Why this is a skill, not an agent

  • Human-visible augmentation surface — the user describes a quick control and reads back the feature element, its registration, and the conformance report; a skill keeps this on the visible command surface, like the sibling augment skills (ha-lovelace-card-scaffold, ha-config-flow-augment).
  • Mid-flow interactivity — the applicability-predicate decision (which domain/entity, entity- vs. area-bound) and whether the feature is configurable are per-run dialogues the user approves before generation.
  • Bounded, inline generation — one feature custom element plus its registration fits inline; no isolated agent context is needed.
  • Counter-dimension considered: the draft→validate loop could be an agent, but the predicate decision and the host-card context binding belong in the user's working context; skill wins.

When this skill activates

Use this skill to add one custom card feature — an interactive control row rendered inside the tile card (or another host card) — to an existing frontend module, acting on the parent card's bound entity.

When NOT to activate

  • a full custom card (card file layout, set hass lifecycle, getCardSize/getGridOptions) → ha-lovelace-card-scaffold / ha/lovelace-card-patterns
  • the feature's graphical config editor mechanics → ha/lovelace-card-editor
  • badges as a separate dashboard delivery shape → ha-badge-add
  • deploying/importing into a running HA instance → out of scope

Hard rules

  1. One feature, one run. No multi-feature batches.
  2. Read spec/ha/lovelace-card-features/en.md first. Do not generate from memory.
  3. Register both ways. Register the feature via window.customCardFeatures = window.customCardFeatures || []; window.customCardFeatures.push({ type, name, ... }) with mandatory type and name, and register the element via customElements.define("<feature-type>", <FeatureClass>) so the type resolves. The element extends HTMLElement or LitElement.
  4. setConfig lifecycle. Implement setConfig(config) (this.config = config) and reject a missing/invalid config with throw new Error("Invalid configuration").
  5. Context contract. Carry hass, config, context as properties (the host card sets them); resolve the target stateObj from this.hass.states[this.context.entity_id], handling a missing context/entity_id; return null from render() while config/hass/context are unset or the entity is unsupported.
  6. Service on interaction. Render controls and on interaction call this.hass.callService(domain, service, { entity_id }) on the target entity; call ev.stopPropagation() so the click does not bubble up to the host card.
  7. One predicate, two uses. Provide an isSupported(hass, context) predicate that resolves the stateObj from context.entity_id, returns false when none exists, and checks applicability by domain (not a single entity ID) — and use the same function in render() and in the customCardFeatures isSupported entry.
  8. Configurable only when configured. For a configurable feature add static getStubConfig() (returning a default config incl. type: "custom:<feature-type>"), set configurable: true, and add static getConfigElement() for a graphical editor (see spec/ha/lovelace-card-editor/en.md); never require getConfigElement/getStubConfig for a feature with no extra config — configurable stays false.
  9. HA default styling. Use the CSS custom properties --feature-height, --feature-border-radius, --feature-button-spacing.
  10. Name per spec/ha/naming-conventions/en.md and verify HA internals against the official docs (see spec/ha/upstream-docs-verification/en.md).

Read the full file on GitHub · 106 lines

Changes

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.

  1. 11d ago First seen · 106 lines · 190 tokens per session scan A a44a038f006e

Subscribe to this mod's changes

ha-card-features-add is a skill published in the GitHub repository nolte/claude-home-assistant (1 stars, last pushed 1mo ago), licensed MIT. It adds 190 tokens to every session and 2,106 once invoked, about $0.0010 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-31.

Related

Other skills, from other repositories

cache-components

Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). PROACTIVE ACTIVATION: Use this skill automatically when working in Next.js projects that have cacheComponents: true in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best…

sangrokjung/claude-forge · 183 tokens

frontend-code-review

Trigger when the user requests a review of frontend files (e.g., .tsx, .ts, .js). Support both pending-change reviews and focused file reviews while applying the checklist rules.

sangrokjung/claude-forge · 42 tokens

accessibility-a11y

WCAG 2.2 compliance, ARIA patterns, keyboard navigation, screen readers, automated testing.

travisjneuman/.claude · 26 tokens

flutter-development

Cross-platform development with Flutter and Dart for iOS, Android, Web, Desktop, and embedded. Use when building Flutter apps, implementing Material/Cupertino design, or optimizing Dart code.

travisjneuman/.claude · 41 tokens

electron-desktop

Desktop application development with Electron for Windows, macOS, and Linux. Use when building cross-platform desktop apps, implementing native OS features, or packaging web apps for desktop.

travisjneuman/.claude · 38 tokens

generic-react-feature-developer

Guide feature development for React applications with architecture focus. Covers Zustand/Redux patterns, IndexedDB usage, component systems, lazy loading strategies, and seamless integration. Use when adding new features, refactoring existing code, or planning major changes.

travisjneuman/.claude · 53 tokens