echolocal is a free, open source internet of things (iot) project written in Go and released under MIT. It has 522 GitHub stars, 35 forks and 38 open issues, and was last pushed 20 hours ago. On this registry it ranks #99 of 99 tracked projects in Internet of Things (IoT), with 5 head-to-head comparisons available. It gained 16 stars over the last 5 tracked days.

What is echolocal?

EchoLocal is an MIT-licensed, Go-based open-source replacement for Alexa that turns a supported Amazon Echo Dot or Echo Show into a fully local Home Assistant voice satellite, media player, display and Bluetooth proxy, with no Amazon account and no cloud — aimed at Home Assistant users who want to keep the Echo hardware they already own.

What it is

EchoLocal runs on the Echo itself and uses the device's existing microphones, speaker and buttons rather than asking anyone to buy new hardware. It presents the device to Home Assistant through the ESPHome native API, so Home Assistant discovers it the way it discovers an ESPHome node, and voice, audio, display and Bluetooth all stay on the local network. The project is written in Go and released under the MIT licence, and it ships with a companion Home Assistant integration published as a HACS repository at ygelfand/echolocal-hacs.

The problem it solves is the cloud dependency of Alexa. On the supported hardware — Echo Dot (2nd gen), Echo Show 5 (1st and 2nd gen) and Echo Show 8 (1st and 2nd gen), all running Fire OS 6.x or 7.x — EchoLocal replaces the Alexa assistant in place. Wake word detection runs on the device with microWakeWord and openWakeWord, and the captured audio is routed to a Home Assistant Assist pipeline instead of to Amazon, so a working speaker-and-screen device becomes a local voice endpoint, an intercom handset, a dashboard and a Bluetooth proxy without being retired.

Key capabilities

  • On-device wake words are provided by microWakeWord and openWakeWord, with two assistants that each have their own wake word and Assist pipeline, and "Stop" works without a wake word.
  • The speaker is exposed to Home Assistant as a media_player for announcements, TTS and music with ducking under the wake word, alongside a Sendspin player for Music Assistant and a Chromecast receiver that carries audio only on the Dot.
  • Two-layer white noise can be mixed from white, pink, brown, rain, ocean, fan, fire, brook, cabin, crickets and wind, and timers and alerts support custom tones for chimes, timers and wake sounds.
  • Intercom calls run between devices on the local network, with audio on the Dot and audio plus video on the Shows, including broadcasts to every device and voice commands such as "call the kitchen" or "broadcast dinner is ready" through the EchoLocal integration.
  • A Bluetooth proxy extends Home Assistant's Bluetooth reach for integrations such as Bermuda, and while the proxy is on the device advertises an iBeacon with UUID 9c5fa6f1-91c4-4f56-bb9f-d92acfd9d40b, major 1 and a minor taken from the last two bytes of its factory MAC.
  • Every device serves an HTTPS web page with searchable settings, alarms, calls, broadcasts and logs, an HTTP API behind it for scripts, exportable and importable portable settings, and — on an Echo Show — live screen control with QR pairing and remote keyboard input.
  • The Echo Dot's light ring is twelve individually addressable segments with effects for ambient, motion, alerts and room-reactive behaviour, and its buttons arrive in Home Assistant as events covering press-and-hold on every button plus double and triple taps on the action button; Echo Shows add a native dashboard with 21 clock faces, photo wallpaper, weather, lights, switches and cameras.

Who uses it and how

  • Home Assistant households that already have Echo Dots and Echo Shows mounted around the house use EchoLocal to adopt that hardware into Home Assistant through the ESPHome native API instead of replacing it.
  • Multi-room homes use the intercom and broadcast features for room-to-room calls and whole-house announcements, with a home key that keeps calls and broadcasts restricted to the owner's own devices.
  • Music Assistant and Chromecast users target the device through the Sendspin player or the Chromecast receiver, and the same speaker handles TTS announcements and ducking under the wake word.
  • People extending Bluetooth coverage install it as a Bluetooth proxy for integrations like Bermuda, and use the iBeacon advertisement for positioning tools such as BLE Positioning System.
  • Automators drive the device from scripts through the HTTP API and from button events, per-segment ring colours and room-reactive ring effects.

Getting started

The EchoLocal integration is distributed as a HACS repository at github.com/ygelfand/echolocal-hacs, with per-device setup steps in the guide at echolocal.link/start/devices/ and builds published on the project's Releases page; Home Assistant then discovers the device through the ESPHome native API and updates it from within Home Assistant, on the stable or development channel or by naming any recent version to roll back.

How it compares

EchoLocal sits alongside ESPHome rather than competing with it: the device speaks the ESPHome native API, so Home Assistant treats it as an ESPHome node, and its speaker doubles as a Sendspin player for Music Assistant. Its closest relative in the facts is the sister project LANovo, which applies the same approach to Lenovo Smart Display, JBL Link View and Lenovo ThinkSmart View hardware, while EchoLocal itself covers the Echo Dot and Echo Show.

When to use it — and when not to

EchoLocal assumes a running Home Assistant instance, a device from the supported list — Echo Dot (2nd gen), Echo Show 5 (1st and 2nd gen) and Echo Show 8 (1st and 2nd gen) on Fire OS 6.x or 7.x — and someone prepared to operate the HTTPS web interface, with either a self-signed certificate or one issued by Cert Warden, on top of Home Assistant itself. Anyone whose Echo model falls outside that list, or who wants an off-the-shelf cloud assistant with no local infrastructure to run, should not pick it up. The supported device set is narrow, and with 38 open issues against 503 stars the project is a small, actively changing codebase rather than a long-settled one.

project readme (upstream, from github) — read inline

EchoLocal

Stars Downloads Version Build Buy me a coffee Join the community on Discord Documentation

An open-source replacement for Alexa on supported Echo Dots and Echo Shows, with Home Assistant Assist, music, intercom and Bluetooth proxying.

Uses the Echo's existing microphones, speaker and buttons. Shows also have dashboards, touchscreen apps, cameras and video calls. Home Assistant discovers it through the ESPHome native API.

The screen examples below are Echo Show features; Echo Dot controls use its light ring, buttons, Home Assistant and browser interface.

Math clock Matrix alarm panel
Tessera in Material You Photo wallpaper and clock placement

Interface gallery · Setup guide · Releases

Devices

Device Codename OS Status
Echo Dot (2nd gen) biscuit Fire OS 6.x Supported
Echo Show 5 (1st gen) checkers Fire OS 6.x Supported
Echo Show 5 (2nd gen) cronos Fire OS 6.x Supported
Echo Show 8 (1st gen) crown Fire OS 6.x Supported
Echo Show 8 (2nd gen) athena Fire OS 7.x Supported

Additional devices supported by our sister project LANovo

Device Codename OS Status
Lenovo Smart Display 10 blueberry Android Things 8.x Supported
Lenovo Smart Display 8 amber Android Things 8.x Supported
Lenovo Smart Display 7 ivy Android Things 8.x Supported
JBL Link View opal Android Things 8.x Supported
Lenovo ThinkSmart View penghu Android 8.x Supported

Features

Every device

  • Wake words on the device with microWakeWord and openWakeWord. Two assistants, each with its own wake word and Assist pipeline. "Stop" works without a wake word.
  • Speaker: a Home Assistant media_player for announcements, TTS and music, ducking under the wake word. A Sendspin player for Music Assistant. Chromecast receiver (audio only on the Dot).
  • White noise: two layers from white, pink, brown, rain, ocean, fan, fire, brook, cabin, crickets and wind.
  • Intercom: calls between devices on your network. Audio on the Dot, audio and video on the Shows. Broadcasts to every device at once, and "call the kitchen" or "broadcast dinner is ready" by voice with the EchoLocal integration, which also calls an Echo Show from a Home Assistant dashboard. A home key keeps calls and broadcasts to your own devices.
  • Timers and alerts, with custom tones for chimes, timers and wake sounds.
  • Bluetooth proxy for Home Assistant, so the device extends your Bluetooth for integrations like Bermuda. While the proxy is on, the device also advertises an iBeacon with UUID 9c5fa6f1-91c4-4f56-bb9f-d92acfd9d40b, major 1, and a minor from the last two bytes of its factory MAC, for tools like BLE Positioning System.
  • Light sensor, reported to Home Assistant.
  • Updates from Home Assistant, stable or development channel, or any recent version by name to roll back.
  • A web page on every device over HTTPS: every setting with search, alarms, calls and broadcasts, logs, and on an Echo Show live screen control with QR pairing and remote keyboard input. Portable settings can be exported and imported. Behind it is an HTTP API for scripts. The certificate is self-signed, or comes from Cert Warden if you run one. See In a browser.

