Back to blog
Home AssistantHomelabAutomatización

Home Assistant 2026.11 replaces HACS with Marketplace

Marketplace takes over from HACS, so it is time to review templates, YAML resources, and tools tied to its API.

By Isma6 min read

HACS has been a standard part of many self-hosted Home Assistant setups for years. With Home Assistant 2026.11, it stops being a separate integration and becomes a built-in feature called Marketplace. The move happens automatically when Home Assistant starts after the upgrade, but I would treat it as an infrastructure change rather than a renamed menu entry. If your setup includes automations, YAML-managed Lovelace resources, or external tooling around HACS, there are a few checks worth making.

What moves over and what stays in place

Integrations, dashboard cards, themes, and templates previously installed through HACS remain installed after migration. Custom repositories and update entities are also carried over, including their entity IDs, names, areas, and labels. In practice, an automation that watches an existing repository update.* entity should continue to work. What disappears is the HACS integration itself, along with its files.

Marketplace is available to administrators under Settings > Marketplace. There is no separate component to install, and a GitHub account is not required to install catalog content. GitHub access is required when adding custom repositories and when keeping those repositories updated. That matters if you rely on internal private repositories, because Marketplace only supports public ones.

Manually added repositories need a hacs.json file and must provide a supported content type: an integration, dashboard resource, theme, or template. A repository that does not meet those requirements can remain installed after migration, but Marketplace cannot keep it updated. Before upgrading, I would review every custom repository and flag anything that depends on an older layout. It is better to find those exceptions deliberately than to assume every update path survives unchanged.

Updates become usable Home Assistant entities

Marketplace creates an update entity for each installed repository. Those entities live alongside Home Assistant updates and make it possible to build notifications without reading HACS internals. Marketplace checks for new versions on a schedule, although an update entity can become unavailable if it cannot reach the catalog or a linked repository. The installed component continues to run in that situation; only update detection is temporarily affected.

A basic automation can notify you when a repository update becomes available. In the following example, update.card_mod is the entity used in the official documentation and must be replaced with the actual entity ID in your installation. The template relies on documented update-entity attributes, including latest_version and friendly_name.

alias: "Marketplace update available"
description: "Tell me when a new version of a repository is available"
triggers:
  - trigger: state
    entity_id: update.card_mod
    from: "off"
    to: "on"
actions:
  - action: persistent_notification.create
    data:
      title: "Marketplace update"
      message: >-
        Version {{ state_attr(trigger.entity_id, 'latest_version') }} of
        {{ state_attr(trigger.entity_id, 'friendly_name') }} is available.

This is useful in a homelab because community component updates enter the same review flow as the rest of the instance. It also removes the need to visit a separate HACS screen just to see what changed. An updated integration may still need a Home Assistant restart before its new files are loaded. Marketplace raises a repair when that happens and can offer the restart from there.

Templates and automations that reference HACS

Templates are the most likely place for a quiet breakage. Code that calls integration_entities('hacs') will no longer find anything because the HACS integration is gone. The documented replacement is integration_entities('marketplace'). Existing migrated update entities are not the issue; the way you discover them by integration is.

{% set updates = integration_entities('marketplace') %}
{% for entity in updates if entity.startswith('update.') %}
  {{ entity }}
{% endfor %}

Any logic that used the release_summary attribute to decide whether a restart was needed also needs to go. HACS stored restart-related information there, while Marketplace leaves that attribute empty and uses Repairs instead. An automation that posts to Telegram, Matrix, or another notification channel may keep running, but it will no longer receive the value it expects. I would audit those conditions before upgrading instead of waiting for silent failures.

Lovelace paths and external tools

Dashboard resources installed through Marketplace are now served from /local/community/. Older /hacsfiles/ URLs still work, so there is no immediate need to edit every dashboard. YAML-managed resources are the exception: Home Assistant raises a repair to remind you to move them to the new path. I would use that prompt to clean up old references and keep the configuration aligned with the current layout.

Custom tools using the HACS WebSocket API need a more deliberate migration. Commands using the hacs/ prefix, including hacs/repositories/list, are no longer available and return an unknown-command error. Marketplace exposes commands under marketplace/, but the format is different, so a simple prefix replacement is not enough. Any inventory script, external dashboard, or in-house integration should be updated against the current Marketplace API contract.

Custom integrations that read hacs.* files in .storage, access hass.data["hacs"], or listen for hacs_dispatch_* signals lose that data source too. Marketplace update entities are the documented source for installed and latest version information. That means shifting custom code away from private storage details and toward Home Assistant state. It is a healthier design, even if the migration requires some work.

The fine print

Marketplace does not make community projects reviewed Home Assistant software. Integrations, cards, themes, and templates installed from it still run inside your instance and can affect security, privacy, stability, and performance. A built-in installer makes deployment easier, but it does not remove the need to inspect the repository, recent activity, and issue history. For a setup that controls access, cameras, or alarms, I would apply the same caution I used with HACS.

It also does not cover every feature previously associated with HACS. AppDaemon apps and Python scripts installed through HACS keep their files and may continue working, but Marketplace no longer manages or updates them. If you depend on those components, you need a separate maintenance process. That is easy to miss until a script has been sitting on an old version for months.

Finally, Marketplace can be disabled, but disabling it does not remove content already installed from it. Existing integrations, cards, and themes keep working, but they stop receiving updates while it is disabled. Custom repositories require a GitHub connection, and GitHub is the default download source. If you choose an alternative relay, both the catalog and downloaded code travel through that relay infrastructure, so it should only be used when you trust the operator.


Source: https://www.home-assistant.io/blog/2026/11/04/release-202611/

Official documentation: https://www.home-assistant.io/integrations/marketplace/

Newsletter

What I learn coding with AI, every two weeks in your inbox.

Real numbers, mistakes included. No spam, unsubscribe in one click.

No spam, unsubscribe in one click. I only use your email to send you this and the newsletter. More in the privacy policy.