mrkeyoor.com_
Thu 17 Sept 15:59 UTC
Self-Hostedevaluationupdated 17 Sept 2026

EchoMuse review

EchoMuse turns a rooted second-generation Amazon Echo Dot into a local Home Assistant voice satellite and media player. A Go service runs on the Dot while a Python controller handles wake words, Home Assistant communication, fleet settings, and updates without Alexa's cloud.

Verdict

Our 8-second install and 4-second build were followed by 11 failed Go test targets, so the low setup times do not amount to a clean developer checkout. EchoMuse is worth the hardware work for Home Assistant users who own the exact second-generation Dot and want its microphones, speaker, controls, and radio back under local control. Skip it if rooting risk, FireOS version constraints, or an unresolved headphone fault would make the device hard to trust.

We ran it

Lab card: what happened when we ran EchoMuseScreenshot of EchoMuse (github.com/wilbowes/EchoMuse)
Install✓ · 8s14 packages
Build✓ · 4s
Tests✗ · 21s0 passed · 11 failed of 11 (go test)
Repo393 files~94,455 lines of source · 6.1 MB · 7 CI workflows

Answers from our run

Does EchoMuse build from source?

Dependencies installed in 8 seconds (14 packages), and the build succeeded in 4 seconds. We cloned commit f884d40 into a clean Debian container with 3 CPUs and no project-specific setup.

Do EchoMuse's tests pass?

Not all of them: 0 of 11 passed and 11 failed when we ran the project's own test command (go test). Some failures need services or credentials a bare container does not have.

Who should not use EchoMuse?

Owners of an Echo 2 or Echo Dot 3: the README supports the second-generation Dot, while issue 527 is still asking whether those other models can be supported.

What are the alternatives to EchoMuse?

Linux Voice Assistant, EchoGo, Onju Voice Satellite. Our 8-second install and 4-second build were followed by 11 failed Go test targets, so the low setup times do not amount to a clean developer checkout.

Setup1/5Rooting is mandatory, and all 11 Go test targets failed
Docs5/5Quickstart, rooting, configuration, and recovery risks are explicit
Community4/5Pushed September 17, 2026 with active issues and pull requests
Maturity3/5Deep feature set, but narrow hardware support and open audio faults

Who it’s for

Home Assistant users with second-generation Echo Dots they are willing to root and reflash.
Tinkerers who want local wake words, spoken Assist replies, music, and Bluetooth presence from one device.
Multi-room households prepared to run a controller as a Home Assistant add-on or Docker service.
Hardware hackers who value detailed logs, recovery slots, and device-level audio controls.

Who it’s NOT for

Owners of an Echo 2 or Echo Dot 3: the README supports the second-generation Dot, while issue 527 is still asking whether those other models can be supported.
Anyone unwilling to root and flash hardware: setup requires persistent root, FireOS 5, Magisk 17.3, USB provisioning, and disabling Alexa's voice stack.
Dots already moved to amonet-biscuit 2.0.0 and FireOS 6: the README says EchoMuse does not run there and warns that flashing older boot components can hard-brick the device.
Headphone users who need fault-free hot plugging: issues 117 and 141 report microphone stalls, disconnects, and playback trouble around the jack.
Buyers wanting a supported appliance with a warranty: this is a young community project that repurposes unsupported consumer hardware.

Setup reality

Our sandbox installed 14 packages in 8 seconds and built the GoTinyAlsa target in 4 seconds. Tests then failed after 21 seconds: go test reported 0 passed and 11 failed of 11. The supplied log tail shows one setup failure and build failures across the listed packages, but not the compiler's first error.

A working EchoMuse system also needs a second-generation Echo Dot with persistent root, FireOS 5, Magisk 17.3, USB access for provisioning, and a Home Assistant instance. The controller runs from its published Docker image or as a Home Assistant add-on; source builds use a custom device compiler image plus Python 3.12 for the controller.

Use amonet-biscuit 1.1.0, not 2.0.0. The README warns that the newer unlock moves the Dot to an unsupported FireOS path and that manual rollback can hard-brick it. Headphone insertion and removal also have two open faults, including a roughly 30-second microphone stall after unplugging.

EchoMuse gives one old Echo model a useful second job

A used second-generation Echo Dot costs about $10 by the README's estimate, and it is the one model EchoMuse supports. The project replaces Alexa's role with a local Go service on the Dot and a Python controller on your network. Home Assistant sees the result as an ESPHome voice satellite and media player, so wake words, Assist conversations, music, buttons, light readings, and Bluetooth advertisements can feed an existing home setup.

The hardware reuse is unusually complete. The 7-microphone array, LED ring, speaker, action button, mute control, and 3.5 mm jack all have jobs. Wake detection stays on the controller by default, where models and sensitivity can change without reflashing the Dot. An experimental device-side scorer can observe the same audio without deciding when to wake. That gives the project a way to compare placements before moving responsibility onto old hardware.

Rooting and FireOS 5 are the real installation cost

