GLaSSIST v3.0 – Your PC as a Full Voice Satellite for Home Assistant

Hi everyone,

GLaSSIST 3.0 is out. It turns your Windows or Linux PC into a proper voice endpoint for Home Assistant — wake word, hotkey, or tray trigger, with visual animations and clean audio handling.

No Python knowledge needed. Windows users get a one-click installer with a setup wizard.


What Is GLaSSIST?

GLaSSIST runs on your desktop and lets you talk to Home Assistant naturally:

  • 100+ wake word models (Alexa, Jarvis, Scarlett, GLaDOS, and more)

  • Trigger by wake word, hotkey, or system tray

  • WebRTC VAD for reliable speech-end detection

  • Visual animations with real-time audio visualization (Three.js + FFT)

  • Optional response text overlay on screen

  • Optional media player volume ducking during interactions

  • Modern settings UI — no config file editing required

  • HTTP prompt API for driving interactions from HA automations


What’s New in 3.0

ESPHome Satellite Mode (the big one)

GLaSSIST can now present itself to Home Assistant as an ESPHome voice satellite — the same protocol used by hardware devices like ESP32-S3-BOX.

This means:

  • HA connects to GLaSSIST (not the other way around) — no token needed

  • Timer support — HA timers trigger a sound loop on your PC when they finish

  • Conversation mode — continues listening without a wake word when HA requests it

  • Push announcementsassist_satellite.announce plays audio directly on your PC

  • Auto-discovery via mDNS/zeroconf — HA finds GLaSSIST on the local network automatically

The original WebSocket mode is still fully available and unchanged.

Smarter Follow-Up

New switch in Settings → Audio: “Continue conversation when response ends with ‘?’”

Useful when your AI integration asks a question but doesn’t signal HA to keep listening. Works in both connection modes.


Two Modes at a Glance

ESPHome Satellite mode — Home Assistant connects to GLaSSIST (no token needed). Local network only. Adds timer alarms, push announcements, and conversation follow-up on top of everything WebSocket mode offers.

WebSocket mode — GLaSSIST connects to Home Assistant using a long-lived access token. Supports remote access via Nabu Casa or a reverse proxy. Conversation follow-up works. No timer support, announcement support via old method (described at bottom)


Setup (ESPHome Satellite Mode)

Windows installer: the setup wizard asks which mode you want and configures everything automatically.

Manual / existing install:

  1. Open GLaSSIST Settings → Connection → set mode to ESPHome Satellite

  2. Set a device name and port (default 6053)

  3. Restart GLaSSIST

  4. In Home Assistant: Settings → Devices & Services → Add Integration → ESPHome

  • Enter your PC’s IP address and port 6053

  • Or just wait — if your network supports mDNS, HA will find it automatically

  1. Assign your preferred Assist pipeline to the new satellite device

HA Automation Examples

Announcement


action: assist_satellite.announce
target:
  entity_id: assist_satellite.your_glassist
data:
  message: "Laundry is done. Time to empty the washer."

Start a guided conversation from an automation


action: assist_satellite.start_conversation
target:
  entity_id: assist_satellite.your_glassist
data:
  start_message: "The living room window is open. Should I close it now?"
  extra_system_prompt: "If the user confirms, trigger the window-close action."

Announcement without chime


action: assist_satellite.announce
target:
 entity_id: assist_satellite.your_glassist
data:
  message: "Quiet update: garden watering completed."
  preannounce: false


Requirements

  • Windows 10/11 x64 (installer available) or Linux (run from source)

  • Home Assistant 2024.6+ for ESPHome Satellite mode

  • No Python installation needed for Windows

Download

Legacy announcements:

Add this to configuration.yaml (only WebSocket mode):

rest_command:
  glassist_prompt:
    url: "http://YOUR_GLASSIST_IP:8766/prompt"
    method: POST
    headers:
      Content-Type: "application/json"
    payload: |
      {
        "message": "{{ message }}",
        "context": "{{ context }}",
        "timeout": {{ timeout | default(15) }},
        "wait_for_response": {{ wait_for_response | default(true) | lower }},
        "use_ai_message": {{ use_ai_message | default(false) | lower }}
      }
  • Service: rest_command.glassist_prompt
  • Service Data:
message: "Turn on the lights in the living room?"
context: "You ask user if they want to turn on lights in living room" 
timeout: 15
wait_for_response: true

Old versions posts on HA forum:

2 Likes

Giving it a test, I can’t seem to have any settings stick. For example if I change the wake word, next time I open settings it’s back to alexa. Even setting debug mode is turned off next time I open the settings window.

Currently troubleshooting open wake word as I can’t get it to work. If I manually activate voice the STT works and TTS responds correctly, but I can’t seem to get wake word settings to stick or change.

Ok, if I edit the .env file manually, I can change wake words and get it to work. Seems like currently none of the settings are actually written to the file when clicking “save settings”. :slight_smile:

Hm, that’s strange.

Do you have that view after clicking save?

Also, after any changes in settings you need to manually restart application. unfortunetely, i’m not able to make work hot reload ;(

No, never saw that appear after clicking the save settings button. The save button does a little animation from the middle to the edges after clicking. Nothing else happens.

Ok, so if you found .env file:

Please set

DEBUG=true

Then send me all logs from /logs folder via email or open a github issue please:

[email protected]

Of course during “debugging” please click that stupid save button like crazy.
I will fix it asap :wink:

I seem to have some intermittent issues. I install GLaSSIST using ESPhome sattelite method, I input all of my server info, then it says it connects. However when I test connection in the system tray it says failed, and I also cannot get to the settings. When I right click GLaSSIST and click settings, nothing happens. I don’t get any pop up or anything.

I’m still getting voice output cut off at the end of long responses with the latest version using Piper. Any word on a fix?

Hm. Piper is working on my setup.

Sorry but i need logs. And detailed information about your piper installation - version, what model are you using, as much as possible. Can you provide that? Or we can try some remote session via anydesk - i can check it manually on your PC if this is fine for you :wink: