Manage HACS
ha_manage_hacsManage HACS by installing, updating, removing, adding custom repositories, or refreshing release data to surface pending updates.
Instructions
Manage HACS (Home Assistant Community Store) — install/update, remove, add custom repositories, or refresh repository information.
On Home Assistant 2026.11+ HACS is the built-in Marketplace; the tool
uses whichever the instance has. This tool performs writes; to search the
store or read repository details use ha_get_hacs_info. Use
action="update_information" to run the HACS UI's "Update information"
action ("Refresh information" in the Marketplace) — a forced re-fetch of
one repository's release data from GitHub, so a pending update becomes
visible to the store and its update entity immediately.
Examples:
Install latest: ha_manage_hacs(action="download", repository_id="441028036")
Install a version: ha_manage_hacs(action="download", repository_id="piitaya/lovelace-mushroom", version="v4.0.0")
Remove: ha_manage_hacs(action="remove", repository_id="owner/repo")
Add a custom repo: ha_manage_hacs(action="add_repository", repository="owner/repo", category="lovelace")
Refresh release data: ha_manage_hacs(action="update_information", repository_id="owner/repo")
Caveats: Installing an integration usually needs a Home Assistant restart to
activate; new Lovelace cards need a browser cache clear. add_repository requires owner/repo
format plus a matching category. Removing an integration deletes its files but
the loaded module persists until the next Home Assistant restart — delete its config
entries first (ha_remove_helpers_integrations). HACS refreshes custom
repositories on its own only about every 48 hours (the Marketplace only with a
connected GitHub account), so update_information is the way to surface a
just-published release. The Marketplace refuses installs until the connected user has
accepted its first-run warning, and adding a repository needs a connected GitHub
account; both are steps the user takes in the Marketplace panel.
If a Claude Desktop user gets a 4-minute timeout with no result on this call, read the target back before repeating it, and tell them to wait a few seconds before clicking the manual-approve button, as clicking it too quickly is known to cause hangs in Claude Desktop. This workaround is specific to Claude Desktop.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| action | Yes | 'download' to install/update, 'add_repository' to register a custom repo, 'remove' to uninstall a downloaded repo, or 'update_information' to refresh a repository's release data from GitHub | |
| version | No | Specific version to install (action='download') | |
| category | No | Repository category (action='add_repository'). One of the categories the store reports (search's store.categories); 'lovelace' means 'plugin' (dashboard cards). | |
| repository | No | GitHub repo 'owner/repo' to add (action='add_repository') | |
| repository_id | No | Numeric HACS ID or 'owner/repo' path (action='download' / 'remove' / 'update_information') | |
| confirm_replace_built_in | No | Marketplace only (action='download'): install a repository that replaces the built-in integration of the same domain. Set it only after the user agrees. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||