two¢ents

Set it up

There are two ways to install it. Pick one, then set up events, safety and the nightly job.

Before you start

Path A: the add-on

The official HA add-on runs Hermes on the HA box with the wiring done. Follow the Hermes docs (Messaging, then Home Assistant). Use it if HA is your only always-on machine. Filters, approvals and cron below work the same way.

Path B: a token on any machine

For a home server or an old laptop.

1 · Install Hermes (Linux / macOS / WSL2)

curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash

(Windows PowerShell: iex (irm https://hermes-agent.nousresearch.com/install.ps1).)

2 · Add the token

# ~/.hermes/.env
HASS_TOKEN=eyJ...your-long-lived-token...
HASS_URL=http://homeassistant.local:8123

This alone turns on the homeassistant toolset.

3 · Start a session and test it

hermes

Ask: “Use ha_list_entities and tell me how many entities you can see, grouped by domain.” If the tool is missing, check the .env path.

Events

Without events it only reacts when asked. Set the filters in ~/.hermes/config.yaml under platforms.homeassistant.extra (key structure as of v0.19.0), and start narrow:

4 · Event filters

# ~/.hermes/config.yaml (excerpt)
platforms:
  homeassistant:
    extra:
      watch_domains: [light, climate, cover, person, binary_sensor]
      ignore_entities: [binary_sensor.hallway_motion]   # your chattiest sensor
      cooldown_seconds: 60   # default is 30; higher = calmer and cheaper

Don’t start with watch_all: true (trap 2). lock and alarm_control_panel are left out on purpose.

5 · Run the gateway

hermes gateway

Walk past a sensor and watch it log an event, then install it as a service (see the CLI reference for your OS). Add Telegram or another platform per the messaging docs, and approve your own account with hermes pairing approve.

Safety

The learning loop

6 · The nightly pattern distiller

hermes cron create "Every night at 23:30, review today's Home Assistant \
events and conversations, distill any new recurring household patterns, \
message me the proposed memory changes on Telegram, and apply the ones I \
approve"

Check it with hermes cron list; manage it with hermes cron pause|run|edit. Prompt 3 has the full wording.

Disagree? Pin a note on it →