Echo Dot

LED ring. Twelve individually addressable segments, effects for ambient, motion, alerts and room-reactive behavior, and a color per segment. The ring can follow the room's volume.

Buttons as Home Assistant events: press and hold on every button, and double and triple taps on the action button.

Echo Show

  • A native dashboard with 21 clock faces, photo wallpaper, weather, lights, switches, cameras, doorbells and your Home Assistant alarm panel
  • Tessera dashboards, using the native renderer or embedded Tessera firmware
  • 33 audio visuals on the GPU, for the screen saver or for each assistant while it listens and answers
  • Nine styles and eighteen color themes
  • Messages from Home Assistant, timers on screen
  • Photos from Immich and Google Photos, as wallpaper, a screen saver or a full-screen app
  • Home Assistant alarm-panel controls with zones, keypad and 14 designs
  • Doorbell video, two-way audio, ring notifications and detection history
  • A Chromecast receiver that runs each app's own receiver page on the Echo Shows, and plays YouTube and YouTube Music on the Echo Dot
  • A Bluetooth speaker
  • An RTSP camera on port 8554 with ONVIF discovery, and a snapshot camera in Home Assistant.
  • A Cameras app for your Home Assistant cameras, with live video and audio through the integration, and full-screen Lights and Switches apps
  • Settings on the screen or from Home Assistant, a PIN to lock them, and config sync between devices

The optional integration

Everything above works with stock Home Assistant. The EchoLocal integration (HACS) adds a dashboard and cards for these devices, Fleet to compare settings across devices and copy them from one to the others, calls to an Echo Show from a dashboard, turn history with recordings, a wake word library, custom tones, groups and a health view. It works with LANovo displays too, side by side on the same dashboard. See The EchoLocal integration.

The EchoLocal dashboard with Echo Dots and Echo Shows

Installing

You need the device connected over USB with TWRP as its recovery. Follow the XDA guide for yours:

Download echolocal for your computer from the latest release:

Computer File
Mac (Apple silicon) echolocal_darwin_arm64
Mac (Intel) echolocal_darwin_x86_64
Linux (x86-64) echolocal_linux_x86_64
Linux (ARM64) echolocal_linux_arm64
Windows (x86-64) echolocal_windows_x86_64.exe
Windows (ARM64) echolocal_windows_arm64.exe

On macOS and Linux:

mv echolocal_darwin_arm64 echolocal
chmod +x echolocal
xattr -d com.apple.quarantine echolocal   # macOS only, if Gatekeeper blocks it
./echolocal install --name living-room

On Windows:

Rename-Item echolocal_windows_x86_64.exe echolocal.exe
.\echolocal.exe install --name living-room

The installer detects the device, flashes its boot image, installs EchoLocal, and asks for your Wi‑Fi if the device isn't on a network yet.

echolocal install, from flashing the boot image to the device coming back on Wi-Fi

It then shows up in Home Assistant. Add it, and Home Assistant sets its encryption key.

The full guide, with every setting and where to find it, is at www.echolocal.link.

Building it yourself

make build-echod                  # echod for the Echo Dot
make build-echod BOARD=crown      # echod for an Echo Show: checkers, cronos, crown or athena
make install-echod                # build, install and restart it on the attached device (requires prior full installation)

How it fits together

  • echod runs on the device: the hardware, the screen, the wake word engines, the conversation, and an ESPHome native API server.
  • echolocal is the host CLI: installing, Wi‑Fi, and offline tools for debugging the device.

Frequently asked questions

Is echolocal free to use?

echolocal is open source under the MIT licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does echolocal do?

Turn an Amazon Echo Dot or Echo Show into a fully local Home Assistant voice satellite, media player, display and Bluetooth proxy. No Amazon, no cloud.

What is echolocal written in?

echolocal is primarily written in Go. Its source is publicly available at https://github.com/ygelfand/echolocal, and it has 522 GitHub stars.