A compatible Dot needs FireOS 5, persistent root, and Magisk 17.3 before the controller can provision it. The controller itself has a simpler path: a published Docker image or a Home Assistant add-on. Its dashboard then guides USB provisioning, Wi-Fi, firmware, TLS credentials, and wake-word assets. Approved devices appear through Home Assistant's built-in ESPHome integration.

The README is blunt about amonet-biscuit versions. Use 1.1.0. Version 2.0.0 replaces bootloaders and moves the hardware onto FireOS 6, which EchoMuse does not support today. It also warns against manually flashing older components after that upgrade because doing so can hard-brick the Dot. This is hardware modification with a real failure boundary.

What happened when we ran it

Our sandbox cloned commit f884d40 with 3 CPUs and 8 GB of RAM. The 6.1 MB checkout contained 393 files and about 94,455 source lines. In the GoTinyAlsa project, installation succeeded in 8 seconds and added 14 packages. The build completed successfully in 4 seconds.

The test step failed with exit code 1 after 21 seconds. go test reported 0 passed and 11 failed of 11. The supplied tail labels the example package as a setup failure and lists build failures for internal/tinyapi, internal/tinypcm, pkg/pcm, and pkg/tinyalsa. It does not include the earlier compiler message, so assigning a cause would be guesswork. The scanned target had 7 CI workflow files, no Dockerfile, and no tests directory.

GoTinyAlsa keeps the clean build from being a clean checkout

All 11 reported test targets failed in our lab run, including packages close to capture and playback. EchoMuse includes the maintainer's GoTinyAlsa fork as a Git submodule and says it carries a leak fix. That library binds Go code to TinyAlsa for Android audio. Its own documentation mentions native library linking and deprecated TinyAlsa calls retained for Android compatibility, both reasonable concerns for software aimed at a 2016 device.

Our 4-second build proves that the selected build target compiled in the stated container. The log excerpt is too short to separate a missing system component from a source problem, and we will not invent that diagnosis. Before flashing a device, reproduce the suite with the project's intended toolchain and retain the first error, not only the summary.

Local control includes fleet operations, not just voice turns

The controller pools detections when 2 Dots hear the same utterance, then lets the better-placed device answer once. Music ducks under spoken replies instead of pausing, which protects progress on a live radio stream. The dashboard can push EQ, microphone, and LED settings across devices, show wake scores and playback underruns, and deliver A/B-slot updates with fallback.

Security is handled with a controller-created certificate authority and per-device tokens. The README says there is no usage telemetry or install counter. Its stated outbound contact is an hourly GitHub release check, with timing under the operator's control. Optional recent microphone recordings can help tune capture by ear, but operators should decide deliberately whether keeping those clips fits the household's privacy rules.

Two open jack faults limit where the Dot belongs

Issue 117 records a microphone stall of roughly 30 seconds after unplugging headphones, followed by a controller disconnect and automatic recovery. Issue 141 reports repeated reconnects and unstable music while an aux cable is attached. The README calls out both faults rather than hiding them, which is good documentation and still a reason to avoid this setup where the jack changes often.

Hardware support is just as narrow. Open issue 527 asks about the full-size Echo 2 and Echo Dot 3; it does not establish support for either. GitHub recorded the last push on September 17, 2026, one day after the emOS v0.7 release. The repository had 786 stars and 122 combined issues and pull requests. That is current activity, although the open count is not a defect count.

Pick EchoMuse when the spare Dot is part of the appeal

For a compatible second-generation Dot, the choice is between a $10 hardware rescue and a simpler voice-satellite build on supported Linux hardware. EchoGo is closer to the metal for developers who want to write their own Dot software. EchoMuse makes sense when the original microphones, speaker, and controls are part of what you want to keep.

The 11 failed Go test targets prevent an unqualified recommendation. So do the FireOS 5 dependency and open jack faults. For the exact owner who accepts the rooting procedure and will verify the device build before flashing, the payoff is concrete: old Amazon hardware becomes a local Home Assistant endpoint instead of electronic waste.

Alternatives

ProjectWhat it isPick it when
Linux Voice AssistantA Linux voice satellite that speaks Home Assistant's ESPHome protocol.pick this instead when you have supported Linux audio hardware and do not want to root an Echo Dot.
EchoGoA Go SDK for writing your own software for an Echo Dot.pick this instead when you want to build a custom Dot application rather than install a finished Home Assistant system.
Onju Voice SatelliteAn ESPHome voice-satellite configuration for the Onju Voice replacement board.pick this instead when you prefer purpose-built ESPHome hardware over modifying Amazon's original board.

What people are saying

  1. [github-trending] wilbowes/EchoMuse

Sources

  1. EchoMuse README
  2. EchoMuse quickstart
  3. emOS v0.7 release
  4. Headphone unplug microphone stall issue
  5. Echo 2 and Echo Dot 3 support request

More self-hosted reviews

versitygw · Octop · newsnow · forem · octo-server · runtime · the whole board →