Skip to content
Back to skills

Home Assistant

ASecurity

Safely inspect and change this Home Assistant installation - YAML config (configuration.yaml, automations, scripts, scenes, packages, templates, blueprints), dashboards, helpers and other add-ons' configs - using the live Core REST/WebSocket API, the `ha` CLI and HA's MCP tools. Use for any task that reads or modifies Home Assistant, checks its config or logs, reloads integrations, controls entities or restarts Core.

  • 5 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 22, 2026
ai-agentsgodebugginggitapidatabase

Works with

  • claude code
  • cli
  • api
  • mcp

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 22, 2026

npx -y skills add farajfarook/paseo-ha-addon --skill home-assistant --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Home Assistant?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Home Assistant
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/farajfarook-home-assistant/badge)](https://www.skillsdirectory.com/skills/farajfarook-home-assistant)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: home-assistant
description: Safely inspect and change this Home Assistant installation - YAML config (configuration.yaml, automations, scripts, scenes, packages, templates, blueprints), dashboards, helpers and other add-ons' configs - using the live Core REST/WebSocket API, the `ha` CLI and HA's MCP tools. Use for any task that reads or modifies Home Assistant, checks its config or logs, reloads integrations, controls entities or restarts Core.
---

# Home Assistant

You run inside the Paseo add-on on the user's Home Assistant (HA) machine. Everything you
change under `/homeassistant` affects the **live** home. Work carefully, in small verified
steps, and follow the workflow below for every change.

## Where things are

| Path | Access | Contents |
|---|---|---|
| `/homeassistant` | rw | HA config: `configuration.yaml`, `automations.yaml`, `scripts.yaml`, `scenes.yaml`, `packages/`, `blueprints/`, `custom_components/`, `secrets.yaml`, `.storage/` |
| `/addon_configs/<slug>/` | rw | Configs of other add-ons (e.g. Zigbee2MQTT, Mosquitto, ESPHome) |
| `/share` | rw | Files shared between add-ons |
| `/ssl`, `/media`, `/backup` | ro | Certificates, media, backups |
| `/config` | rw | Paseo's own agent config (user skills, shared `AGENTS.md`) |

Details: [reference/config-layout.md](reference/config-layout.md).

## Access that is already set up

- `$SUPERVISOR_TOKEN`: bearer token for the Core API (via the Supervisor proxy) and the Supervisor API.
- `$HASS_SERVER` = `http://supervisor/core`, `$HASS_TOKEN` = same token (for tools that use these names).
- Core REST API: `http://supervisor/core/api/...`; WebSocket API: `ws://supervisor/core/websocket`.
- `ha` CLI (Supervisor): `ha core check|logs|restart`, `ha addons ...`, `ha backups new`.
- HA MCP tools (`homeassistant` server) may be available in Pi, Claude Code, Codex and OpenCode when the
  user enabled HA's "Model Context Protocol Server" integration. They control **exposed entities only**
  and cannot edit config. Prefer them for simple entity control; use the API for everything else.

Recipes: [reference/api.md](reference/api.md) (REST + WebSocket), [reference/ha-cli.md](reference/ha-cli.md).

## Required workflow for every change

1. **Understand first.** Read the relevant files and how they are included (`!include`, `packages:`).
   Look up real entity IDs from the API (`/api/states`) instead of guessing them.
2. **Snapshot.**
   - If `/homeassistant/.git` exists: `git -C /homeassistant status` then commit pending changes
     (`git -C /homeassistant add -A && git -C /homeassistant commit -m "Before: <task>"`).
     Never commit `secrets.yaml` or `.storage/` (check `.gitignore`).
   - Otherwise, for anything bigger than a small edit, suggest a backup to the user:
     `ha backups new --name "before <task>"` (takes a while; ask first).
3. **Edit** the narrowest file. Keep the existing style, comments and indentation (2 spaces).
   Automations in `automations.yaml` need a unique `id:`; keep the list format.
   Use `!secret <name>` for any credential, never a literal value.
4. **Check the configuration.** It must report `valid` before you go on:
   ```sh
   curl -s -X POST -H "Authorization: Bearer $SUPERVISOR_TOKEN" \
     http://supervisor/core/api/config/core/check_config
   ```
   (or `ha core check`). On errors, fix them and check again.
5. **Apply with the narrowest reload**, e.g. `automation.reload` for `automations.yaml`
   (table in [reference/api.md](reference/api.md#reload-per-domain)). Only when the change needs it
   (new integration in YAML, `custom_components`, `http:`, `recorder:`, ...) suggest `ha core restart`
   and **ask the user before restarting**.
6. **Verify.** Check that the entity/automation exists with the expected state/attributes
   (`/api/states/<entity_id>`) and read recent errors with `ha core logs | tail -n 100`
   (or `GET /api/error_log`). For automations, check `last_triggered` or trigger it only if harmless.
7. **Record or roll back.**
   - Success with git: commit with a descriptive message (`git commit -m "Add sunset porch light automation"`).
   - Failure: restore the previous state (`git -C /homeassistant revert --no-edit HEAD` or
     `git checkout -- <file>`, or undo your edit), run the check again and reload. Tell the user what happened.

## Hard rules

- **Secrets:** never print, cat, grep values from, copy or send `secrets.yaml`, tokens or passwords
  (including `$SUPERVISOR_TOKEN`). To see which secrets exist, list key names only:
  `sed -n 's/^\([A-Za-z0-9_]*\):.*/\1/p' /homeassistant/secrets.yaml`. Reference them with `!secret`.
- **`.storage/`:** never edit files in `/homeassistant/.storage/` while Core runs; Core overwrites them
  and may corrupt state. Change UI-managed things (dashboards, helpers, areas, entity names) through
  the WebSocket API instead. Reading is fine.
- **Database:** never delete, move or modify `home-assistant_v2.db*`.
- **Ask first** before `ha core restart`/`stop`, any `ha host`/`ha os` command, restoring a backup, or
  changing, restarting, updating, installing or removing other add-ons (including editing their config).
- Do not call services that act on the physical world (locks, alarms, covers, heating, notifications to
  people) just to test, unless the user asked for it.
- Do not install `custom_components` or HACS content without the user's explicit request.

## Common tasks

- New automation: append to `automations.yaml` (or a file in `packages/`), check, `automation.reload`,
  then verify `automation.<id>` in `/api/states`. See [reference/recipes.md](reference/recipes.md).
- Template sensor/helper in YAML: edit, check, `template.reload` / `input_*.reload`.
- Dashboard (storage mode): use WebSocket `lovelace/config` / `lovelace/config/save`; never edit
  `.storage/lovelace*` directly.
- Rename an entity or assign an area: WebSocket `config/entity_registry/update`.
- Another add-on's config: edit `/addon_configs/<slug>/...`, then ask before `ha addons restart <slug>`.
- Debugging: `ha core logs`, `GET /api/error_log`, `/api/history/period`, `/api/logbook`.

Files in this skill

  • SKILL.md6 KB
  • reference/api.md5.9 KB
  • reference/config-layout.md3.2 KB
  • reference/ha-cli.md1.9 KB
  • reference/recipes.md3.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

View all in ai-agents →

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.