Skip to content

Make Assist aware of what the maintainer is working on #157

@nielsrowinbik

Description

@nielsrowinbik

Problem statement

Even when a Home maintainer uses Assist for help, they have to explain their situation from scratch. What page are they on? What automation are they editing? What integration are they configuring? Assist has no idea. The result is generic answers that may not apply, and a back-and-forth between the user and the assistant that could have been avoided entirely if the assistent knew what the user was looking at.

Context awareness is a core ingredient in the AI management vision for Home Assistant (see AI in Home Assistant vision document, TODO: Add link). Without it, the assistant is a search box. With it, it becomes a genuine collaborator that understands what the maintainer is doing and can respond accordingly.

Community signals

There are no direct feature requests for context-aware Assist. This is not surprising: it is hard to ask for a capability you have never experienced. There are, however, proxy signals.

The most telling evidence is how users are currently getting context-aware help with HA: they copy-paste their automation YAML, dashboard config, or error logs into an external tool like Claude or ChatGPT, manually explain what they are working on, and then apply the response back in HA. The "AI assistance is a home assistant coding game changer" forum thread (June 2025) describes exactly this workflow, and it resonated widely. The ha-mcp project (2,600+ GitHub stars) goes even further, providing an external AI with structured access to a user's entire HA instance precisely because that context makes the AI dramatically more useful. These workarounds are a clear signal that context is the missing ingredient: users are building it themselves outside of HA.

Scope & Boundaries

In scope

  • A context-passing architecture: the Assist dialog receives structured context from the UI when it is opened, including the current page, the entity or automation being viewed or edited, and relevant state
  • Using that context in the assistant's responses, so it can give relevant, specific help without the maintainer having to re-explain their situation
  • Defining the context schema in a way that is extensible, so new context types can be added as the assistant grows

Not in scope

  • Any authoring or editing actions based on context
  • Proactive suggestions or notifications triggered by context (the assistant is still invoked by the user)
  • Changes to the Assist dialog surface or layout

Foreseen solution

When the maintainer opens Assist, the UI passes a structured context payload to the assistant: current page, the object being viewed or edited, and relevant metadata. The assistant uses this context to shape its response without requiring the maintainer to re-explain. For example, opening Assist while editing an automation means the assistant already knows which automation, what triggers and actions it contains, and where in the editor the maintainer is.

A demo of what this might look like plays in the video below. Notice how when opening the Assist dialog, the user is presented with prompt starters relevant to the fact that they are looking at an automation. Also note that the video contains editing capabilities that will not be added in this opportunity, but are definitely part of the larger vision.

CleanShot.2026-05-06.at.12.40.53.mp4

Risks & open questions

  • What context is enough: Too little context and responses are still generic. Too much and privacy concerns grow. Defining what to include requires care.
  • Privacy: Passing home configuration context to an AI back-end is a meaningful decision. The context schema, what is sent and to whom, must be communicated clearly to users.
  • Assist pipeline interaction: The existing control pipeline and the management assistant are conceptually distinct. Context passing should not conflate the two.

Appetite

Medium — 1 cycle. The architecture work is the main investment. Individual context types (page, automation, dashboard) can be added incrementally.

Execution issues

No response

Decision log

Date Decision Outcome

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

Status

Awaiting approval

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions