Homer Node
Homer Node is a program for a home computer, preferably one with a GPU. It checks the machine's hardware itself, downloads the engines and models it needs and serves them to the Homer server: speech recognition and synthesis, your own voice, language models, camera recording, surround sound. The speaker, the Alice skill and the chat don't need to know where the GPU is — they ask the Homer server, and it knows all the nodes.
The node keeps the connection to the Homer server itself; it needs no incoming ports or router forwarding. There can be several nodes; the app and the web list them in Settings → Nodes — owner only.
The main build is for Windows: a window, a tray icon and a mini player. Camera recording and surround sound work on Windows only.
Installing and pairing
- Download the Homer Node installer from the install link page (see Access and invites) or from whoever gave you Homer, and run it. The node and the tray then start by themselves when you sign in to Windows.
- The window opens with the wizard “Connect to a home — step 1 of 2”: what this computer has (GPU, RAM) and what the node will install on it. Models are downloaded from Hugging Face and checked by sha256; the first run takes up to 20 GB. “Next”.
- In the Homer app or web: Settings → Nodes → Add node — it shows the home address and the code.
- In the node window, fill in “Home address (Homer server)”, “Code” and “Name for this computer” → “Pair”.
The same from the console: homer-node pair --sidecar http://<server address>:8730 --code XXXX-XXXX-XXXX, then homer-node install — the node goes into autostart. As soon as a node signs in with the code, the code in the “Nodes” card is hidden.
Then the node downloads the models in the background and comes online; in “Nodes” they appear “once the node finishes downloading them and comes online”. Which models and voices are installed, and under what terms — Speech recognition and voice and Models and voices: licenses.
Home tab
The window opens on the home tab — the things you use every day. Everything else is in the “Settings” tab, and the node log is in the “Log” tab. The window language is “Language”: system, Russian or English; the tray and the node messages follow it.
Music — the full player: all home speakers and what plays on each, ⏯ and ⏹ for each (on a silent one, ▶ plays Liked), seek, volume, “Up next” with crossfade, “Liked” (all, shuffled, from the chosen track), “Search” (now, “Play next”, “Add to queue”). In the “Play on” list, the checkboxes to the left of the names: the selected speaker leads, checked ones play the same track with it in sync; “Everywhere” and “Only here” are in the header. If the node is in several homes, there's a home picker above the player, with “no speakers” next to empty ones. The computer works with the first owner's Liked. The same player opens with the ⌃ button in the tray mini player.
Reminders — what you asked the speaker for by voice (“remind me in 20 minutes…”): a list with a countdown, × on each, and “Cancel all” when there are several. To add one from the computer: “What to remind about”, “in, min” or “at” HH:MM (up to a day ahead), quick buttons 5, 15, 30 min and 1 h → “Add”. The home speakers say the reminder, and the home's phones get a push. Timers live in the speaker brain's memory: restarting it clears them. This needs the “Speaker” role on this computer — without it, the card says so.
Cameras — the latest frames of the home cameras, marked “offline” when a camera is down; click for a bigger view. Frames are fetched with the node's own pass, so the rules are the same as for an app without the “Remote access” permission: your own node sees them only from the home network, and a friend's home node doesn't get them at all. These frames are not written to the view log — it's the same ten-minute-old screen as on the plan. See Cameras.
Node — a short summary: connection (“connected to …”, “waiting for pairing with the home”, “no connection to the home”, “the node is not running”), “Models served”, download bars, the speaker (“listening” / “not running”), “Home backup” — when the last one was made, the version and “Update … is available — in the settings”. The “Settings” button opens the tab.
Roles
The “Roles” section in the settings — checkboxes for what this computer does for the home. “Save” restarts the node.
| Role | What it does | What it needs |
|---|---|---|
| Language models | homer-fast and homer-smart for the speaker and the assistant | An NVIDIA GPU is best; without one, models run on the CPU or Vulkan |
| Speech recognition | GigaAM v3 on the CPU | — |
| Piper voices | Fallback voices without a GPU | — |
| Custom voice | Qwen3-TTS: the owner's recorded voice and the “Homer” voice | An NVIDIA GPU with 8 GB or more. See Your own voice |
| Speaker | This computer's microphone and speakers | See Speaker on the computer |
| Camera recording | Frigate in WSL Docker, folder — in the Camera recording card | Windows with WSL. See below |
Roles are independent: if the language model engine fails to start, the node works without it, and the reason is shown in its state as the “language models” line and in the log. Camera recording keeps going.
“Backup node” — the home calls it only when the main nodes are silent or failed: a weak machine next to a strong one.
What the node serves right now is in “What it serves to the home”; a role that's off shows “role is off — the model is not running”. “What Homer thinks with” shows which model answers voice, tasks and offline requests; change it in the app, Settings → Homer brains, see Haiku and Opus.
A shared GPU
If a big model from another program (LM Studio, Ollama) runs on the same GPU, the node gives way: it runs its own language models on the CPU and doesn't start your own voice. Details — Speech recognition and voice.
Camera recording
The node runs Frigate in a WSL distribution's Docker and records the home's cameras 24/7 into a folder on this computer; it also finds events — people, motion, noise. One camera is about 3–4 GB a day. Windows with WSL only; with an NVIDIA GPU, Frigate detects objects on it.
The “Camera recording” card in the node settings:
- “Recordings folder” — e.g.
D:\homer-nvr. A network folder\\server\shareworks too: the node mounts it in WSL itself, with your Windows account's access. A local disk is more reliable: if the share drops, recording stops until it is back. Until the folder is mounted, Frigate doesn't start. - “WSL distribution with Docker” — leave it empty if the home core runs on this same computer (then its Homer distribution is used).
- “Save” turns on the “Camera recording” role and restarts the node; “Turn off” stops recording, the recordings stay in the folder.
The same from the console: homer-node nvr --media D:\homer-nvr; --off turns it off; with no options it shows the current setup.
The first time, the node downloads the Frigate image (about 10 GB) with resume after a drop: progress is shown in “Downloads” and in the camera recording line (“downloading the Frigate image: 1.2 of 4.8 GB”). What's been downloaded survives a node and WSL restart.
The card state is “On” or “Set up but not running” with the reason — the node isn't paired with the home, it has no “Camera recording” role, it didn't start or was started before this setting, “still starting: downloading …”, “failed to start: …”. A node that failed to start retries by itself in 10 minutes.
Which cameras to record and how long to keep them is chosen in the home: camera window → “⏺ Record 24/7”, the “Cameras” card → “Recording”. See Cameras.
Other settings sections
| Section | What's there |
|---|---|
| Downloads | What is downloading now and how much is left |
| Speakers on this computer | The Homer speaker: running or not, restarts, package version. See Speaker on the computer |
| PC surround sound | Voicemeeter: install, set up, send Windows sound to “Homer 3D Audio” and back. See PC surround sound |
| Home core | Home Assistant, MQTT, Zigbee2MQTT and the Homer server on this same computer, in a separate WSL distribution — for trying it out; the main way to run a home is a separate mini PC, see Installation |
| Core backups | Once a day the node takes a backup of the home from the Homer server and keeps the latest ones; they can be encrypted with a password that is stored nowhere |
| Friends' homes, Homer pool | Share your GPU with another home with a daily request limit, or join a shared pool |
| Windows service | Move models and speech to a service so they run even before sign-in; administrator rights required. The speaker stays in the user autostart |
| Startup | “Autostart” on Windows sign-in; “Unload the node from memory” — models leave RAM and the GPU, the tray stays and offers “Start the node” |
Updates
The node updates itself from homer.varyen.net. The “Updates” section in the settings: “Check”, “Update” and the “Update automatically: check homer.varyen.net every 6 hours and install the new version” checkbox. A node without a window does the same every 6 hours. The speaker package updates together with the node.
All nodes update at once from Homer: Settings → Homer updates lists your nodes with their versions and the “Update everything” button — the nodes and the server with the web download the update from the site and verify the signature. The home's nightly auto-update updates the nodes too. More — Updates and support.
Your own voice on a crowded GPU
Qwen3-TTS takes about 6 GB on the GPU. The node setting voiceWeights: "int8" in its node.json (applies after a restart) loads the language part of the model in int8 and saves 1.4 GB; you can't hear the difference, the price is speed: a phrase takes about half a second longer. The default is full precision.