Agent skill

Setup Customize

by dcb in dcb/homeassistant-claude-kit

Run after setup-infrastructure to map rooms, entities, and preferences to the dashboard and automation templates.

MITAuto-check: notes

Install Setup Customize

skills CLI
$ npx skills add dcb/homeassistant-claude-kit --skill setup-customize -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install dcb/homeassistant-claude-kit setup-customize --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/dcb/homeassistant-claude-kit.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/setup-customize .claude/skills/setup-customize && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
setup-customize
GitHub stars
123
Token cost
~4.2k tokens
SKILL.md length
1,290 words
Files
2 (incl. references)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Run after setup-infrastructure to map rooms, entities, and preferences to the dashboard and automation templates.

  • Works in 11 steps: Check Prerequisites → Discover Entity + Area + Floor Registries → Room Mapping (Phase 1) → …
  • Phrases: customize my home
  • SKILL.md covers Step 0: Check Prerequisites, Step 1: Discover Entity + Area…, Step 2: Room Mapping (Phase 1) and Step 3: Entity Specialization…, plus 8 more sections
  • Calls ssh, make and python3; needs HA_TOKEN

What it does

Setup Customize is an agent skill from dcb/homeassistant-claude-kit. Run after setup-infrastructure to map rooms, entities, and preferences to the dashboard and automation templates. Conversational and resumable. Trigger phrases: "customize my home", "set up rooms", "configure automations", "map my entities", "set up my dashboard", "finish setup", "resume setup".

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including reference files (for example `references/question-patterns.md`).

The repository describes itself as: AI-guided Home Assistant setup — automation templates, mobile-first React dashboard, and Claude Code skills for configuration management. The licence is MIT.

When your agent uses it

  • Phrases: customize my home
  • Configure automations
  • Map my entities
  • Set up my dashboard

Example prompts

  • “customize my home”
  • “set up rooms”
  • “configure automations”
  • “/setup-customize”

Requirements

  • Python 3

Workflow steps

11 steps, taken from the step headings in SKILL.md.

  1. Check Prerequisites
  2. Discover Entity + Area + Floor Registries
  3. Room Mapping (Phase 1)
  4. Entity Specialization (Phase 2)
  5. Domain Selection (Phase 3)
  6. Behavioral Interview (Phase 4)
  7. Notification Discovery (Phase 5)
  8. Helpers Merge
  9. Generate Configuration Files
  10. Build + Deploy
  11. Save Completion Checkpoint

What it can do on your machine

Read from SKILL.md and the folder at commit c0d05e2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • ssh
    • make
    • python3
    • npm
    • python
    • npx

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • github.com
    • hacs.xyz

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • HA_TOKEN

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Setup Customize loads about 4.2k tokens when it runs, and up to ~6.1k if it reads all its reference files. Until then it costs about 78 tokens; SKILL.md has 1,290 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~78
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~6.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:95
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH:=/config/}.env; ha-
  • NoteMentions a .env fileSKILL.md:96
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws raw con
  • NoteMentions a .env fileSKILL.md:109
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws raw con
  • NoteMentions a .env fileSKILL.md:110
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws raw con
  • NoteMentions a .env fileSKILL.md:123
    source .env
  • NoteMentions a .env fileSKILL.md:156
    source .env && set -a && source .env && set +a && python3 -c "
  • NoteMentions a .env fileSKILL.md:277
    set -a && source .env && set +a && python3 -c "
  • NoteMentions a .env fileSKILL.md:292
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH:=/config/}.env; ha-
  • NoteMentions a .env fileSKILL.md:407
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH:=/config/}.env;

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from dcb/homeassistant-claude-kit at commit c0d05e2, republished under its MIT licence (© dcb). 1,290 words, ~4,207 tokens.

Download SKILL.mdSave it as .claude/skills/setup-customize/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
setup-customize
description
Run after setup-infrastructure to map rooms, entities, and preferences to the dashboard and automation templates. Conversational and resumable. Trigger phrases: "customize my home", "set up rooms", "configure automations", "map my entities", "set up my dashboard", "finish setup", "resume setup".

Setup Customize

