---
name: "@ha-components"
slug: "ha-components"
description: "A shadcn/ui-inspired component framework for building custom Home Assistant dashboards in React/TypeScript. Provides styled, copy-owned components covering Home Assistant device categories: Camera, Light Toggle, Trigger, Weather, and Misc, alongside an Auth Provider for interacting with Home Assistant APIs. Unlike HA's built-in styling, users receive source files and full control. Beta software, maintained by a single developer; MIT licensed. Use for: building bespoke Home Assistant dashboard UIs using React and shadcn CLI instead of HA's native frontend or HACS card ecosystem."
category: "Niche/single-purpose"
tags: ["ai", "auth", "buttons", "cards", "dashboard", "media", "overlays", "theming"]
framework: "react"
license: "MIT"
author: "jchu634"
website: "https://hacomponents.keshuac.com"
github: "https://github.com/jchu634/ha-components"
registry: "https://hacomponents.keshuac.com/r/registry.json"
pro: false
pro_url: null
github_stars: 13
component_count: 12
generated_at: "2026-07-28T08:00:50.948Z"
---

# @ha-components

A shadcn/ui-inspired component framework for building custom Home Assistant dashboards in React/TypeScript. Provides styled, copy-owned components covering Home Assistant device categories: Camera, Light Toggle, Trigger, Weather, and Misc, alongside an Auth Provider for interacting with Home Assistant APIs. Unlike HA's built-in styling, users receive source files and full control. Beta software, maintained by a single developer; MIT licensed. Use for: building bespoke Home Assistant dashboard UIs using React and shadcn CLI instead of HA's native frontend or HACS card ecosystem.

## Links

- Website: https://hacomponents.keshuac.com
- GitHub: https://github.com/jchu634/ha-components
- Registry JSON: https://hacomponents.keshuac.com/r/registry.json
- Directory page: https://sh4dcn.vercel.app/registry/ha-components
- This file: https://sh4dcn.vercel.app/md/ha-components.md

## Install

```sh
# add the whole registry (shadcn CLI)
npx shadcn@latest add https://hacomponents.keshuac.com/r/registry.json
pnpm dlx shadcn@latest add https://hacomponents.keshuac.com/r/registry.json
bunx shadcn@latest add https://hacomponents.keshuac.com/r/registry.json
# clone the source repo
git clone https://github.com/jchu634/ha-components.git
# fetch the raw registry index
curl -s https://hacomponents.keshuac.com/r/registry.json
```

## Components (12)

| name | type | description | install |
| --- | --- | --- | --- |
| type-generator | registry:item | Script to generate types | `npx shadcn@latest add https://hacomponents.keshuac.com/r/type-generator.json` |
| auth | registry:block | A complex component used to setup Auth. | `npx shadcn@latest add https://hacomponents.keshuac.com/r/auth.json` |
| camera | registry:block | A WebRTC Camera component for go2RTC | `npx shadcn@latest add https://hacomponents.keshuac.com/r/camera.json` |
| trigger | registry:component | Button that with an attached Entity trigger | `npx shadcn@latest add https://hacomponents.keshuac.com/r/trigger.json` |
| toggle | registry:component | Switch with an attached Entity trigger | `npx shadcn@latest add https://hacomponents.keshuac.com/r/toggle.json` |
| light | registry:component | A component which allows full control of a light | `npx shadcn@latest add https://hacomponents.keshuac.com/r/light.json` |
| weather | registry:block | Simple Weather Component | `npx shadcn@latest add https://hacomponents.keshuac.com/r/weather.json` |
| proxy | registry:block | Development websocket server for camera component | `npx shadcn@latest add https://hacomponents.keshuac.com/r/proxy.json` |
| accordion | registry:ui | — | `npx shadcn@latest add https://hacomponents.keshuac.com/r/accordion.json` |
| popover | registry:ui | — | `npx shadcn@latest add https://hacomponents.keshuac.com/r/popover.json` |
| slider | registry:ui | — | `npx shadcn@latest add https://hacomponents.keshuac.com/r/slider.json` |
| switch | registry:ui | — | `npx shadcn@latest add https://hacomponents.keshuac.com/r/switch.json` |

## For AI agents

```text
You are adding components from @ha-components to a shadcn-compatible project.
1. Read this file (https://sh4dcn.vercel.app/md/ha-components.md) for the component list.
2. Fetch the machine-readable index: https://hacomponents.keshuac.com/r/registry.json
3. Install a single component with its install command from the table above.
4. Full structured record: https://sh4dcn.vercel.app/json (library slug: ha-components).
```
