/ha-setup-house
Guided build-out of a Home Assistant house — create areas, assign entities and devices, provision helpers, and scaffold starter automations. Thin orchestration of existing CLI commands; all structural writes are gated by ha_safety_mode.
Claude Code
$ npx -y skills add gtapps/hermitd --skill ha-setup-house --agent claude-code
Codex
$ npx skills add gtapps/hermitd --skill ha-setup-house -a codex -y
Cursor
$ npx skills add gtapps/hermitd --skill ha-setup-house -a cursor -y
Gemini CLI
$ npx skills add gtapps/hermitd --skill ha-setup-house -a gemini-cli -y
GitHub Copilot
$ npx skills add gtapps/hermitd --skill ha-setup-house -a github-copilot -y
OpenCode
$ npx skills add gtapps/hermitd --skill ha-setup-house -a opencode -y
Windsurf
$ npx skills add gtapps/hermitd --skill ha-setup-house -a windsurf -y
SKILL.md
ha-setup-house.SKILL.mdname: ha-setup-house
description: Guided build-out of a Home Assistant house — create areas, assign entities and devices, provision helpers, and scaffold starter automations. Thin orchestration of existing CLI commands; all structural writes are gated by ha_safety_mode.
allowed-tools:
- Bash
- Read
- Write
- Edit
- Glob
- Grep
- mcp__homeassistant__GetLiveContext
- mcp__homeassistant__homeassistant__GetLiveContext
- mcp__homeassistant__GetDateTime
- mcp__homeassistant__llm__GetDateTime
Set Up Your House
Guided build-out of your Home Assistant house structure. Each step runs existing `ha-agent-lab` commands; no new subsystem. Every write is gated by `ha_safety_mode` (strict = proposal, ask = native approval).
Steps
1. Take inventory
Run all four in parallel and present a summary:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-areas
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-entities --registry
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-devices
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-helpersReport:
- Number of areas, entities, devices, and helpers found
- Entities with no area assigned (unplaced)
- Devices with no area assigned (unplaced)
- Whether a context snapshot exists at `.hermit/raw/snapshot-ha-normalized-latest.json`
2. Create areas
Ask: "Which rooms or zones would you like to create? (e.g. Living Room, Kitchen, Bedroom 1)"
For each area the operator names: 1. Check the `list-areas` output — skip if the area already exists (case-insensitive match on name). 2. Preview the target, then run: `${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha create-area "<name>"` 3. Handle the result:
- `{"data",...}`: created; confirm to operator.
- `{"status":"blocked","reason":"strict_mode"}`: `ha_safety_mode` is `strict`; explain and create a proposal via `/hermitd:proposal-create`.
- `{"error":...}`: surface the error to the operator.
After creating all areas, re-run `ha list-areas` and store the updated area map.
3. Assign unplaced entities
From the unplaced entity list (step 1), ask the operator which entities to assign and to which area.
For each assignment:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha set-entity-area <entity_id> --area <area_id>Use the `area_id` from the `list-areas` output, not the display name.
Handle success and policy refusal the same as step 2.
4. Assign unplaced devices
From the unplaced device list (step 1), follow the same pattern:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha set-device-area <device_id> --area <area_id>5. Provision helpers
Ask: "Do you want to add any input helpers (toggles, counters, schedules, etc.)?"
For each helper: 1. Run `ha list-helpers --type <type>` to check whether a similar helper already exists. 2. Compose the JSON payload (minimum fields by type — same conventions as `ha-build-automation` step 3). 3. Run: `${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha create-helper <type> '<json>'`
Supported types: `input_boolean`, `input_number`, `input_text`, `input_select`, `input_datetime`, `timer`, `counter`, `schedule`.
6. Scaffold starter automations (optional)
Ask: "Would you like to create any starter automations for this house?"
For each automation:
- Delegate to `/hermitd-homeassistant:ha-build-automation` — it handles YAML drafting, helper provisioning, simulation, and apply.
7. Refresh context
Run a context refresh so the entity snapshot reflects all changes:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha refresh-context8. Summary
Print a compact report:
ha-setup-house complete
Areas: N created, M already existed
Entities: N assigned to areas
Devices: N assigned to areas
Helpers: N created
Automations: N scaffolded (via ha-build-automation)
Context: refreshed
Ready to explore? Try /hermitd-homeassistant:ha-house-status
Read more
name: ha-setup-house description: Guided build-out of a Home Assistant house — create areas, assign entities and devices, provision helpers, and scaffold starter automations. Thin orchestration of existing CLI commands; all structural writes are gated by ha_safety_mode. allowed-tools: - Bash - Read - Write - Edit - Glob - Grep - mcp__homeassistant__GetLiveContext - mcp__homeassistant__homeassistant__GetLiveContext - mcp__homeassistant__GetDateTime - mcp__homeassistant__llm__GetDateTime
Set Up Your House
Guided build-out of your Home Assistant house structure. Each step runs existing `ha-agent-lab` commands; no new subsystem. Every write is gated by `ha_safety_mode` (strict = proposal, ask = native approval).
Steps
1. Take inventory
Run all four in parallel and present a summary:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-areas
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-entities --registry
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-devices
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha list-helpersReport:
- Number of areas, entities, devices, and helpers found
- Entities with no area assigned (unplaced)
- Devices with no area assigned (unplaced)
- Whether a context snapshot exists at `.hermit/raw/snapshot-ha-normalized-latest.json`
2. Create areas
Ask: "Which rooms or zones would you like to create? (e.g. Living Room, Kitchen, Bedroom 1)"
For each area the operator names: 1. Check the `list-areas` output — skip if the area already exists (case-insensitive match on name). 2. Preview the target, then run: `${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha create-area "<name>"` 3. Handle the result:
- `{"data",...}`: created; confirm to operator.
- `{"status":"blocked","reason":"strict_mode"}`: `ha_safety_mode` is `strict`; explain and create a proposal via `/hermitd:proposal-create`.
- `{"error":...}`: surface the error to the operator.
After creating all areas, re-run `ha list-areas` and store the updated area map.
3. Assign unplaced entities
From the unplaced entity list (step 1), ask the operator which entities to assign and to which area.
For each assignment:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha set-entity-area <entity_id> --area <area_id>Use the `area_id` from the `list-areas` output, not the display name.
Handle success and policy refusal the same as step 2.
4. Assign unplaced devices
From the unplaced device list (step 1), follow the same pattern:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha set-device-area <device_id> --area <area_id>5. Provision helpers
Ask: "Do you want to add any input helpers (toggles, counters, schedules, etc.)?"
For each helper: 1. Run `ha list-helpers --type <type>` to check whether a similar helper already exists. 2. Compose the JSON payload (minimum fields by type — same conventions as `ha-build-automation` step 3). 3. Run: `${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha create-helper <type> '<json>'`
Supported types: `input_boolean`, `input_number`, `input_text`, `input_select`, `input_datetime`, `timer`, `counter`, `schedule`.
6. Scaffold starter automations (optional)
Ask: "Would you like to create any starter automations for this house?"
For each automation:
- Delegate to `/hermitd-homeassistant:ha-build-automation` — it handles YAML drafting, helper provisioning, simulation, and apply.
7. Refresh context
Run a context refresh so the entity snapshot reflects all changes:
${CLAUDE_PLUGIN_ROOT}/bin/ha-agent-lab ha refresh-context8. Summary
Print a compact report:
ha-setup-house complete Areas: N created, M already existed Entities: N assigned to areas Devices: N assigned to areas Helpers: N created Automations: N scaffolded (via ha-build-automation) Context: refreshed Ready to explore? Try /hermitd-homeassistant:ha-house-status
Run an always-on Claude Code agent on your own machine, for you or your team. Start and orchestrate sessions from chat in any project it can reach. Take over the same session in the Claude app or the CLI.
Other skills on hermitd.
More skills from other plugins.
browser-use
Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…
agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling…
Questions about ha-setup-house.
- Which coding agents can use ha-setup-house?
- ha-setup-house installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.