This skill maps your Home Assistant instance to the dashboard and automation templates through a guided interview. It is resumable — if the conversation ends mid-way, re-invoke this skill and it will pick up from the last checkpoint.

See references/question-patterns.md for detailed question wording and example answers for each domain.

Step 0: Check Prerequisites

Verify setup-state.json exists and infrastructure is complete:

python
import json, sys, os
if not os.path.exists('setup-state.json'):
    print('NOT_READY'); sys.exit(0)
with open('setup-state.json') as f:
    state = json.load(f)
schema = state.get('schema_version', 0)
if schema > 1:
    print('SCHEMA_WARNING')
phase = state.get('session', {}).get('current_phase', '')
infra = state.get('infrastructure', {}).get('steps_completed', [])
if 'infrastructure_complete' in phase or 'pull' in infra:
    answers = state.get('answers', {})
    if answers.get('rooms') or phase.startswith('customize:'):
        print('RESUME')
        print(f'PHASE:{phase}')
        print(f'ROOMS_DONE:{",".join(answers.get("rooms", {}).keys())}')
    else:
        print('FRESH')
else:
    print('NOT_READY')

Run via python3 -c "..." and check the output:

  • NOT_READY: Tell user to run setup-infrastructure first.
  • SCHEMA_WARNING: State file from newer version — proceed with caution.
  • RESUME: Load checkpoint. Tell user: "Welcome back! You were at [phase]. Rooms done: [list]. Continuing."
  • FRESH: Begin from Phase 1.
Checkpoint Writing Pattern

After EVERY user answer, update setup-state.json with granular progress:

python
import json
def save_checkpoint(phase, answers_update=None, files_written=None):
    with open('setup-state.json') as f:
        state = json.load(f)
    state['session']['current_phase'] = phase
    if answers_update:
        state.setdefault('answers', {}).update(answers_update)
    if files_written:
        state.setdefault('files_written', []).extend(files_written)
    with open('setup-state.json', 'w') as f:
        json.dump(state, f, indent=2)

Example calls:

  • save_checkpoint('customize:room_mapping', {'rooms': {'living_room': {'light': '...', 'motion': '...'}}})
  • save_checkpoint('customize:domain_selection', {'domains_selected': ['lighting', 'climate']})
  • save_checkpoint('customize:notifications', {'notify_targets': {'primary': 'notify.mobile_app_x'}})
  • save_checkpoint('customize:files', files_written=['config/automations/lighting.yaml'])

Step 1: Discover Entity + Area + Floor Registries

Primary method: Use registry data. Entity-to-room assignment should come from the device/entity registries (via area_id) whenever possible. This is the authoritative source.

Fallback: Name inference + user confirmation. If the registries have sparse area assignments (common in setups where the user hasn't organized areas in HA), you may infer room assignments from entity ID naming patterns (e.g., bedroom_motion → bedroom). However, when using name inference, you MUST:

  1. Clearly mark inferred assignments as "inferred (not in registry)"
  2. Ask the user to confirm ALL inferred assignments before proceeding
  3. Never present inferred data as verified fact
1a. Query Floor + Area Registries

Get the authoritative room and floor structure:

bash
source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH:=/config/}.env; ha-ws raw config/floor_registry/list" 2>/dev/null
source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws raw config/area_registry/list" 2>/dev/null

This gives you:

  • All floors with IDs and names
  • All areas with floor_id assignments
  • Do NOT ask the user about floors if this data is available.
1b. Query Device + Entity Registries

Get the authoritative entity-to-area mappings:

bash
source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws raw config/device_registry/list" 2>/dev/null
source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws raw config/entity_registry/list" 2>/dev/null

Entity-to-area resolution chain:

  1. Check entity_registry → if the entity has a direct area_id, use it
  2. Otherwise, find the entity's device_id → look up that device in device_registry → use the device's area_id
  3. If neither has an area_id, the entity is unassigned — note it but do NOT guess
1c. Query Entities by Domain

For each relevant domain, query the live entity list:

bash
source .env
for domain in light binary_sensor sensor climate media_player camera cover vacuum remote switch; do
  ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH}.env; ha-ws entity list $domain" 2>/dev/null
done
1d. Build Verified Room-Entity Map

