Home assistant add-on: Claude Desktop
Run the Claude Desktop Linux app inside a LinuxServer.io Selkies container and stream it through Home Assistant ingress.
Installation
- Add this repository to the Home Assistant add-on store.
- Install Claude Desktop.
- Start the add-on and open the web UI from the sidebar.
- 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
$HOMEunder/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
gitand GitHub CLI (gh) with optional startup credential configuration. - Custom script support through the repository standard
claude_desktop.shscript. - Optional bundled Claude Code optimization tools: headroom, rtk, and caveman.
- Headroom dashboard exposed on mapped port
8787wheninstall_headroomis enabled. - Low-power defaults: GPU device mapping,
AUTO_GPU=1,SELKIES_FRAMERATE=30,/tmptmpfs, and$HOME/.cacheredirected 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.