Skip to content

How to control odio from your web browser

go-odio-api ships with an embedded web UI. No separate deployment, no build step — the API and the interface are the same process.

Open your browser and navigate to:

http://<ip>:8018/ui

Or via Zeroconf (mDNS):

http://<hostname>.local:8018/ui

No installation, no account. If you can reach your node on the network, you can control it.

The embedded UI provides the same controls as the application: playback, volume, Bluetooth, services, and power management. For a multi-node setup or an installable app experience, see the odio application.

Embedded web UI showing the Audio Server with volume sliders, Media Players with Spotify playback and cover art, Bluetooth pairing controls, and Services management

Since odio-api v0.16.0, a toggle on the player card swaps the cover for the tracklist when the player exposes one and it holds at least two tracks: the current track is highlighted, tapping a row jumps to it, and each row gets a remove button when the player allows queue edits. The chosen view and the scroll position survive live refreshes. Tapping a cover opens it fullscreen, tap again or press Escape to close.

Embedded web UI with the Media Players card showing the MPD queue instead of the cover: four rows with a remove cross each, the playing one highlighted in green, transport controls below, next to the Bluetooth, Audio Server, and Services panels

The UI is built with HTMX and Tailwind CSS, compiled into the Go binary via go embed. No build step, no CDN, no external requests — everything is served from the binary itself, 100% local.