Cross-reference the entity list with the device/entity registry area assignments to build a verified mapping. For each room, list:

  • Lights (prefer zone/group entities over individual bulbs)
  • Motion sensors (binary_sensor.* with device_class: motion or occupancy)
  • Temperature sensors
  • Climate entities (TRVs, AC units)
  • Media players
  • Cameras

Before presenting any mapping to the user: mark each assignment's source:

  • Registry: directly from device/entity registry area_id — present as fact
  • Inferred: from entity ID naming pattern — present with a ? mark, ask user to confirm
  • Unassigned: no area in registry and no clear naming pattern — ask the user
1e. Fallback: Local .storage Files

If SSH/ha-ws is unavailable, parse the local .storage/ files (pulled by make pull):

bash
source venv/bin/activate && python tools/entity_explorer.py --full 2>/dev/null | head -100

Or use the REST API as a last resort:

bash
source .env && set -a && source .env && set +a && python3 -c "
import urllib.request, json, os
url = os.environ['HA_URL'] + '/api/states'
req = urllib.request.Request(url, headers={'Authorization': 'Bearer ' + os.environ['HA_TOKEN']})
with urllib.request.urlopen(req) as r:
    states = json.load(r)
domains = {}
for s in states:
    d = s['entity_id'].split('.')[0]
    domains[d] = domains.get(d, 0) + 1
for d, c in sorted(domains.items()):
    print(f'{d}: {c} entities')
"

Summarize what was found: "Found X floors, Y areas, Z lights, W climate entities, ..."

Step 2: Room Mapping (Phase 1)

See references/question-patterns.md → Phase 1 for question wording.

Goal: Build a RoomConfig[] array for dashboard/src/lib/areas.ts.

  1. Present the verified room-entity map from Step 1d to the user. This should already include floor assignments (from the floor registry), entity assignments (from device/entity registries), and all detected sensors/lights/climate/media per room.
  2. Ask the user to confirm, correct, or skip each room. Common corrections:
    • Merging rooms (e.g., kitchen + storage → one zone)
    • Renaming rooms for the dashboard
    • Skipping rooms they don't want on the dashboard
  3. Only ask about floors if the floor registry returned no data. If floors are assigned in HA, use those values directly.
  4. For each confirmed room, verify entity assignments match what the user expects. If any entity was listed as "unassigned" in Step 1d, ask the user to assign it.
  5. Save progress to setup-state.json after each room confirmation.

Generate areas.ts once all rooms are confirmed:

typescript
// dashboard/src/lib/areas.ts — generated by setup-customize
export interface RoomConfig {
  id: string;
  name: string;
  floor: number;
  icon: string;
  light?: string;           // primary light entity
  motionSensor?: string;
  temperatureSensor?: string;
  mediaPlayer?: string;
  climate?: string;
}

export const ROOMS: RoomConfig[] = [
  // REPLACE: Add your rooms here (generated from interview)
  // { id: "living_room", name: "Living Room", floor: 0, icon: "sofa", light: "light.living_room" },
];

// Maps HA person entity → display name
export const USER_ROOM_MAP: Record<string, string> = {};

Step 3: Entity Specialization (Phase 2)

For each room, ask domain-specific questions:

Lights:

  • Is the main light a Hue zone/group or individual bulbs?
  • Any motion-triggered lights in this room? (entity ID)
  • Luminance sensor? (for light-level gating)

Climate:

  • Thermostat/TRV or AC unit?
  • TRV entity ID (for zone control)

Media:

  • TV / media player entity?
  • Remote entity? (for IR/HDMI control)

Save answers to setup-state.json as you go.

Step 4: Domain Selection (Phase 3)

Present automation domains as a checklist. Ask the user which apply to their setup:

Which automation domains do you want to set up?
□ Motion lights (auto on/off with motion sensors)
□ Activity modes (night mode, movie mode, work mode)
□ Climate scheduling (morning/night temperature changes)
□ Away mode (setback when nobody home)
□ Appliance tracking (washer/dishwasher state machine)
□ Health monitoring (integration watchdogs, battery alerts)
□ EV/Solar charging (if you have solar + EV)
□ AC solar heating (if you have solar + AC units)
□ None — I'll write my own automations

