From ha-ssh
This skill should be used when working with a Home Assistant instance over SSH — for example when the user asks to "check HA status", "view HA logs", "restart Home Assistant", "check the HA config", "ssh into HA", "deploy to HA", "manage automations", "check entity state", or wants to run `ha` CLI commands or manage the config at homeassistant.local. Use this skill whenever the user is doing anything that involves inspecting, modifying, or operating the Home Assistant instance.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ha-ssh:ha-sshThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Provides access to a Home Assistant OS (HAOS) instance running on a Raspberry Pi 4 at `homeassistant.local`.
Provides access to a Home Assistant OS (HAOS) instance running on a Raspberry Pi 4 at homeassistant.local.
ssh [email protected]
Key-based auth is already configured. Use ssh -o ConnectTimeout=5 for quick connectivity checks.
The SSH add-on runs an Alpine-based shell with these constraints:
apt/dpkg — package management via apk only (within the container)rsync — file transfers use tar piped over SSHha CLI is the primary interface for HA operations/config/ on the Pi# Core operations
ha core info # Version, status, IP
ha core restart # Restart HA core
ha core check # Validate config (do this before restart)
ha core logs # View recent logs
ha core logs --follow # Tail logs
# Backups
ha backups new --name "$(date +%Y%m%d-%H%M)"
ha backups list
# Add-ons
ha addons list
ha addons logs <slug>
ha addons restart <slug>
# Supervisor / system
ha supervisor info
ha os info
The local repo at ~/src/ha-ops/ mirrors /config/ on the Pi.
# Pull from Pi → local
~/src/ha-ops/scripts/pull.sh
# Push local → Pi (runs ha core check after)
~/src/ha-ops/scripts/deploy.sh
# Validate without deploying
ssh [email protected] 'ha core check'
Check HA version and update availability:
ssh [email protected] 'ha core info'
Inspect a config file:
ssh [email protected] 'cat /config/configuration.yaml'
Edit config inline (for small changes):
ssh [email protected] 'cat > /config/automations.yaml' << 'EOF'
- id: ...
EOF
Check entity state via REST API:
# Requires a long-lived access token stored in secrets.yaml or env
curl -s http://homeassistant.local:8123/api/states/<entity_id> \
-H "Authorization: Bearer <token>"
Check InfluxDB add-on:
The InfluxDB add-on is available at a0d7b954-influxdb:8086 from within HA.
/config/, private key gitignored)/config/secrets.yaml holds all secrets; reference them in YAML as !secret <key>. Never echo or log secret values. The Lutron private key (lutron_caseta-*-key.pem) is also gitignored.
Before restarting HA core:
ha core check to validate configha backups newha core restartha core logs --followCreates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub jeremiahshirk/claude-plugins --plugin ha-ssh