Files
hassio-addons/claude_desktop

Home assistant add-on: Claude Desktop

Supports aarch64 Architecture Supports amd64 Architecture Project Maintenance

Run the Claude Desktop Linux app inside a LinuxServer.io Selkies container and stream it through Home Assistant ingress.

Installation

  1. Add this repository to the Home Assistant add-on store.
  2. Install Claude Desktop.
  3. Start the add-on and open the web UI from the sidebar.
  4. Sign in with your Claude account from the Desktop app.

Claude Desktop sign-in requires a claude.ai plan that supports the Desktop app. API keys are not accepted by the Desktop application. Anthropic's Linux beta does not include Computer Use or dictation.

Features

  • Claude Desktop in single-app Selkies mode.
  • Home Assistant ingress support.
  • Persistent $HOME under /data/data, preserving Claude Desktop and Claude Code sign-in state across restarts.
  • Optional runtime Claude Desktop updates from Anthropic's apt repository.
  • Optional extra apt and pip package installation.
  • Baked-in git and GitHub CLI (gh) with optional startup credential configuration.
  • Custom script support through the repository standard claude_desktop.sh script.
  • Optional bundled Claude Code optimization tools: headroom, rtk, and caveman.
  • Headroom dashboard exposed on mapped port 8787 when install_headroom is enabled.
  • Low-power defaults: GPU device mapping, AUTO_GPU=1, SELKIES_FRAMERATE=30, /tmp tmpfs, and $HOME/.cache redirected to /tmp/cache.

Options

Option Default Description
PUID / PGID 0 / 0 User and group used for persistent data ownership.
TZ Optional timezone, for example America/New_York.
KEYBOARD Optional Selkies keyboard layout.
PASSWORD Optional password for direct Selkies ports. Set this before exposing ports 3000 or 3001.
DRINODE Optional GPU device override for Selkies.
DNS_server 8.8.8.8 DNS server used by the standard DNS module.
auto_update true Check Anthropic's apt repository and upgrade claude-desktop at add-on startup.
install_headroom true Register the baked-in headroom MCP server in Claude Desktop, start the Headroom proxy backend, and expose the Headroom dashboard on mapped port 8787 at /dashboard when that port is open. This exposes the headroom_compress/headroom_retrieve/headroom_stats context-compression tools inside the app. (Claude Desktop overrides ANTHROPIC_BASE_URL, so transparent proxy compression is not possible — MCP is the supported path; see headroom #869.) Disabling removes the MCP entry and stops the backend/dashboard service.
install_rtk true Configure the rtk Claude Code PreToolUse hook in the persistent Claude Code settings.
install_caveman true Install the caveman Claude Code plugin into the persistent Claude Code home.
install_github_cli true Enable first-start checks and setup for the baked-in git and gh commands.
github_token Optional GitHub personal access token used to authenticate gh and configure Git credentials for GitHub.
github_username Optional global Git author name.
github_email Optional global Git author email.
ha_smart_context true Enable Home Assistant smart context support for Claude tooling.
enable_ha_mcp true Enable Home Assistant MCP support for Claude tooling.
dangerously_skip_permissions false Expose Claude Code's dangerous permission skip mode option. Only enable if you understand the risk.
additional_apps Comma-separated Debian apt packages to install at startup, for example htop,git.
additional_pip Comma-separated pip packages to install at startup. Installs use --break-system-packages.
data_location /data/data Persistent home directory location. Keep this persistent so Claude sign-in survives restarts.
networkdisks, cifsusername, cifspassword, cifsdomain Standard SMB mount options.
localdisks Standard local disk mount option.
env_vars [] Extra environment variables to export into the container. This can override SELKIES_* defaults.

Custom scripts

The add-on includes the repository standard custom-script executor. On first start, it seeds a claude_desktop.sh file in the add-on config directory from the shared template. Commands in that script run during startup, allowing local customization without rebuilding the image.

Data and cache locations

Persistent state is stored in the configured data_location. Claude Desktop stores sign-in data below ~/.config/Claude, and Claude Code/tool configuration is stored below ~/.claude. Volatile cache data is redirected to /tmp/cache through $XDG_CACHE_HOME and $HOME/.cache.

Headroom dashboard

When install_headroom is enabled, the add-on starts the local Headroom proxy backend and maps port 8787 by default. Open http://<home-assistant-host>:8787/dashboard to view the Headroom live savings dashboard. If you disable the 8787/tcp port mapping, the backend binds to localhost for MCP use only and the dashboard is not externally exposed.