Gives every media player its own details, so a client can show and control any of them, and lets you pick the player and set the default audio devices in the web client. Also reads the clipboard with an event, and keeps Hyprland 0.57 window groups working.
Media
- Report each player in
media.playerswith the same details as the top-level media: album, artwork, position and duration, volume, shuffle, repeat, track number, playback rate and which controls it supports. Pass itsidasplayerinMEDIA_CONTROLto control it - Cache the artwork of up to 8 players, rather than only the last one
Clipboard
- Read the clipboard's text with the
CLIPBOARD_GET_TEXTevent,system-bridge clipboard getand thesystem_bridge_get_clipboardMCP tool. See input
Hyprland
- Lock and unlock window groups with Hyprland 0.57's
group.lock, and keep the old form for 0.56 - Report the deprecated settings Hyprland's config uses in
hyprland.config_notices, and show them on the web client's Desktop page
Web client
- Pick which player the Media page shows and controls, with Automatic for the one System Bridge picks. The choice is kept in the browser, and the other players get their own cards below. See media
- Lay out the Audio page like the Media page: the default output and input each get a main card with a picker and a volume slider, with the other devices under them
Home Assistant dashboard
- Add an Audio page, and the power buttons, ready for the entities coming in Home Assistant 2026.12
Connector
- Add the per-player media details and
CLIPBOARD_GET_TEXTto the Python and TypeScript connectors, andconfig_noticesto their Hyprland data - Require System Bridge 5 in the Python connector
Linux
- Add a
system-bridge-fullNix package with most of the optional tools on itsPATH. See NixOS
Windows
- Set up signing for Windows builds through SignPath (Note this is only for test signing right now, you will still get the windows prompt), and add the code signing policy to the docs
- Remove the
NowPlayingfolder on uninstall - Store the version info under resource ID 1, so Windows shows it on the executable
Moved
- The
clipboardcommand prefab is gone. Saved commands that use it are dropped when the settings load; read the clipboard withCLIPBOARD_GET_TEXTinstead
Dependencies
- Update Effect to v4.1.0 (#4507, #4519)
- Update Hyprland to v0.57.0 (#4518) and the Home Assistant frontend to 20261028.0 (#4517)
- Update Node.js to v26.13.0 (#4516), oxlint to v1.90.0 (#4508), @effect/tsgo to v0.63.0 (#4511), wrangler to v4.154.0 (#4512), @astrojs/cloudflare to v14.4.3 (#4524), pytest to v9.2.0 (#4513) and mypy to v2.4.1 (#4545)
Maintenance
- Update tooling-drift to 0.1.7, the Nix dependency hashes and the CI digests (#4509, #4515)
- Remove the v4 upgrade note from the README
Full Changelog: 5.22.1...5.23.0