From ha-nova
Use when working with Home Assistant's voice assistant — testing what Assist understands, inspecting or editing Assist pipelines, managing which entities are exposed to voice, and listing TTS/STT/wake-word engines — through HA NOVA Relay.
How this skill is triggered — by the user, by Claude, or both
Slash command
/ha-nova:assistThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Home Assistant's built-in voice assistant (Assist):
Home Assistant's built-in voice assistant (Assist):
Not in scope: speaking through a speaker (ha-nova:media for TTS announcements), microphone/satellite hardware setup, or the third-party assistants (Alexa/Google) — those are configured outside Home Assistant.
Verify relay CLI: ha-nova relay health
If this fails: ha-nova setup
ha-nova relay ws --data-file <payload-file> for WS commandsha-nova relay core --method POST --path /api/conversation/process --body-file <payload-file> to test an utterance--out <result-file> for large listingsPOST /api/conversation/process with {"text":"turn on the kitchen light","language":"en"} (add "agent_id" to target a specific agent). The response says what Assist understood and what it did.
"conversation_id" continues a previous exchange; omit it for a fresh one.assist_pipeline/pipeline/list shows every pipeline plus preferred_pipeline. Each carries stt_engine, conversation_engine, tts_engine, and language settings.
assist_pipeline/pipeline/set_preferred with pipeline_idassist_pipeline/pipeline/update — read the pipeline first, then send ALL its settings fields with your change, addressed by pipeline_id (the list's id value). Never send it as id — that slot is the WS request id. A partial payload drops settings.assist_pipeline/pipeline/delete — typed confirmation code; a pipeline in use by a satellite breaks ithomeassistant/expose_entity/list; expose or hide with WS homeassistant/expose_entity (assistants: ["conversation"], entity_ids, should_expose). Aliases live in the entity registry (ha-nova:organize owns those).
lock, alarm_control_panel, or a cover with a garage/gate/door device_class means anyone within earshot can actuate physical access by voice — flag these entities explicitly as high-consequence before confirming.tts/engine/list, stt/engine/list, conversation/agent/list, wake_word/info. Read-only inventories; use them to explain what a pipeline can be built from.expose_entity/list — never report success from the command response alone. After a pipeline or exposure change made to FIX an utterance, offer to re-run that exact utterance as the proof (with the standing warning that a test utterance executes what it understands).Full relay/upstream error taxonomy: skills/ha-nova/relay-api.md -> Error Handling. Assist specifics:
assist_pipeline/run is NOT usable here: it is a streaming subscription (audio), and the relay is request/response. Testing an utterance goes through /api/conversation/process instead.Apply skills/ha-nova/output-rules.md to all user-facing output. Write previews, delete confirmations, and results render as the Cards defined there.
Render the Report shape (output-rules.md). For an utterance test: the exact response text Assist gave, what it did (or did not) match, and which entities it touched. For pipelines: name, engines, language, and which one is preferred. Never paraphrase Assist's answer into something friendlier than it was.
Preview before write: nothing is saved until the user confirms the shown preview.
Confirmation binds to the displayed preview and expires on any change to target, payload, endpoint, or scope (context skill → Active Preview Confirmation).
Pre-preview phrases ("do it", "go ahead", "implement the plan") authorize drafting and preview only — never the write itself.
Delete and destructive operations require the typed confirmation code confirm:<token> verbatim; "yes" or any natural-language reply is invalid.
Never guess entity, service, or config IDs — resolve them or ask.
Home Assistant is reached exclusively through ha-nova relay.
For any HA write this skill does not cover, STOP and invoke ha-nova:fallback first — never probe unfamiliar write endpoints.
A test utterance is a live command. conversation/process executes what it understands. Anything that could change state gets a preview and confirmation, exactly like a service call.
Exposing entities to voice grants voice control over them — show the full list before changing exposure.
Pipeline updates resend every settings field: read first, or you silently drop settings.
No change here has a revert: restore exposure by re-toggling, restore a pipeline by resending its prior fields. A deleted pipeline recreates with a new pipeline_id — satellites pointing at the old one must be re-pointed.
pipeline_id or agent_id values — list them first.npx claudepluginhub markusleben/ha-nova --plugin ha-novaConfigures Home Assistant Assist voice control with pipelines, custom intents, wake words, TTS/STT engines (Piper, Faster Whisper), and satellites. Use for local setups and natural voice commands.
Use when the user wants Home Assistant operations through HA NOVA (App + Relay) with local OS-backed auth.
Builds and manages Home Assistant configurations using the hab CLI, automating tasks like dashboard edits, automation creation, backups, and ESPHome operations.