# Homectl

> Materializes overlay-owned Home Assistant templates and vendors overlay-owned pinned components through a public, host-neutral CLI. Use for template coverage, materialization, or reviewed component vendoring. Real devices, automations, entity IDs, component selections, and output stay in the active private overlay.

- Skill: `larsboes/homectl` (Agent Skill, multi-file: 5 files)
- Install (CLI): `npx skillmds@latest add larsboes/homectl`
- Raw SKILL.md: https://api.skillmd.com/api/skills/larsboes/homectl/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: larsboes (https://skillmd.com/u/larsboes)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/larsboes/homectl

---


# homectl

Operate the public materialization mechanism over a private Home Assistant definition. Axon owns
the parser, validation, and vendoring behavior. The selected overlay owns the templates, variable
map, component lockfile, helpers, and generated output.

## Commands

```sh
scripts/homectl doctor
scripts/homectl materialize
scripts/homectl components [--only NAME] [--dry-run]
```

Defaults resolve from `AXON_OVERLAY_ROOT`, `AXON_HOME_ROOT`, or the overlay declared by
`axon.local.toml`:

- capability input: `<overlay>/capabilities/home-assistant`
- variables: `<overlay>/config/home-assistant.vars`
- generated output: `<overlay>/build/home-assistant`
- component destination: `<overlay>/config/home-assistant`

Every path remains overridable for isolated tests.

## Boundary

- Never point generated output into public Axon.
- Never place a real entity ID, hostname, component selection, or device name in this Pack.
- Treat the set of templates and components as a private inventory even when their contents use
  placeholders and public Git references.
- Review component diffs before replacement; runtime fetching is not allowed.

Read `references/templating.md` for the token contract and
`references/automation-doctrine.md` for reusable reliability rules.

