v0.1.0 · Fastify 4 · Bun compiled

A stable bridge between URC Total Control and Hi-Fi Rose RS520.

The RS520's HTTP control surface is reverse-engineered and shifts between firmware releases. urc-rose-bridge hides that behind a versioned /v1/* contract, so URC's custom IP driver — and, in Phase 4, Josh AI — never has to change when Rose ships an update.

Download macOS arm64Read the docs →~57 MB · no Node required

The contract

One stable surface. Patch the bridge, not your URC project.

Every endpoint URC's IP driver hits is documented, versioned, and tested against a pinned RS520 firmware build. When Rose breaks the underlying API, you ship a new bridge binary — the URC project is untouched.

  • GET /v1/healthBridge uptime + Rose reachability
  • GET /v1/statePower, source, volume, playing
  • POST /v1/power{ state: 'on' | 'off' }
  • POST /v1/source{ input: 'OPTICAL' | 'EARC' | … }
  • POST /v1/volume{ level } or { delta }
curl
curl http://127.0.0.1:8088/v1/state
# { "power":"on", "source":"OPTICAL", "volume":35, "playing":true }

curl -X POST -H 'content-type: application/json' \
  -d '{"input":"EARC"}' \
  http://127.0.0.1:8088/v1/source

curl -X POST -H 'content-type: application/json' \
  -d '{"delta":-2}' \
  http://127.0.0.1:8088/v1/volume

Roadmap

Phased rollout

Phase 0shipped

Probe

Scan the LAN, hit every Rose endpoint, write a JSON report. Run once per firmware update.

Phase 1shipped

Bridge service

Fastify on :8088 exposing /v1/*. URC's IP driver targets this contract.

Phase 2in progress

URC driver

Custom IP driver in Total Control hits /v1/* — no changes when Rose ships firmware.

Phase 4planned

Josh AI

Same /v1/* contract powers voice control via Josh AI's HTTP integration.