Skip to content
Home Assistant Bridge
Esc
↑↓navigate↵open⌘Jpreview
On this page

Migrating from Go Automate

What changes when you move from Go Automate to ha-bridge.

Home Assistant Bridge replaces Go Automate. The commands do the same things, but every command now goes through the bridge, so the bridge service must be running for actions as well as watchers.

What happened to Go Automate

Go Automate was a Go CLI for triggering Home Assistant from key bindings, which later grew a socket bridge so status bars could share one connection for watching entities. Actions still opened their own connection each time, and anything else that needed Home Assistant called it directly with its own copy of the token.

Home Assistant Bridge is a rewrite in TypeScript with Effect, built around the bridge. One service owns the connection, and actions, reads and watches all go through its socket. Other apps can use the same connection through the client library instead of shelling out.

Go Automate is archived and no longer maintained, and its docs site now redirects here.

Commands

Drop go-automate ha from the front, and bridge from the bridge commands:

Go Automate Home Assistant Bridge
go-automate ha bridge serve ha-bridge serve
go-automate ha bridge watch entity <entity_id> ha-bridge watch entity <entity_id>
go-automate ha light toggle <name> ha-bridge light toggle <name>
go-automate ha cover watch <name> ha-bridge cover watch <name>
go-automate completion zsh ha-bridge --completions zsh

The domain commands, their aliases, arguments and flags are unchanged. camera snapshot and setup are new. See Commands for the full list.

Service and socket

Go Automate Home Assistant Bridge
User service go-automate-home-assistant-bridge.service ha-bridge.service
Socket $XDG_RUNTIME_DIR/go-automate/home-assistant.sock $XDG_RUNTIME_DIR/ha-bridge/ha-bridge.sock
Protocol get_entity and watch_entity JSON requests Effect RPC

Scripts that spoke Go Automate’s socket protocol directly need moving to the new protocol or the client library.

Config

You don’t need to set anything up again. When ~/.config/ha-bridge/config.yml doesn’t exist, the bridge reads ~/.config/go-automate/config.yml and copies it across.

Go Automate asked for your URL and token the first time it ran. Home Assistant Bridge doesn’t prompt on its own; run ha-bridge setup instead.

Output

Bar JSON has the same fields and key order, with two small differences:

  • A null target temperature or tilt position is left out of climate watch and cover watch text, as if the attribute were missing.
  • <, > and & are printed as they are, not as \u003c, \u003e and \u0026. JSON parsers read both the same way.

Switching over

  1. Stop and disable the old service:

    systemctl --user disable --now go-automate-home-assistant-bridge.service
  2. Install Home Assistant Bridge, then make sure ha-bridge.service is running.

  3. Update your key bindings, bar modules and scripts to the new commands.

  4. Remove Go Automate.

Last updated on October 1, 2026