HACS 2.0 - The best way to share community-made projects just got better

Art by Clelia Rella

TL;DR: HACS 2.0 is a big step forward, adding an easier install method, faster updates, a new UI, and proper Home Assistant update/repair notifications.

Home Assistant’s Community Store, HACS, has now hit v2.0, gaining some big improvements that continue to make it the best way to find, install, and update awesome community-made integrations and UI elements. This follows HACS being added as an Open Home Foundation collaboration partner, recognizing its important role in Home Assistant’s open ecosystem.

Just note, HACS is an advanced tool that can add custom code to your Home Assistant install, which can cause issues on your Home Assistant system. If you are a beginner or prioritize stability above all else, HACS might not be for you.

Jump to sections

Want to skip the blog and just start playing with HACS 2.0? Just remember to proceed with caution and do not skip the backup step before you install.

HACS reaches v2.0

This is one of the biggest updates yet for HACS, but if you’re not sure what HACS is or why you might consider using it, check out our explainer below.

New frontend

HACS 2.0 main dashboard has taken cues from Home Assistant, and now closely matches the native look and functionality of the data tables you find on the entities or automation pages. This includes the options to filter, group, sort, and search.

Faster downloads

Previously, HACS 100% relied on GitHub to retrieve information, from file locations to the number of stars, so we needed to limit the API (as there are a lot of HACS users). To speed things up, we’ve created a remote dataset stored in Cloudflare R2 buckets, which are updated at regular intervals.  Files are still downloaded from GitHub and their API is still contacted, but it will see drastically fewer calls, and the speed improvement is massive. Behind the scenes, this was a big piece of work, which has ongoing costs, and shows the kind of support the Open Home Foundation can provide to a community-driven project like HACS.

Update and repair 

No more visiting the HACS page every day to check for updates. They’ll now appear in the same places system and add-on updates appear in the native Home Assistant format. Also, once they’re finished updating, they will give you suggested repairs (for instance, reloading the dashboards or rebooting Home Assistant).

Other improvements

We have also renamed things to help them make more sense, including changing “category” to “type”, and “Lovelace” to “dashboard” (Lovelace needs to make room for Grace). We’re also including Template management, which utilizes the new template type to enhance your Jinja templates.

What is HACS?

Home Assistant is built around choice, and HACS is the epitome of this, giving you access to hundreds of community-made integrations, cards, themes, and more. HACS isn’t actually a hack, as Home Assistant has always allowed you to add custom integrations and UI elements - HACS just adds a streamlined interface to find, install, and update these.

HACS stands for Home Assistant Community Store, and despite the name it doesn’t sell anything - it’s all free and open-source. HACS is there for people in the community who write custom code to address something they think is missing from Home Assistant. It allows them to easily share this code with the community unrestricted via submitting their GitHub repository to HACS. This means these are maintained by the community members that upload them, not HACS or Home Assistant. If you want to learn more about what you’re installing, or report issues, there is always a link to the original code.  

Just to clear up the biggest misconception about HACS, it does not install add-ons. Home Assistant OS natively has its own built-in store for Home Assistant Add-ons. Add-ons run alongside Home Assistant, while HACS installs custom code that can run in Home Assistant (which has implications for system stability, more on that below).

Why use HACS?

More integrations - Not every device and service is supported by Home Assistant out-of-the-box, and HACS helps fill the gaps. There are hundreds of integrations on HACS, some are there because the authors didn’t have the time to meet Home Assistant’s requirements, while others are doing something not allowed by Home Assistant, like web scraping (which is sometimes the only way, but not a good idea). Just be aware that these decisions can come at the expense of stability.

Advanced integrations - Some HACS integrations are more complex and advanced versions of their Core counterparts, while other integrations combine multiple sensors to provide new data points. Some of these “integrations” even give Home Assistant advanced new features and settings. It also allows for rapid development as it allows updates outside the Home Assistant refresh cycle.

Cards and Themes - There are some amazing cards, UIs, and themes being built by community developers and designers - BTW if you’re one, our frontend team needs your help. HACS has made the installation and updating of these designs very simple and quick.

Scripts and Templates - This is the easiest way to share scripts and templates, while also adding the ability to push new improvements to users via updates.

A Brief History of HACS

HACS started in 2019 as my (Joakim Sørensen ) third attempt to build a community store. It started small and quickly became the de facto standard, with so many talented community creators submitting their projects. The Home Assistant team was supportive from day one, and even as HACS gained hundreds of thousands of downloads, we all agreed it should remain an optional addition to Home Assistant. Giving users the choice to add new features to Home Assistant at the cost of stability.

I joined Nabu Casa in 2020, partly due to the work I did on HACS, but I was hired to work on Home Assistant more generally, not to work on HACS. Incidentally, I’m not the only developer working at Nabu Casa who got their start on HACS: Paul Bottein on the frontend team built Mushroom Cards, and Marcel van der Veldt who currently supports Matter development built Music Assistant.

Over the years, I continued to work on HACS in my spare time, but there were always aspects of the original version that limited its ability to grow. Recently, the Open Home Foundation reached out to make HACS a collaboration partner, and provided development support. Numerous people were brought in to support, from across Nabu Casa and the community, leading to the large list of improvements you see today.

Just before we released this big update, it passed 5,000 stars on GitHub! It’s the projects on HACS that make it what it is today, and I’d like to sincerely thank everyone who continues to contribute their code onto the store.

How to install

Note

Proceed with caution - HACS is not for everyone.  If you’re a Home Assistant beginner or are looking for the most stable experience in your smart home, HACS is probably not for you. These are community-made projects that do not receive the same rigorous reviews required of projects submitted to Home Assistant. There may be projects that don’t work or, even worse, break your system. Unlike add-ons that run separately and alongside Home Assistant, HACS projects run their code directly in Home Assistant, which increases the chances of crashing or harming your system. Before using HACS, always make a backup of your system and download that backup to another device.

HACS should work on any up-to-date version of Home Assistant, it even runs on core installations. It also requires a GitHub account. If you already have HACS 1.X installed, perform a backup, go into HACS and then click the update button for HACS (note: if you update, there is no downgrading).

If you’re a Home Assistant OS user here is the installation method (If you’re not using our OS, visit this page),

  1. Make a backup of your system and download it to another device for safekeeping.

  2. Install the addon: Using this link, add the HACS add-on repository, and install the add-on it links to,

  3. Start the add-on (no need to “start on boot”, you should only need to run this once).

  4. Navigate to the add-on’s “Log” and follow the instructions given there.

  5. Once finished, reboot Home Assistant and navigate to the devices page. Add the integration HACS, and follow the instructions to link it with your GitHub account.

It’s installed, now what? Start downloading some custom integrations and UI elements. There are a lot of great community resources listing the best custom integrations, cards, themes, and more.

Conclusion

There are too many people to thank in this blog who have helped the development of HACS over the years.  Thanks for submitting your projects, reporting issues, fixing code, and just using this funny little side project. Most important to this all, thanks to Home Assistant Cloud subscribers. They made this update possible, not only do they pay my salary, but they also fund the Open Home Foundation, whose support was critical.


This is a companion discussion topic for the original entry at https://www.home-assistant.io/blog/2024/08/21/hacs-the-best-way-to-share-community-made-projects
36 Likes

Congratulations. The new interface looks great, and the ability to interface with HA for updates is a game-changer. Yes, I was one of those who checked every day. I’m not a power user, not a developer, just an average 69 year old user who fell in love with HA. I remember being frightened of HACs initially, insisted to my self that I would never need or never use those HACs as it would create more headaches and instability. And now 18 months later, I have almost 20 different projects as part of my smart home between integrations, dashboards and themes. Having Alarmo, Music Assistant, Frigate, Browser Mod, Tapo Camera Control, I couldn’t live without them. Fantastic work. Also well written intro above.

7 Likes

Thank you Joakim for making this vital part of home assistant. The importance of HACS cannot be understated.

4 Likes

Awesome changes! Thanks for all the hard work, much appreciated.
No need to check two pages for updates now, thank you :heart:

1 Like

Hm. I somehow have HACS installed, but it doesn’t show up in my Add-Ons. Checking now too I see that the frontend version I have is very old?

Integration version: 1.34.0
Frontend version: 20220906112053

What’s the best way to get this resolved/updated? I have ssh access to the instance.

1 Like

Restart HA, it should pop up like this when you click HACS (I had no update myself and rebooted):

1 Like

It is not an add-on, so it would not appear in your add-ons.

It is a custom integration and should appear on that page:
https://my.home-assistant.io/redirect/integrations/

1 Like

Working great. Thank you so much

1 Like

That’s true, but as it says in points 1-4 in the original post you can run an add-on once to get the integration set up. Not applicable to the post you responded to, but for first time users it might be confusing :slight_smile:

4 Likes

Got it, I was confused by the text around the add-on, as @fleskefjes mentioned.

No update showing up for the integration yet (I tried refreshing updates and restarted HA just for extra juice), but I assume it will show up eventually. Not a big deal for me.

Thanks!

2 Likes

Yes, the new add-on (“Get HACS”) is for ease of installation when running HAOS. More of a run-once-then-done solution.

3 Likes

I don’t like it. Old one was better.

2 Likes

I remember a discussion years back, where we/the community proposed better integration with HA. AFAIK it doesn’t meet understanding.
But HACS2.0 is proof that sooner or later things move towards community expectations. That’s great.

What I would like to challenge is an initial statement that it’s not for everyone. Maybe it’s too big stretch but HA wouldn’t be where it is today without custom contributions. HACS played a huge role in that. Saying that I guess most HA users use HACS. We shouldn’t scare newcomers or unskilled users of using HACS. it’s the opposite: we should do the maximum to make it even more accessible (which is happening already)

I still would like to be able to enable/restart integrations without the need for HA restart. I know HACS cannot do anything, since it’s due to how HA works. I hope this demand will be heard one day since HACS became the collaboration partner.

Kudos to HACS team.

You mean after updating a custom integration right? HA uses importlib, so it’s entirely possible. Restructuring would be needed and safety would need to be added around installing/updating dependencies.

3 Likes
WARNING (SyncWorker_0) [homeassistant.loader] We found a custom integration hacs which has not been tested by Home Assistant. This component might cause stability problems, be sure to disable it if you experience issues with Home Assistant

So will this warning be retired in the next release of home assistant?

Seems reasonable to remove it for HACS but to keep the warnings for things HACS installs.

As it is itself a custom integration, shouldn’t it have the same warning as any other?

4 Likes

Love the new UI. Been using it for a while as experimental and I’ve grown quite fond of it :heart:

Upgrade has worked fine, so thanks for the great update.

Just a thought, why not include HACS with HA Core rather than use an addon to install. I imagine core trusts HACS such that it isn’t seen as a risk. But then all the installed components can be treated as untrusted/custom.

Hopefully with this new version out there, and the load reduced on GitHub, new components will started getting added to the default lists again, there is quite a backlog (I have 5 waiting to be added).

The author of HACS had started that he doesn’t want it in core.

1 Like

Because it would be too easy for anybody to add random custom integrations that make their system unstable.

By having hoops to jump through it makes it more hopeful that people understand the risks… or more likely just skipped reading all the warnings.

1 Like