Agent skill

Ha Frontend Gallery

by home-assistant in home-assistant/frontend

Home Assistant frontend gallery structure, pages, demos, content, and verification.

Apache-2.0Auto-check passedFrontend & Design

Install Ha Frontend Gallery

skills CLI
$ npx skills add home-assistant/frontend --skill ha-frontend-gallery -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install home-assistant/frontend ha-frontend-gallery --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/home-assistant/frontend.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ha-frontend-gallery .claude/skills/ha-frontend-gallery && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
ha-frontend-gallery
GitHub stars
5.7k
Token cost
~2k tokens
SKILL.md length
989 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
Apache-2.0

At a glance

Home Assistant frontend gallery structure, pages, demos, content, and verification.

  • Changing files under gallery/
  • SKILL.md covers Quick Reference, Purpose, Structure and Page Model, plus 5 more sections
  • Calls pnpm
  • Including gallery markdown

What it does

Ha Frontend Gallery is an agent skill from home-assistant/frontend. Home Assistant frontend gallery structure, pages, demos, content, and verification. Use when changing files under gallery/, including gallery markdown, TypeScript demos, sidebar entries, mock data, page generation, or gallery builds.

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Frontend & Design, covering Markdown. It works with Home Assistant and TypeScript. The repository describes itself as: :lollipop: Frontend for Home Assistant. The licence is Apache-2.0.

When your agent uses it

  • Changing files under gallery/
  • Including gallery markdown
  • TypeScript demos
  • Sidebar entries

Example prompts

  • “/ha-frontend-gallery”

What it can do on your machine

Read from SKILL.md and the folder at commit 3280113. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Ha Frontend Gallery loads about 2k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 989 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~63
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from home-assistant/frontend at commit 3280113, republished under its Apache-2.0 licence (© home-assistant). 989 words, ~2,038 tokens.

