Smart Home AssistantNewsletter

Home Assistant Custom Components: The Complete Guide to HACS

SepehrBy Sepehr· 19/06/2026· 6 min read
Home Assistant Custom Components: The Complete Guide to HACS

Home Assistant's official integration library is vast, but it will never cover every device or workflow you might want. Custom components fill that gap — community-built Python packages that slot directly into Home Assistant alongside the official ones. Whether you want local control over Tuya devices, smarter lighting algorithms, or a completely different dashboard look, the custom component ecosystem has you covered.

What Are Custom Components?

A custom component is a Home Assistant integration written and maintained outside the official core repository. It lives in the /config/custom_components/ folder on your Home Assistant instance and is loaded at startup alongside built-in integrations. Once installed, it behaves identically to an official integration — you configure it via the UI or configuration.yaml, it shows up in the integrations list, and it exposes entities just like everything else.

The key difference is support: official integrations are maintained by the Home Assistant core team and tested with every release. Custom components are maintained by volunteers, so they can occasionally break on a major Home Assistant update. Keeping both Home Assistant and your custom components updated minimises this risk.

HACS: The Community Store

HACS (Home Assistant Community Store) is the most popular way to discover, install, and update custom components. Think of it as an unofficial app store for Home Assistant, with more than 3,000 repositories covering integrations, frontend cards, themes, and automation blueprints.

HACS is not part of the official Home Assistant project, but it is widely used and well-maintained. Before installing, you need a My Home Assistant account linked to your instance — HACS uses this for GitHub authentication.

If you are new to Home Assistant or have not yet set up your system, start with our Home Assistant UK setup guide before continuing.

Installing HACS

You need SSH or terminal access to your Home Assistant host, or the File Editor add-on installed. Run the following command in a terminal session on your Home Assistant machine:

wget -O - https://get.hacs.xyz | bash -

After the script completes, restart Home Assistant. Then go to Settings → Devices & Services → Add Integration and search for HACS. You will be prompted to authorise via GitHub and accept the terms (HACS is not an official integration, so you acknowledge it is community-supported). Once authorised, the HACS panel appears in your sidebar.

The install script is hosted at hacs.xyz and pulls from the official HACS GitHub repository. Always verify the URL before running any curl or wget command on your server.

Installing a Custom Component via HACS

  1. Open the HACS panel from the sidebar.
  2. Select Integrations (for backend components) or Frontend (for Lovelace cards and themes).
  3. Click Explore & Download Repositories and search for what you want.
  4. Click the repository, then Download. HACS installs the files to the correct folder automatically.
  5. Restart Home Assistant when prompted.
  6. Add the integration via Settings → Devices & Services as normal.

HACS also checks for updates. When a new version is available, a badge appears on the HACS panel and you can update with a single click — a significant advantage over manual installs.

With thousands of options available, it helps to know where to start. These are among the most widely used custom integrations in the Home Assistant community.

Local Tuya

Local Tuya gives you local network control over Tuya-based smart devices — the same hardware sold under dozens of brand names including many budget plugs, bulbs, and sensors. The official Tuya integration routes commands through Tuya's cloud, introducing latency and a dependency on internet connectivity. Local Tuya communicates directly with your devices over your local network, making automations faster and more reliable. Setup requires extracting a local device key, which the HACS repository documents in detail.

Adaptive Lighting

Adaptive Lighting automatically adjusts the colour temperature and brightness of your lights throughout the day — warmer and dimmer in the evening, cooler and brighter during the day — based on the sun's position. It integrates with any light entity Home Assistant supports and requires no extra hardware. Once configured, it runs silently in the background and can be paused whenever you manually adjust a light. For more on automating your lights, see our Home Assistant automations guide.

Browser_mod

Browser_mod turns each browser tab running the Home Assistant frontend into a device you can control. You can trigger browser-specific actions — show a popup, play a sound, navigate to a dashboard — from automations. It is particularly useful for wall-mounted tablet dashboards where you want the display to respond to home events.

HACS also hosts Lovelace frontend cards that extend the dashboard beyond what the default UI offers. Install these via the HACS Frontend section, then add them to your dashboard through the card editor.

Mushroom Cards

Mushroom cards replace the default entity cards with a clean, modern design that works well on both phone and tablet. They support chips (compact icon-only indicators), title cards, and individual entity cards for lights, covers, climate, and more. Mushroom is one of the most downloaded HACS frontend repositories and pairs well with the Home Assistant Material You theme.

Mini Graph Card

The Mini Graph Card displays sensor history as a sparkline or bar chart inside a compact Lovelace card. It is useful for visualising energy consumption, temperature trends, or any other numeric sensor without opening the full history panel. You can customise colours, aggregate data by hour or day, and stack multiple entities on one graph.

Button Card

