VomeHome lets an AI coding agent read and control your Home Assistant. That is a genuinely sensitive capability, so this page documents how it is constrained, what we deliberately do not allow, and the limitations we currently accept. It is written to be useful to someone deciding whether to trust it — which means the known weaknesses are listed alongside the controls.
For the wider platform, see Security & Privacy. Findings and fixes below are dated so you can tell how current this is.
The agent never receives a Home Assistant credential. It gets a revocable VomeHome API token, and every Home Assistant read or write is brokered through our API where the policy is enforced server-side.
This is the property everything else rests on. A compromised or misbehaving agent cannot bypass the broker to reach Home Assistant directly, because it was never given anything that would let it — the Home Assistant token stays on our server and is never returned to a caller. A read-only token genuinely cannot change anything; that is not a client-side setting an agent could ignore.
ha:write; rewriting
automations, scripts and scenes requires the separate
ha:config; creating instances requires the
account-wide instances:write.
homeassistant.turn_on is checked
against the domain of every target entity, so it
cannot be used to reach a blocked domain indirectly.
The hosted endpoint serves many customers from one process, so isolation between sessions is a first-order concern.
NoNewPrivileges, a
private /tmp, a read-only view of home
directories, and a strict read-only system view.
Both issues below were found during the review of the hosted endpoint, before it had any real usage, and both are fixed. They are published because a security page that lists only successes is not evidence of much.
Severity: low — availability only. No impact on confidentiality or integrity; permissions and audit logging were unaffected throughout.
Request quotas were enforced per client network address. When the MCP server moved from running on each user's own machine to being hosted by us, every user's brokered calls began arriving from a single address and therefore shared one quota — so a single busy agent could have exhausted it for other users. Quotas for token-authenticated internal traffic are now keyed on the token itself, giving each user their own. Public traffic is still keyed per address, so the change cannot be used to escape a quota.
Severity: moderate — over-broad read access within a single account. No cross-account exposure: a token could only ever reach Home Assistant instances belonging to its own owner, and write protection was never affected.
Ticking instances when creating a key granted write access to those instances, but read access was a single account-wide permission. Every key could therefore read every Home Assistant on its owner's account — states, entities, automations and logs — including instances deliberately left unticked. Two things combined to cause it: reads were checked account-wide rather than per instance, and a key created with no explicit account-wide permissions fell back to a default that included the read wildcard. Reads are now granted and enforced per instance, and an ungranted instance is invisible to the key rather than readable. Reported by a customer who noticed an agent reading an instance they had not given it.
Severity: low — availability only, no exposure of data or bypass of access control.
Our deployment regenerates the web-server configuration from a template. Any route added by hand outside that template was therefore removed by the next deployment. This affected the new agent endpoint and, more importantly, revealed a pre-existing latent fault in the off-site backup upload route, which had the same weakness and would have been dropped by any deployment. Both routes are now produced by the template itself, so they cannot drift out again.
Current, accepted trade-offs. We would rather state them than have you discover them.
ha:write
lets an AI agent turn things on and off in your home. Grant the
narrowest scope that does the job.
If you find a security issue in the agent API or MCP endpoint, please email security@vome.io. We will investigate every legitimate report and ask for reasonable time to fix before public disclosure. The MCP server itself is open source and can be read at github.com/Vortitron/home-assistant-mcp.
Reviewed August 2026, covering the hosted MCP endpoint and the brokered agent API. Updated as controls change.