go-udap

go-udap

Discover and configure Squeezebox devices from the command line

A small command-line tool that discovers and configures Squeezebox devices over UDAP — the on-the-wire protocol Logitech's original setup app spoke. One static binary, no Lyrion Music Server required for setup, no Perl runtime, no GUI.

UDAP only talks to Squeezeboxes that are in setup mode (the light flashes red). Brand-new devices arrive in setup mode; existing devices can be put back in by holding the front button for 3–6 seconds.

Features

  • Discover every Squeezebox on the LAN via UDP broadcast on port 17784
  • Read & write all 26 NVRAM parameters — network, wireless, server pointer, hostname, and more
  • Query live network config (getip) — actual IP / subnet / gateway, distinct from passive discovery
  • Multi-NIC aware — pick one interface (--bind-interface) or fan out across all of them (--all-interfaces)
  • Shell completions for bash, zsh, and fish, including MAC-address completion via short-timeout discovery
  • Single static binary, ~2.8 MB, no runtime dependencies — macOS / Linux / Windows on amd64 and arm64
  • Round-trippable configread | set cycles cleanly through file or stdin

Start here

Install

brew install yo61/tap/go-udap

Or download a release binary from GitHub releases — macOS, Linux, and Windows builds for amd64 and arm64.

Protocol provenance

go-udap mirrors the Perl Net::UDAP reference implementation. Where the two diverge, Net::UDAP is the source of truth. See What is go-udap? for the full lineage and the rationale for the rewrite.

Source

github.com/yo61/go-udap

On this page