Skip to content
Back to skills

Ha Onboard

ASecurity

Survey this Home Assistant instance once (version, location, entities by domain, integrations, areas, add-ons, config file layout) and record a concise orientation into /homeassistant/CLAUDE.md so future sessions start informed. Use on first contact with a new HA instance, or when the user says "get to know my setup" / "learn my Home Assistant".

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added October 20, 2026
ai-agentsgobashgitapi

Works with

  • cli
  • api

Security analysis

A100/100

Scanned October 20, 2026

npx -y skills add LayerTM/ClaudeInHA --skill ha-onboard --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Ha Onboard?

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

Security grade badge for Ha Onboard
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/layertm-ha-onboard/badge)](https://www.skillsdirectory.com/skills/layertm-ha-onboard)

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: ha-onboard
description: Survey this Home Assistant instance once (version, location, entities by domain, integrations, areas, add-ons, config file layout) and record a concise orientation into /homeassistant/CLAUDE.md so future sessions start informed. Use on first contact with a new HA instance, or when the user says "get to know my setup" / "learn my Home Assistant".
---

Read-only survey. Gather facts about this Home Assistant instance, then write a tight summary into `/homeassistant/CLAUDE.md` so future sessions skip discovery. Never restart or reload during onboarding — this only reads.

First check whether onboarding already happened; if so, refresh the section instead of duplicating it:

```bash
grep -q '^# This instance' /homeassistant/CLAUDE.md 2>/dev/null && echo "ALREADY ONBOARDED — read the existing section, refresh only if stale" || echo "NOT ONBOARDED — proceed"
```

## 1. Core facts (version + location)

```bash
ha core info
curl -sS -H "Authorization: Bearer $SUPERVISOR_TOKEN" http://supervisor/core/api/config \
  | jq '{version, location_name, time_zone, latitude, longitude, unit_system, config_dir, integrations: (.components | length)}'
```

## 2. Entities by domain

```bash
# Total entity count
curl -sS -H "Authorization: Bearer $SUPERVISOR_TOKEN" http://supervisor/core/api/states | jq 'length'

# Count per domain, most-populated first
curl -sS -H "Authorization: Bearer $SUPERVISOR_TOKEN" http://supervisor/core/api/states \
  | jq -r 'group_by(.entity_id | split(".")[0])
           | map({domain: (.[0].entity_id | split(".")[0]), count: length})
           | sort_by(-.count) | .[] | "\(.count)\t\(.domain)"'
```

## 3. Integrations (loaded components)

```bash
curl -sS -H "Authorization: Bearer $SUPERVISOR_TOKEN" http://supervisor/core/api/config \
  | jq -r '.components[]' | grep -v '\.' | sort
```

## 4. Areas (optional — needs the add-on's HA Token)

```bash
# Only if HA_TOKEN is set (hass-cli configured); otherwise skip
command -v hass-cli >/dev/null && hass-cli area list 2>/dev/null || echo "areas: hass-cli unavailable (HA Token not set) — skip"
```

## 5. Add-ons

```bash
ha addons | sed -n '1,40p'   # slug / name / state; note running add-ons
```

## 6. Config file layout

```bash
ls -la /homeassistant/*.yaml
grep -nE '!include(_dir_list|_dir_merge_list|_dir_named|_dir_merge_named)?\b' /homeassistant/configuration.yaml
```

Record which files `configuration.yaml` pulls in (e.g. `automations.yaml`, `scripts.yaml`, `scenes.yaml`, and any `!include_dir_*` folders) — future edits go to the included file, not the main one.

## 7. Persist the summary

Append (or refresh) a tight, factual `# This instance` section in `/homeassistant/CLAUDE.md`. Keep it short — counts and names, not raw dumps.

```bash
cat >> /homeassistant/CLAUDE.md <<'EOF'

# This instance
_Surveyed <YYYY-MM-DD> via ha-onboard._

- **HA version:** <version> · **Location:** <location_name>, <time_zone> · **Units:** <metric/imperial>
- **Entities:** <total> total. Top domains: <light: N, sensor: N, switch: N, binary_sensor: N, ...>
- **Integrations:** <count> loaded — notable: <hue, zwave_js, mqtt, mobile_app, ...>
- **Areas:** <area1, area2, ...>  (or "not exposed / hass-cli unavailable")
- **Add-ons (running):** <slug1, slug2, ...>
- **Config layout:** `configuration.yaml` !includes <automations.yaml, scripts.yaml, ...>. Edit the included file, never inline.
- **Notes:** <anything notable — split configs, packages/, custom_components present, etc.>
EOF
```

If the section already exists, edit it in place rather than appending a second copy.

## Rules

- Survey is read-only: no `ha core restart`/`reload`, no service calls, no config edits.
- Keep the written summary tight and factual — it is orientation, not a report. No history, no speculation.
- 2-space YAML if you ever touch config; never write to `/ssl`.
- Fill every `<...>` placeholder from real command output — do not guess counts or names.

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.

Comments

Loading comments…

Newsletter

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