Home Assistant Manager Skill
Turns Claude into a Home Assistant expert: safely edit, deploy, and verify YAML configuration and build Lovelace dashboards — without unnecessary restarts.
The skill explicitly forbids reading/writing .env and secrets.yaml, mandates ha core check before restarts, and creates ha backups snapshots before risky changes (rollback path exists) — all positives. But the core workflow assumes root SSH into a production instance with git pull/restart, large external effects without per-action user confirmation; advising to record host credentials in CLAUDE.md carries mild credential-persistence risk. Deducted for over-broad root privileges and missing mandatory confirmation gates for destructive restarts.
Internally consistent with strong failure-feedback narratives (hass-cli env-var detection, trace debugging, pitfalls tables, fix-reload-verify loop). However, static review cannot reproduce key paths; no test suite or CI evidence exists. Deducted for absence of executed reproduction; capped at 9 (below static ceiling 10).
Scenarios are clear (HA config/automation/dashboard management), tool-selection logic (SSH/hass-cli/MCP), prerequisites and boundaries are fairly well declared; the description supports accurate semantic triggering. Deducted for undeclared boundaries on non-SSH HA deployment types and no Chinese-language support; core function targets self-hosted HA so mainland reachability is largely fine, though installation and context7 depend on GitHub/overseas services.
Good layered structure (SKILL.md plus on-demand reference docs, progressive disclosure), clear MIT license, multiple install paths and contribution guidelines. Deducted for no versioning, no changelog, no explicit maintenance/update commitment (publisher unverified), and some implicit assumptions (root host, git-connected config).
The workflow (validate→deploy→reload-vs-restart→verify) is concrete and actionable, with clear marginal value (reload/restart judgment, trace debugging, storage-cache gotchas). Deducted because README demos are video links unverifiable in static review; representative outputs not execution-verified; capped at 6 (static ceiling 7).
Only primary documentation plus screenshots/video demos; no tests, no CI, no independently reproducible execution evidence; videos are not auditable. Facts and inference are reasonably separated (commands and pitfall tables can be checked against HA docs), but coverage is thin — deducted to 3.
- The skill assumes root SSH into a live Home Assistant instance and may restart it; confirm snapshot/rollback capability and keep human confirmation for restart-type actions.
- Following the advice to record SSH host details in project CLAUDE.md creates credential/topology persistence — control repository access accordingly.
- Static review executed nothing; video demos in the README are independently unverified — validate behavior in a test environment first.
- Installation depends on GitHub plus optional context7/overseas MCP services, which may be restricted from mainland-China networks.
- The skill targets Home Assistant OS (ha CLI / SSH add-on); containerized or SSH-less deployments are outside its declared support.
What does this skill do, and when should you use it?
A Claude Code skill for operating a remote Home Assistant instance precisely over SSH, hass-cli, or MCP. It encodes one canonical deploy pipeline: edit YAML locally, validate with ha core check, ship via git or rapid scp, choose reload vs restart by change type, and prove the change worked from logs, traces, and entity state. It also covers modern (2024.10+) automation syntax, template type-safety rules, and Lovelace dashboard development. The author presents it as distilled from real-world tablet dashboard and automation workflows.
Reads and edits YAML under /config (automations, blueprints, scripts, scenes, templates, MQTT), touching only .yaml/.yml/.md and never reading .env or secrets.yaml. Runs ssh "ha core check" for validation, pushes to git then pulls on the instance to go live, and applies domain reloads or a core restart based on a change-type table. It manually triggers automation.trigger for instant feedback, greps ha core logs for known success/error markers, and confirms outcomes via hass-cli state get. It generates modern-syntax automation YAML (triggers:/conditions:/actions:, stable id:, alias), writes type-safe Jinja2 templates with int() coercion and defaults, and deploys .storage/lovelace.* dashboard JSON. It snapshots with ha backups before risky changes.
- Self-hosters with SSH-enabled Home Assistant who want to create and debug automations through natural language
- Tablet wall-panel builders who need touch-friendly, screen-size-optimized (7/11/13-inch) Lovelace layouts
- Users hitting template TypeErrors (e.g. comparing str to int) who need the error located and fixed
- DevOps-minded users keeping HA config in git who want scp for fast loops and commits once stable
- Users wary of downtime who want validate-before-restart discipline and pre-change snapshots
What are this skill's strengths and limitations?
- Encodes real operational judgment: a reload-vs-restart table, mandatory ha core check before restart, snapshots before risky changes
- Explicit verification loop: manual automation triggers, log success/error markers, entity-state confirmation — never assuming success
- Defaults to modern 2024.10+ automation syntax, avoiding the deprecated patterns LLMs tend to emit
- git + scp hybrid pipeline balances version control with fast iteration
- Ships on-demand reference docs (automations.md, dashboards.md) and production-tested dashboard examples
- Heavy environment assumptions: SSH access, a git-connected /config, local hass-cli, and pre-set HASS_TOKEN env vars are all required
- No evidence of an automated test suite or CI in the README; quality rests on the author's real-world usage
- hass-cli silently falls back to localhost when env vars are unset — the skill can only warn, not fix this
- Direct file edits to dashboards may not appear until a restart due to HA's lovelace cache, and some dashboard breakage (broken cards, mis-sorted popups) is only catchable by visual browser checks
- Editing .storage/ JSON carries inherent risk, and the preferred MCP integration (official mcp_server needs HA ≥2025.2) is optional, not guaranteed
How do you install this skill?
Prerequisites: Claude Code installed; HA instance with SSH access and a git repo connected to /config; local hass-cli (pipx install homeassistant-cli) with SSH keys and HASS_SERVER/HASS_TOKEN set. Recommended (plugin marketplace, two commands): /plugin marketplace add komal-SkyNET/claude-skill-homeassistant then /plugin install home-assistant-manager@claude-skill-homeassistant. Alternative 1: in your HA config repo, mkdir -p .claude/skills, clone the repo, and symlink skills/home-assistant-manager. Alternative 2: curl -L https://github.com/komal-SkyNET/claude-skill-homeassistant/archive/main.tar.gz | tar xz into .claude/skills/home-assistant-manager. Optional: add Context7 MCP for official docs.
How do you use this skill?
Start Claude Code in your HA config repo; the skill loads automatically. Example prompts: "Create an automation that sends a notification when the front door is left open for more than 5 minutes" or "My automation has a TypeError about comparing str and int". Claude follows the skill's flow: edit YAML, deploy via scp or git, reload, trigger manually, check logs. On first use, confirm the real SSH user/host ([email protected] in examples is a placeholder) and ideally record it in the project CLAUDE.md.
How does this skill compare with similar options?
The README explicitly contrasts this skill with HA MCP servers (the official mcp_server integration or community ha-mcp): MCP servers give Claude live tools — reading state, calling services, controlling devices — but don't teach Claude how to work on your config. Without the skill, an MCP-equipped Claude might still restart HA on unvalidated config or write deprecated YAML. The skill encodes the procedure and judgment, and prefers MCP tools for live state when available; they compose rather than compete.