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
nulltarget temperature or tilt position is left out ofclimate watchandcover watchtext, as if the attribute were missing. <,>and&are printed as they are, not as\u003c,\u003eand\u0026. JSON parsers read both the same way.
Switching over
-
Stop and disable the old service:
systemctl --user disable --now go-automate-home-assistant-bridge.service -
Install Home Assistant Bridge, then make sure
ha-bridge.serviceis running. -
Update your key bindings, bar modules and scripts to the new commands.
-
Remove Go Automate.