For each selected domain, note which automation template to use from docs/templates/config/automations/.

Step 5: Behavioral Interview (Phase 4)

Ask about preferences that drive automation behavior. See references/question-patterns.md → Phase 4 for full question bank.

Key questions:

  • What time do you typically wake up on weekdays? Weekends?
  • What time is bedtime on weekdays? Weekends?
  • Who lives in the home? (for presence tracking — no custody/schedule details needed)
  • Do you work from home? (drives work_mode auto-trigger)
  • What's your preferred daytime temperature? Night temperature?
  • Battery alert threshold? (default: 10%)
  • Any devices that should NOT be automated? (creates exceptions list)

Save all answers to setup-state.json.

Show full SKILL.md (518 more words)Show less

Step 6: Notification Discovery (Phase 5)

Discover available notification targets:

bash
set -a && source .env && set +a && python3 -c "
import urllib.request, json, os
url = os.environ['HA_URL'] + '/api/services'
req = urllib.request.Request(url, headers={'Authorization': 'Bearer ' + os.environ['HA_TOKEN']})
with urllib.request.urlopen(req) as r:
    services = json.load(r)
notify = [s for s in services if s.get('domain') == 'notify']
for n in notify:
    for svc in n.get('services', {}).keys():
        print(f'notify.{svc}')
" 2>/dev/null

Alternatively, use SSH + ha-api (more reliable):

bash
source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH:=/config/}.env; ha-api search notify"

Ask the user which targets to use for:

  • Primary notifications (most alerts)
  • Critical alerts (security, health)

Step 7: Helpers Merge

Read existing configuration.yaml and check if it already has input_* helpers:

bash
grep -l "input_boolean:\|input_select:\|input_number:" config/configuration.yaml 2>/dev/null && echo "has_helpers" || echo "no_helpers"

If existing helpers found: Show them and ask:

"Your configuration.yaml already has input helpers. I can: (A) Keep them where they are and add only missing ones from the templates (B) Consolidate all helpers into config/helpers.yaml and use !include helpers.yaml

Which do you prefer?"

Never silently move or overwrite existing helpers.

Step 8: Generate Configuration Files

Based on all interview answers, generate:

dashboard/src/lib/entities.ts
typescript
// dashboard/src/lib/entities.ts — generated by setup-customize
// Edit this file to update entity mappings. Re-run setup-customize to regenerate.

// ── Modes ──────────────────────────────────────────────────────────────────
export const NIGHT_MODE = "input_boolean.night_mode";
export const MOVIE_MODE = "input_boolean.movie_mode";
export const WORK_MODE = "input_boolean.work_mode";
export const AWAY_MODE = "input_boolean.away_mode";
export const CLIMATE_MODE = "input_select.your_climate_mode"; // # REPLACE: or remove

// ── People ─────────────────────────────────────────────────────────────────
// Add your person entity IDs here
export const PERSONS: string[] = [];

// ── Add your entities below ────────────────────────────────────────────────
// (Generated from interview answers — each room's entities added here)
Automation YAML files

For each selected domain, copy the template and substitute placeholder IDs:

  • your_room_motion_sensor → actual entity ID from interview
  • your_notify_target → chosen notification target
  • your_morning_work_day (input_datetime) → keep as-is (user sets value in HA UI)

Copy template files to config/automations/:

bash
# Example for lighting:
cp docs/templates/config/automations/lighting.yaml config/automations/lighting.yaml
# Then perform substitutions based on interview answers
docs/system-overview.md and docs/house-rules.md

Populate the template sections with interview answers. Leave blank sections with the original guidance comments for sections not covered.

Step 9: Build + Deploy

  1. Install dashboard dependencies (if not already installed):

    bash
    cd dashboard && npm install && cd ..
  2. Verify TypeScript compiles cleanly before deploying:

    bash
    cd dashboard && npx tsc -b --noEmit && cd ..

    If this fails, fix the errors before proceeding. Common issues:

    • Entity constants with empty string "" as EntityId need actual entity IDs or removal
    • Missing @types/* packages → run npm install first
  3. Run backup:

    bash
    make backup
  4. Push configuration:

    bash
    make push
  5. Deploy dashboard:

    bash
    make deploy-dashboard
  6. Verify by asking the user to open HA and confirm the dashboard panel appears. Provide the URL: http://[HA_URL]/custom-dashboard

Optional: Make the dashboard the default view

After the dashboard deploys successfully, ask the user:

"Would you like to make this dashboard your default view when opening Home Assistant? This requires installing the Custom Sidebar plugin via HACS. If you don't have HACS, you can skip this — your dashboard is still accessible from the sidebar."

If the user wants this:

  1. Verify HACS is installed:

    bash
    source .env && ssh "$SSH_USER@$HA_HOST" "source /etc/profile.d/claude-ha.sh; source ${HA_REMOTE_PATH:=/config/}.env; ha-api state sensor.hacs" 2>/dev/null

    If HACS is not installed, tell the user to install it first from hacs.xyz and skip this step.

  2. Tell the user to install Custom Sidebar via HACS:

    • Open HA → HACS → Frontend → search "Custom Sidebar" → Install
    • This cannot be done via CLI — HACS frontend installations require the UI
  3. Once confirmed installed, add the plugin to configuration.yaml under frontend:

    yaml
    frontend:
      extra_module_url:
        - /hacsfiles/custom-sidebar/custom-sidebar-plugin.js

    Merge with existing frontend: block — do not duplicate the key.

  4. Create config/custom-sidebar-config.yaml:

    yaml
    default_path: /custom-dashboard
  5. Push the config and tell the user to restart HA (this change requires a restart, not just a reload):

    bash
    make push

Step 10: Save Completion Checkpoint

bash
python3 -c "
import json, datetime
with open('setup-state.json') as f:
    state = json.load(f)
state['session']['current_step'] = 'customize_complete'
state['session']['steps_completed'].append('customize')
state['session']['completed_at'] = datetime.datetime.now().isoformat()
with open('setup-state.json', 'w') as f:
    json.dump(state, f, indent=2)
print('Setup complete. setup-state.json updated.')
"

Completion Message

"Setup complete! Your dashboard is deployed.

What's configured:

  • [N] rooms mapped
  • [N] automation domains active
  • Dashboard entities wired

Next steps:

  • Open HA companion app and navigate to your custom dashboard panel
  • Review docs/house-rules.md and fill in any sections that are still blank
  • If something's wrong, just tell me what to fix — all entity IDs are now in dashboard/src/lib/entities.ts and config/automations/*.yaml"

© dcb, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (references) in .claude/skills/setup-customize of dcb/homeassistant-claude-kit.

  • SKILL.md
  • references/question-patterns.md

Open the folder on GitHubat commit c0d05e2

Compare with similar skills

Setup Customize next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Setup Customize compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Setup Customize this skilldcb/homeassistant-claude-kit123—~4.2kAutomated safety check: NotesMIT
Customer Journey Mapphuryn/pm-skills27k—~816Automated safety check: PassMIT
Customer Journey Map Builderdeanpeters/Product-Manager-Skills7.2k1 repos~3.7kAutomated safety check: PassCustom licence
Customer Journey Mapping Workshopdeanpeters/Product-Manager-Skills7.2k1 repos~4.7kAutomated safety check: PassCustom licence
Customer Journey Mapmohitagw15856/pm-claude-skills1.4k—~3.4kAutomated safety check: PassMIT
Research Decision Roomnexu-io/open-design100k—~1.6kAutomated safety check: PassApache-2.0

Similar skills

  • Customer Journey Map

    phuryn/pm-skills

    Create an end-to-end customer journey map with stages, touchpoints, emotions, pain points, and opportunities.

    27k GitHub stars~816 tokensUpdated 23 days ago
    Product & Project ManagementAuto-check passed
  • Customer Journey Map Builder

    deanpeters/Product-Manager-Skills

    Builds a stage-by-stage customer journey map covering actions, touchpoints, emotions, KPIs, goals, and owning teams for one persona and scenario.

    7.2k GitHub starsUsed in 1 repo~3.7k tokens
    Product & Project ManagementAuto-check passed
  • Customer Journey Mapping Workshop

    deanpeters/Product-Manager-Skills

    Walks a product manager through a customer journey map one question at a time, from persona and scenario to pain points and opportunities.

    7.2k GitHub starsUsed in 1 repo~4.7k tokens
    Product & Project ManagementAuto-check passed
  • Customer Journey Map

    mohitagw15856/pm-claude-skills

    Build a customer journey map for a product, service, or experience.

    1.4k GitHub stars~3.4k tokensUpdated today
    Product & Project ManagementAuto-check passed
  • Research Decision Room

    nexu-io/open-design

    Turn messy user research notes, interviews, support tickets, surveys, and product context into an evidence-backed decision room: a single HTML artifact with an evidence ledger, theme map, confidence…

    100k GitHub stars~1.6k tokensUpdated today
    Frontend & DesignAuto-check passed
  • Asn Infrastructure Mapping

    uphiago/recon-skills

    Map organization IP infrastructure via ASN, CIDR, TLD expansion, and reverse DNS.

    1.3k GitHub stars~1.6k tokensUpdated 1 mo ago
    SecurityAuto-check passed

More from dcb/homeassistant-claude-kit

  • Entity Rename

    dcb/homeassistant-claude-kit

    Batch rename Home Assistant entities to follow a consistent naming convention.

    123 GitHub stars~1.9k tokensUpdated 5 days ago
    Auto-check: notes
  • Release

    dcb/homeassistant-claude-kit

    Cut a new homeassistant-claude-kit version. An agent skill from dcb/homeassistant-claude-kit.

    123 GitHub stars~3.1k tokensUpdated 5 days ago
    Auto-check passed
  • Upgrade

    dcb/homeassistant-claude-kit

    Pull a newer homeassistant-claude-kit version into this (diverged) install, applying only the changes still relevant here.

    123 GitHub stars~2.4k tokensUpdated 5 days ago
    Auto-check: notes

Questions about Setup Customize

What does Setup Customize do?

Run after setup-infrastructure to map rooms, entities, and preferences to the dashboard and automation templates. Setup Customize is an agent skill from dcb/homeassistant-claude-kit. Run after setup-infrastructure to map rooms, entities, and preferences to the dashboard and automation templates.

When should I use Setup Customize?

Setup Customize fits situations like: phrases: customize my home; configure automations; map my entities; set up my dashboard.

How do I install Setup Customize in Claude Code?

Run `npx skills add dcb/homeassistant-claude-kit --skill setup-customize -a claude-code`. Or copy the skill folder (.claude/skills/setup-customize in dcb/homeassistant-claude-kit) into .claude/skills/setup-customize in your project. Claude Code loads it when a task matches its description.

How do I install Setup Customize in Codex?

Run `npx skills add dcb/homeassistant-claude-kit --skill setup-customize -a codex`. Or copy the skill folder (.claude/skills/setup-customize in dcb/homeassistant-claude-kit) into .agents/skills/setup-customize in your project. Codex loads it when a task matches its description.

Can I use Setup Customize in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add dcb/homeassistant-claude-kit --skill setup-customize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/setup-customize, .gemini/skills/setup-customize, .github/skills/setup-customize and .opencode/skills/setup-customize in your project.

What does Setup Customize need to run?

Going by SKILL.md and its folder, Setup Customize needs the command-line tools its instructions call (ssh, make, python3, npm, python and npx) and credentials named HA_TOKEN. Our summary lists: Python 3.

Does Setup Customize access the network?

SKILL.md names 2 domains. As links in the text: github.com and hacs.xyz. This is read from the text; nothing was executed.

Is Setup Customize safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does Setup Customize use?

Setup Customize is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Setup Customize use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.9k tokens, read only when the agent opens those files.

What are the alternatives to Setup Customize?

Skills that share tags, products or a category with Setup Customize: Customer Journey Map (phuryn/pm-skills, 27k stars), Customer Journey Map Builder (deanpeters/Product-Manager-Skills, 7.2k stars), Customer Journey Mapping Workshop (deanpeters/Product-Manager-Skills, 7.2k stars) and Customer Journey Map (mohitagw15856/pm-claude-skills, 1.4k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Setup Customize?

dcb (a GitHub user) maintains it in dcb/homeassistant-claude-kit, which has 123 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 2, 2026.

Source: dcb/homeassistant-claude-kit on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.