Download SKILL.mdSave it as .claude/skills/ha-frontend-gallery/SKILL.md (or your agent's skills folder).
name
ha-frontend-gallery
description
Home Assistant frontend gallery structure, pages, demos, content, and verification. Use when changing files under gallery/, including gallery markdown, TypeScript demos, sidebar entries, mock data, page generation, or gallery builds.

Use this skill for all work under gallery/. Follow the persistent repository guidance in AGENTS.md and load the matching specialist skills alongside this gallery-specific guidance.

Quick Reference

Run commands from the repository root unless noted otherwise:

bash
gallery/script/develop_gallery  # Start the gallery development server
gallery/script/build_gallery    # Build the static gallery
pnpm lint                       # ESLint, Prettier, TypeScript, and Lit checks
pnpm lint:types                 # TypeScript compiler, without file arguments

Never run pnpm lint:types or tsc with file arguments. File arguments make tsc ignore tsconfig.json and can emit .js files into src/.

Purpose

The gallery is a developer and designer reference for Home Assistant frontend UI patterns. It documents component APIs, shows realistic Lovelace and more-info states, captures brand and copy guidance, and provides reproducible demos that are safe to inspect outside a running Home Assistant instance.

  • Prefer demonstrating real production components from src/ instead of creating gallery-only replacements.
  • Keep fake state, sample data, and demo-only helpers inside gallery/.
  • Do not move gallery stubs or demo data into production code unless a production feature explicitly needs them.
  • Do not hand-edit generated output under gallery/build/ or gallery/dist/.

Structure

  • gallery/sidebar.js: Defines gallery sections, headers, and explicit page ordering.
  • gallery/script/develop_gallery: Wrapper for the develop-gallery gulp task.
  • gallery/script/build_gallery: Wrapper for the build-gallery gulp task.
  • gallery/src/entrypoint.js: Creates the <ha-gallery> shell.
  • gallery/src/ha-gallery.ts: Renders the drawer, page routing, markdown descriptions, demos, edit links, and RTL toggle.
  • gallery/src/html/index.html.template: HTML template used by the gallery build.
  • gallery/src/pages/<category>/<page>.markdown: Optional page description and frontmatter.
  • gallery/src/pages/<category>/<page>.ts: Optional live demo module for the same page ID.
  • gallery/src/components/: Gallery-only demo wrappers like demo-card, demo-cards, demo-more-info, and page-description.
  • gallery/src/data/: Fake hass, demo states, mock traces, and reusable sample data.
  • gallery/public/: Static assets copied into the gallery output.

Page Model

Gallery pages are generated by gather-gallery-pages in build-scripts/gulp/gallery.js.

  • A page ID is the path under gallery/src/pages/ without the extension, like components/ha-button.
  • A .markdown file and a .ts file with the same page ID become one gallery page.
  • A page may have only markdown, only a TypeScript demo, or both.
  • Markdown can contain YAML frontmatter with title and optional subtitle.
  • Markdown that contains only frontmatter contributes metadata without rendering a description block.
  • TypeScript demo modules are dynamically imported for side effects when the page is opened.
  • A demo module must define a custom element named demo-${category}-${page} with slashes replaced by hyphens, like demo-components-ha-button for components/ha-button.
  • gallery/src/ha-gallery.ts renders that element with dynamicElement() based on the current page ID.

Sidebar

Use gallery/sidebar.js when a page needs a visible section, section header, or deterministic ordering.

  • category must match the first directory name under gallery/src/pages/.
  • header is the section label shown in the drawer.
  • pages is optional. When present, listed pages keep that exact order.
  • Pages in a category that are not listed are appended alphabetically after the listed pages.
  • New categories without a sidebar entry are appended by the generator with their category name as the header.
  • If a listed page does not exist, the generator logs an error during gather-gallery-pages.
Subsections

A section can group its pages under named subsections instead of one flat list. Use this for large categories where related pages should sit together.

  • subsections is an array of { header, pages }. It is mutually exclusive with a flat pages array on the same group.
  • Each subsection header is a non-collapsible label rendered inside the section's expansion panel; the section stays the only collapsible level.
  • Listed pages keep their per-subsection order.
  • Any pages found in the category but not listed in a subsection are collected into a generated Other subsection, appended alphabetically. The Other subsection is omitted when there are no leftovers.
  • A listed page that does not exist still logs an error during gather-gallery-pages.
  • Use sentence case for subsection headers and follow the content standards below.
Show full SKILL.md (401 more words)Show less

Markdown Pages

Use markdown pages for explanations, design guidance, API notes, and copy standards.

  • Start with frontmatter when the page needs a title or subtitle.
  • Use sentence case for titles, headings, labels, and UI copy.
  • Put the live example before the reference API when that makes the page easier to scan.
  • Use fenced code blocks with a language tag for copyable examples.
  • Keep examples short and focused on the behavior being documented.
  • Prefer real component names and attributes over prose-only descriptions.
  • Use Home Assistant terminology from ha-frontend-user-facing-text.
  • For remove/delete and add/create wording, follow gallery/src/pages/misc/remove-delete-add-create.markdown.

Gallery markdown is documentation content and is not localized with localize. If demo code creates production UI strings, follow the localization and copy guidance in ha-frontend-user-facing-text.

Demo Components

Use TypeScript demo pages for interactive or stateful examples.

  • Import production components from src/ using the correct relative path from the demo file.
  • Import reusable gallery helpers from gallery/src/components/ when they already model the pattern.
  • Use demo-card and demo-cards for Lovelace card examples that render YAML card configs.
  • Use demo-more-info and demo-more-infos for more-info dialog examples.
  • Use shared mock data from gallery/src/data/ instead of repeating large fake state objects inline.
  • Show meaningful states, such as loading, unavailable, empty, error, active, inactive, and disabled when relevant.
  • Check responsive behavior and the gallery RTL toggle when layout or direction-sensitive UI changes.
  • Keep unavoidable casts or loose demo parsing local to the demo helper or demo page.

The gallery ESLint config allows console for gallery diagnostics. Do not copy that exception into production frontend code.

Content Standards

Follow the detailed copy standards in ha-frontend-user-facing-text: use American English, sentence case, active voice, inclusive language, direct user-focused wording, and consistent Home Assistant terminology.

  • Use Home Assistant in full, not HA or HASS.
  • Use integration instead of component for product concepts.
  • Use Remove for reversible disassociation and Delete for permanent deletion.
  • Use Add for existing items and Create for something made from scratch.
  • Avoid Latin abbreviations like e.g. and i.e. in prose.
  • Avoid stitching sentence fragments together in production UI examples.

Verification

  • For markdown, sidebar, and page-generation changes, run gallery/script/build_gallery.
  • For TypeScript demo or gallery shell changes, run the smallest relevant check plus pnpm lint when practical.
  • For type checking, run pnpm lint:types without file arguments.
  • For visual changes, run gallery/script/develop_gallery and check the affected page on desktop, narrow viewport, and RTL when relevant.
  • If verification is skipped, state which command was skipped and why.

© home-assistant, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agents/skills/ha-frontend-gallery of home-assistant/frontend.

Open the folder on GitHubat commit 3280113

Compare with similar skills

Ha Frontend Gallery next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Ha Frontend Gallery compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Ha Frontend Gallery this skillhome-assistant/frontend5.7k—~2kAutomated safety check: PassApache-2.0
Lobe Designlobehub/lobe-ui2.2k—~2.2kAutomated safety check: PassMIT
Fumadocsbetter-notify/better-notify313—~2.3kAutomated safety check: PassMIT
Using Docs Kitlobehub/lobe-ui2.2k—~2.8kAutomated safety check: PassMIT
Adk Docs WriterBrainDAO/adk-ts119—~4.9kAutomated safety check: PassMIT
Web Artifacts Builderanthropics/skills180k40 repos~769Automated safety check: PassApache-2.0

Similar skills

  • Lobe Design

    lobehub/lobe-ui

    Build UI with the LobeHub design system — @lobehub/ui/base-ui, the controlled form at @lobehub/ui/base-ui/form, and the chat, mobile, dashboard, awesome, brand, mdx, and i18n namespaces, plus…

    2.2k GitHub stars~2.2k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Fumadocs

    better-notify/better-notify

    A skill your agent uses when writing MDX documentation pages for a Fumadocs project — frontmatter, meta.json, page ordering, and fumadocs-ui React components available inside MDX content.

    313 GitHub stars~2.3k tokensUpdated 1 mo ago
    Frontend & DesignAuto-check passed
  • Using Docs Kit

    lobehub/lobe-ui

    Set up and author a documentation site with @lobehub/docs-kit (the lobedocs CLI, React Router + Vite static docs used by ui.lobehub.com).

    2.2k GitHub stars~2.8k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Adk Docs Writer

    BrainDAO/adk-ts

    ADK-TS documentation specialist for Fumadocs MDX pages. An agent skill from BrainDAO/adk-ts.

    119 GitHub stars~4.9k tokensUpdated 3 mo ago
    Documents & OfficeAuto-check passed
  • Web Artifacts Builder

    anthropics/skills

    Official

    Builds multi-component claude.ai HTML artifacts as a small React, TypeScript and Tailwind project, then bundles it into one shareable HTML file.

    180k GitHub starsUsed in 40 repos~769 tokens
    Frontend & DesignAuto-check passed
  • Ink Tui Wizard

    novuhq/novu

    Build terminal user interfaces (TUIs) using Ink (React for CLIs) and @inkjs/ui with a reactive, session-driven wizard pattern.

    40k GitHub stars~1.9k tokensUpdated yesterday
    Frontend & DesignAuto-check passed

More from home-assistant/frontend

All 12 skills in this repo
  • Ha Frontend Components

    home-assistant/frontend

    Home Assistant frontend component patterns. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.2k tokensUpdated today
    Auto-check passed
  • Ha Frontend Contexts

    home-assistant/frontend

    Home Assistant frontend Lit context and hass migration guidance.

    5.7k GitHub stars~1.9k tokensUpdated today
    Auto-check passed
  • Ha Frontend Demo

    home-assistant/frontend

    Home Assistant standalone demo structure, configurations, URL navigation, mocked APIs, shared demo stubs used by gallery, and verification.

    5.7k GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Ha Frontend Styling

    home-assistant/frontend

    Home Assistant frontend styling, theming, spacing, responsive layout, RTL, and View Transitions guidance.

    5.7k GitHub stars~799 tokensUpdated today
    Auto-check passed
  • Ha Frontend Testing

    home-assistant/frontend

    Home Assistant frontend testing and validation workflow. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~1.7k tokensUpdated today
    Auto-check passed
  • Ha Frontend Types

    home-assistant/frontend

    Home Assistant frontend TypeScript conventions. An agent skill from home-assistant/frontend.

    5.7k GitHub stars~574 tokensUpdated today
    Auto-check passed

Questions about Ha Frontend Gallery

What does Ha Frontend Gallery do?

Home Assistant frontend gallery structure, pages, demos, content, and verification. Ha Frontend Gallery is an agent skill from home-assistant/frontend. Home Assistant frontend gallery structure, pages, demos, content, and verification.

When should I use Ha Frontend Gallery?

Ha Frontend Gallery fits situations like: changing files under gallery/; including gallery markdown; typeScript demos; sidebar entries.

How do I install Ha Frontend Gallery in Claude Code?

Run `npx skills add home-assistant/frontend --skill ha-frontend-gallery -a claude-code`. Or copy the skill folder (.agents/skills/ha-frontend-gallery in home-assistant/frontend) into .claude/skills/ha-frontend-gallery in your project. Claude Code loads it when a task matches its description.

How do I install Ha Frontend Gallery in Codex?

Run `npx skills add home-assistant/frontend --skill ha-frontend-gallery -a codex`. Or copy the skill folder (.agents/skills/ha-frontend-gallery in home-assistant/frontend) into .agents/skills/ha-frontend-gallery in your project. Codex loads it when a task matches its description.

Can I use Ha Frontend Gallery in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add home-assistant/frontend --skill ha-frontend-gallery -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ha-frontend-gallery, .gemini/skills/ha-frontend-gallery, .github/skills/ha-frontend-gallery and .opencode/skills/ha-frontend-gallery in your project.

What does Ha Frontend Gallery need to run?

Going by SKILL.md and its folder, Ha Frontend Gallery needs the command-line tools its instructions call (pnpm).

Does Ha Frontend Gallery access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Ha Frontend Gallery safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Ha Frontend Gallery use?

Ha Frontend Gallery is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Ha Frontend Gallery use?

About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Ha Frontend Gallery?

Skills that share tags, products or a category with Ha Frontend Gallery: Lobe Design (lobehub/lobe-ui, 2.2k stars), Fumadocs (better-notify/better-notify, 313 stars), Using Docs Kit (lobehub/lobe-ui, 2.2k stars) and Adk Docs Writer (BrainDAO/adk-ts, 119 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Ha Frontend Gallery?

home-assistant (a GitHub organization) maintains it in home-assistant/frontend, which has 5,699 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 11, 2026.

Source: home-assistant/frontend on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.