Skip to content

Make installing HACS more accessible by removing CLI Installation requirement #94

@carlhye

Description

@carlhye

Problem statement

HACS (Home Assistant Community Store) is a valuable resource for Home Assistant users, but its current installation process creates unnecessary friction that prevents less technical users from accessing community integrations and add-ons. The installation requires CLI access, manual wget commands, multiple restarts, and cache clearing — barriers that exclude users who are comfortable with UI-based workflows but not command-line operations.

Image

Additionally, the GitHub authentication flow and acknowledgment requirements lack integration with HA's native UI patterns, creating a disjointed experience.

Image Image

Community signals

Installation Friction Evidence:

Technical Barriers:

Beginner Accessibility Gap:

Community Confusion & Support Burden:

GitHub Authentication Friction:

  • GitHub device authorization flow requires users to leave HA, manually copy 8-digit codes, navigate external authorization pages, and return — creating a disjointed experience (visible in installation screenshots)
  • Users frequently get stuck on the GitHub OAuth step, with some reporting the authorization completing but HACS still failing to activate:

Demand Signal:

  • Despite installation complexity, HACS remains one of the most widely adopted community tools for Home Assistant
  • Community consistently recommends HACS as essential for power users: HowToGeek article titled "All Home Assistant Users Should Install This Custom Integration" (https://www.howtogeek.com/all-home-assistant-users-should-install-this-custom-integration/)
  • The existence of numerous third-party installation tutorials and YouTube guides indicates organic demand for simplified access

Scope & Boundaries

In scope

  • Remove CLI installation requirement — enable HACS installation entirely through HA's UI
  • Gate HACS behind Home Assistant Labs to allow controlled rollout and potential rollback
  • Add HACS as a Labs feature card following existing Labs UI patterns
  • Integrate HACS's four required acknowledgments into HA's native UI patterns
  • Streamline the installation flow to eliminate manual restarts and cache clearing steps
  • Provide clear explanation of GitHub account requirement (OAuth authentication + rate limiting) within the flow
  • Investigate whether HA's existing GitHub authentication mechanism (used for App Store custom repositories) can eliminate the need for individual user GitHub accounts

Not in scope

  • HACS UI redesign (separate opportunity planned)
  • GA transition to App Store (future opportunity after Labs validation)
  • Changes to how HACS functions post-installation
  • Changes to HACS content curation or quality standards
  • Individual user GitHub authentication requirement (pending investigation — if HA's backend auth is sufficient, this becomes unnecessary)

Foreseen solution

Phase 1: Labs Release

Add HACS as a new Labs feature card in Settings > System > Labs, following the existing pattern (similar to "Device database", "Purpose-specific triggers and conditions", etc.).

HACS Labs Card:

Title: "HACS (Home Assistant Community Store)"
Category: Integration / Community
Description: Brief explanation of HACS and what it provides
Enable/Disable toggle: Triggers installation flow when enabled

Image

Installation Flow (when user enables HACS in Labs):

  1. Acknowledgment Screen: Present the four existing HACS acknowledgments in HA's native dialog pattern: Image
  • "I know how to access Home Assistant logs"
  • "I know that there are no add-ons in HACS"
  • "I know that everything inside HACS including HACS itself is custom and untested by Home Assistant"
  • "I know that if I get issues with Home Assistant I should disable all my custom_components"
    Add contextual explanation: "HACS provides community-maintained integrations that don't meet Home Assistant's core stability and security requirements."
    Note: GitHub account explanation included only if user authentication proves necessary after investigation.
  1. One-Click Installation: Backend handles the current wget/bash workflow automatically — no CLI access required
  2. GitHub Authentication (if required after investigation): Use existing HA device authorization pattern:
  • Display device code
  • Link to GitHub authorization page
  • Wait for user to complete OAuth flow
  • Automatic device activation upon completion
    Alternative: If HA's backend GitHub authentication (used for App Store custom repositories) is sufficient, skip user authentication entirely.
  1. Automated Setup: Handle restarts and cache clearing programmatically with progress indicators
    Post-Install: HACS appears in integrations list with repositories accessible

Phase 2: GA Transition (Future - Out of Scope for This Opportunity)

Once Labs validation is complete and HACS installation is deemed stable, move installation to App Store UI (separate opportunity). This initial opportunity focuses solely on the Labs implementation

Risks & open questions

PRIORITY INVESTIGATION:

  • Can we eliminate individual user GitHub authentication entirely? The App Store already allows users to add custom GitHub repositories (via "Repositories" → "+ Add") without requiring user GitHub accounts. This strongly suggests HA has backend GitHub authentication. Key questions:
    • Does HA's backend already authenticate to GitHub for App Store custom repository access?
    • Can HACS leverage the same mechanism?
    • What's the actual purpose of HACS's current GitHub user requirement — is it technical necessity or legacy from pre-OHF days?
    • Rate limiting: Does adding HACS's repository list create problems, or is it already handled by HA's backend?
    • If backend auth is sufficient, this could eliminate significant user friction and simplify the entire installation flow

Other Open Questions:

  • Restart/cache handling: Can restarts be automated gracefully, or do users still need to trigger manually? What's the UX during automated restart?
  • Labs rollback: If HACS installation causes issues, what's the rollback process? Can users uninstall cleanly from Labs?
  • Acknowledgment refinement: The current four warnings are functional but verbose. Should we explore more elegant presentation while retaining the same information?
  • Support burden: Making HACS more accessible may increase support requests about community add-ons — how do we set expectations that these aren't officially supported?
  • Labs card description: What's the optimal brief description for the HACS Labs card that clearly communicates value and risk?

Appetite

Medium / 1 cycle (2 months)

This involves UI work for the Labs feature card, acknowledgment screen redesign, backend automation of the installation script, investigation and potential implementation of backend GitHub authentication (vs. user OAuth), and testing across different HA installation types (OS, Container, Core). Should be achievable in one cycle with focused effort.

If the GitHub authentication investigation reveals that backend auth can eliminate user authentication entirely, this could actually reduce scope and make the opportunity more achievable within the cycle.

Execution issues

To be created during implementation

Decision log

Date Decision Outcome

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

Status

Ideas

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions