Researched from current Home Assistant, HACS and project documentation on October 1, 2026. The examples below are configuration walkthroughs, not hands-on installation tests. Cover: AI-generated editorial illustration.
Choose by the job you need done
Choosing between HACS and Apps in Home Assistant starts with the feature you need. Choose a built-in integration to connect a supported device, an app to run a separate program, or HACS to download a community extension you specifically want. These choices can work together.
An integration connects Home Assistant to a device or service, or adds behavior inside Home Assistant. A dashboard card displays information or controls on a screen. An entity is an individual reading or control, such as a room temperature. A new card can display that temperature without creating a new sensor.
HACS means Home Assistant Community Store. It helps download and manage community projects. It is optional: start with Home Assistant’s built-in integrations and cards, then add HACS if a particular project fills a real gap. Apps are separate programs running alongside Home Assistant. The phone’s Companion app is a different use of the word “app.” See the official concepts guide and HACS Apps FAQ.
On a phone, swipe the table sideways to see every column.
| Your goal | Start here | What completes the setup? |
|---|---|---|
| Connect a device supported by a built-in integration. | Settings → Devices & services → Add integration. | Follow that integration’s setup and check its entities. HACS is unnecessary for this route. |
| Run a separate service, such as Mosquitto, which passes messages between connected devices and programs. | On OS: Settings → Apps. On Container: manage the service separately. | Start and configure the service, then connect the matching Home Assistant integration when needed. |
| Add custom behavior, such as Adaptive Lighting. | Find the project in HACS. | Download, complete any required restart, then configure the integration using its own instructions. |
| Change how existing information appears, using Mushroom cards. | Find Mushroom in HACS. | Load its card files, then add a card to a dashboard and select an existing entity. |
1. Check your installation before choosing a download route
Open Settings → About and identify your Home Assistant installation type. Current supported choices are Home Assistant OS and Home Assistant Container. OS includes the management system, called Supervisor, that runs Apps. Container does not gain that system by installing HACS. If choosing between the two is your real decision, read our OS versus Docker comparison.
Older tutorials say “Add-ons.” Home Assistant changed that label to Apps in 2026.2; this is not a missing-feature diagnosis. If you have OS and still cannot find Apps, verify the server and account you are using before assuming you need to reinstall. Use an administrator account for this setup. Sources: installation options and the 2026.2 naming change.
2. Choose one project and check its requirements
Write down the feature you want and open the project’s own documentation. Check its minimum Home Assistant version, configuration method and recent compatibility notes. HACS itself and the project you download can have different version requirements.
The HACS prerequisites also require access to configuration files and logs, plus working internet access to its download services. Know how you would inspect an installation error before adding custom code. Keep a current completed backup; our backup and restore guide explains how to prepare that separately.
Do not install a collection of extensions just to follow a screenshot. HACS says its custom elements are not reviewed or tested by the Home Assistant development team. Read the chosen project’s release notes and support instructions. A listing is a distribution route, not a promise of maintenance or compatibility.
3. Download HACS using the matching route
For Home Assistant OS: add https://github.com/hacs/addons as an app repository under Settings → Apps → Install app → the three-dot menu → Repositories. Select Get HACS, install it, start it, and follow its logs. Once the download instructions are complete, restart Home Assistant.
For Home Assistant Container: use the Container tab of the official HACS download guide. Its procedure enters the running Home Assistant container and runs the project’s download script there. Use your actual container name. Check that its configuration directory is stored persistently, then restart Home Assistant as directed. Installing an unrelated container named “HACS” is not that procedure.
The download page still includes older installation tabs. They do not change Home Assistant’s current supported installation choices. If you cannot identify your setup or its configuration storage, resolve that before running commands.
Why Get HACS appears under Apps: it downloads HACS for an OS installation. Finding or starting that installer does not finish the HACS integration setup. The next step happens in Devices & services.
4. Add the HACS integration
- After the restart, open Settings → Devices & services. Perform a hard refresh of the browser, or clear its cache as the HACS instructions describe.
- Select Add integration, search for HACS, and read the setup acknowledgements.
- Follow the GitHub authorization link shown by the setup flow. Sign in to GitHub, enter the device code supplied by your own Home Assistant setup, and authorize HACS.
- Return to Home Assistant and finish. Open HACS from the sidebar and confirm its project list loads.
This follows the HACS initial configuration guide. GitHub authorization is part of HACS setup; it does not log you in to a light manufacturer’s service or make a cloud device local.
5. Work through one request, not every store
Imagine a household has three requests: show a temperature more clearly, change lamp color through the day, and connect an MQTT device. The worksheet below separates the downloaded software from the thing that actually makes it useful. You would choose the relevant row, not install all three.
On a phone, swipe the table sideways to see the setup and expected result.
| Example request | Installation sequence | Expected result and boundary |
|---|---|---|
| “I want a Mushroom temperature card.” | HACS → Mushroom download → dashboard editor → add a Mushroom Entity card → choose the existing temperature sensor. | The card displays the sensor’s state. It does not pair the sensor or need a Mushroom entry in Add integration. |
| “My existing lamp should adjust through the day.” | HACS → Adaptive Lighting → restart → Add integration → Adaptive Lighting → configure the chosen light. | The configured integration supplies its control switches. The lamp must already work in Home Assistant; downloading code does not pair it. |
| “My device needs an MQTT broker.” | Run a broker, such as the Mosquitto app on OS; configure the device and Home Assistant’s MQTT integration to use that broker. | A broker is the message exchange service. Its running status alone does not prove the device is publishing or Home Assistant has created an entity. |
The projects document these paths separately: Mushroom, Adaptive Lighting and MQTT. For the next task, use our one-lamp Adaptive Lighting walkthrough or our guide to whether you need MQTT and Mosquitto.
A HACS custom integration runs inside Home Assistant on your server. A downloaded dashboard card is code loaded by the browser. Its resource is the file the browser needs to draw it. HACS also distributes other project types, including themes. Do not apply an integration’s restart-and-configure instructions blindly to every download. The integration instructions distinguish UI setup from YAML, and the dashboard instructions explain resources.
6. Verify with an existing temperature reading
If you chose Mushroom, use a harmless display test before changing a household dashboard. You need an existing temperature entity with a valid reading and a dashboard you can edit. This walkthrough does not require switching a device on or off.
- Add a built-in Entity card showing that temperature on a spare dashboard view. Note the entity identifier, such as
sensor.living_room_temperature; yours will differ. - After downloading Mushroom and completing any reload instructions, add a Custom: Mushroom Entity card on the same view.
- Select that exact same temperature entity. Save the card and compare the state and unit on both cards. Different visual formatting is fine; an unavailable reading on both points to the underlying sensor.
- Open the view on a second phone or browser. Both cards should load there too. If only the custom card fails, investigate its resource loading before changing the sensor integration. Remove the temporary cards when finished.
This is a suggested acceptance check, not a reported Tara test. Mushroom’s usage instructions explain its card picker; Home Assistant documents adding built-in cards. A successful comparison confirms that display path, not every feature of the extension.
If the download is finished but the feature is missing
On a phone, swipe the table sideways to read the next step.
| What you see | Check first | Next step |
|---|---|---|
| No Apps menu. | Installation type and tutorial date. | Container has no managed Apps. On OS, look for the current Apps label using an administrator account. |
| Get HACS completed, but no HACS sidebar. | Whether you finished integration setup. | Restart as instructed, refresh the browser, then add and configure HACS in Devices & services. |
| A downloaded integration is absent from Add integration. | Its project instructions and HACS status. | Complete a pending restart and refresh. Some projects require YAML configuration instead of an Add integration entry. |
| Mushroom is absent from Add integration. | The downloaded project type. | Look in the dashboard card picker; it is a card collection. |
| A custom card reports “Custom element doesn’t exist.” | Download, documented resource entry and browser reload. | Check the project’s resource instructions. HACS’s “Open source” check should load its JavaScript; a 404 means the file is not being served at that path. |
| An app is running, but its device is missing. | The matching integration’s connection and device setup. | Inspect the service and integration logs. Do not add HACS or reset the device merely because the app started. |
HACS’s dashboard guide explains pending restarts and project details. Its dashboard-element guide describes the Open source check. Change one installation step at a time so you can tell which layer was missing.
Common questions
Do I need HACS to use Home Assistant?
No. Built-in integrations, dashboards and automations can form a complete setup. Add HACS when a specific community project provides something you need and you are comfortable maintaining it.
Will installing HACS give Container the App Store?
No. HACS can download custom extensions on Container, but it does not add the Supervisor-managed Apps system. Run required companion services separately, or evaluate Home Assistant OS.
Does HACS make my devices work without internet?
No. Check each project’s device connection. HACS needs internet for downloading and checking projects; the installed integration may control a device locally or may still require a vendor service.
For help choosing and handing over a manageable system, see Tara’s configured Home Assistant setup.