Button Card is the most flexible card in the HACS ecosystem. It renders any entity as a fully customisable button with template-driven labels, colours, icons, and actions. Advanced users build entire dashboards using Button Card as the foundation, combining it with custom templates to avoid repetition.

Manual Installation (Without HACS)

If you prefer not to use HACS, or the component you need is not listed there, you can install custom components manually.

  1. Download the component's source files from its GitHub repository — usually a folder named after the integration (e.g. local_tuya).
  2. Copy that folder into /config/custom_components/ on your Home Assistant host. The path should look like /config/custom_components/local_tuya/.
  3. Each component must include a manifest.json at the root of its folder. This file tells Home Assistant the integration's name, version, and any Python dependencies it needs.
  4. Restart Home Assistant. The integration will appear in Settings → Devices & Services → Add Integration.

Manual installs require you to check for updates yourself and re-download files when a new version is released. HACS handles this automatically, which is why most users prefer it for anything they plan to keep long-term.

Security Considerations

Custom components run with the same privileges as Home Assistant itself — they can read your configuration, access your devices, and make network requests. Before installing any custom component, check these basics:

  • Review the repository. Look at the GitHub page, check the number of stars and recent commits, and read the issues list. A well-maintained repo with active community discussion is a good sign.
  • Check what the component does. Scan the Python files if you are comfortable doing so, or look for a security audit from a trusted community member.
  • Prefer components with many users. Popular integrations like Local Tuya and Adaptive Lighting have been scrutinised by thousands of users and are considered low risk by the community.
  • Keep everything updated. An outdated custom component is more likely to break and may contain unpatched vulnerabilities.

The Home Assistant team does not vet custom components, so the due diligence is yours. Treat installing a custom component like installing any third-party software on a trusted machine.

Keeping Custom Components Updated

When a new version of Home Assistant releases, custom components occasionally need updates to stay compatible. HACS surfaces these as update notifications, and in most cases a single click is all it takes. After updating, restart Home Assistant and check the logs (Settings → System → Logs) for any errors from your custom components.

If a component breaks after a Home Assistant update and no fix is available yet, you can temporarily disable it by renaming its folder in /config/custom_components/ (e.g. add _disabled to the end) and restarting. This lets the rest of Home Assistant run normally while you wait for a patch.

Troubleshooting

Most issues with custom components show up in the Home Assistant logs immediately after a restart. Common problems and fixes:

  • Component not found after install — confirm the folder name in /config/custom_components/ exactly matches the integration's domain in its manifest.json.
  • Import errors in logs — the component may have Python dependencies that failed to install. Check the component's documentation for any additional setup steps.
  • Entity unavailable after HA update — the component likely needs updating. Open HACS and check for an available update, or check the component's GitHub repository for a newer release.
  • HACS not loading — ensure your My Home Assistant account is still linked and that the GitHub OAuth token has not expired. Re-authenticating via the HACS integration settings usually resolves this.

Related: best Home Assistant add-ons, Home Assistant blueprints guide, and Home Assistant Node-RED guide.

Frequently asked questions

Is HACS safe to install on Home Assistant?
HACS itself is a well-maintained, open-source project used by a large portion of the Home Assistant community. However, because it provides access to third-party repositories that are not vetted by the Home Assistant team, you should review any component before installing it. Stick to popular, actively maintained repositories and keep everything updated to minimise risk.
Do custom components work with Home Assistant OS?
Yes. Custom components installed via HACS or manually placed in /config/custom_components/ work on all Home Assistant installation types, including Home Assistant OS, Supervised, Container, and Core. The /config folder is accessible via the File Editor add-on, SSH add-on, or Samba share on Home Assistant OS.
What happens to custom components after a Home Assistant update?
Most custom components continue working after a Home Assistant update, but occasionally a breaking change in the core API requires an update to the component itself. HACS will flag available updates, and the component's GitHub repository is usually the best place to check if something stops working after an upgrade.
Can I install custom components without HACS?
Yes — manual installation involves downloading the component's folder from GitHub and placing it in /config/custom_components/ on your Home Assistant instance. You then need to restart Home Assistant and add the integration via Settings. The main downside is that you will need to check for and apply updates manually.

Sources

Sources verified 2026-06-19

  1. HACS — HACS — Home Assistant Community Store
  2. HACS GitHub — hacs/integration — GitHub
  3. Home Assistant — Custom Components — Home Assistant Developer Docs
  4. Home Assistant — Configuration folder structure
  5. Home Assistant — Local Tuya integration discussion
  6. GitHub — basnijholt/adaptive-lighting — Adaptive Lighting HACS component
  7. GitHub — piitaya/lovelace-mushroom — Mushroom Cards
Sepehr

Written by

Sepehr

Head of Engineering with 15+ years of software experience and a decade of hands-on smart home tinkering. I run everything I write about — Home Assistant, Zigbee2MQTT, Frigate, and a full self-hosted homelab. Independent coverage, no brand deals, UK-focused.

LinkedIn →

Related reading