LineageOS ยท Echo Show 5 ยท Muse Gadget

An Echo Show, reborn.

Muse Echo turns an Echo Show 5 into a Muse Gadget: a little device on your nightstand that Muse can draw on, talk through and fill with notes, timers and photos. And it comes with a resident: Puff, a blob who lives on the screen.

homelab ok๐ŸŽค hey muse
9:41Wednesday
๐Ÿ“ Shoppingoat milk
coffee beans
cat treats (urgent)
poke Puff

You talk. Muse answers.
The Echo does the rest.

Say "hey Muse" or tap the mic. Muse's reply streams in as a caption and is spoken aloud. And because the Echo is a real gadget, Muse can reach back and use it.

you, half asleephey muse, wake me at 7:30 and add coffee to the list
โ†’ alarm.set 07:30 ยท notes.add "coffee beans"
muse, through the echoDone. Alarm at 7:30, coffee's on the list. Sleep well.
later, unpromptedHeads up: the nightly backup on the Latitude failed. Looks like the disk is full again.
โ† gadget alert from the homelab, announced on the Echo
youstop.

Everything Muse can reach.

A Kotlin port of Meta's Linux gadget SDK, plus the push-to-talk chat flow from their ESP32 screen boards. These are the commands Muse can call.

๐Ÿ–ผ๏ธ

The screen

Full-screen images, big text cards, brightness, and back to Puff's face.

display.draw_urldisplay.show_text
๐Ÿ”Š

The speaker

Speak with captions, stream radio, control whatever's playing.

voice.sayaudio.play_urlmedia.control
๐Ÿ“

Notes and glances

A pinned note (tap a line to tick it), a line under the clock, an agenda page.

notes.addglance.setagenda.set
โฐ

Timers and alarms

On-screen countdowns, chimes, repeating alarms with spoken labels.

timer.setalarm.set
๐ŸŒ…

Photo frame

An idle slideshow with the clock, fed by Muse or a synced folder.

frame.addframe.show
๐Ÿฉบ

Health

Uptime, memory, Wi-Fi, errors and crashes, so Muse can tell when something's off.

device.health

Built for the nightstand.

๐ŸŒ™ Quiet hours

From 22:00 to 07:00: no wake word, no talking, a dim screen and soft beeps. Alarms still ring. After a few idle minutes the screen turns off completely.

๐Ÿ“ก Works offline

When Muse can't be reached, voice notes are transcribed on the device and timers, alarms, the time and the last weather are handled locally.

โ˜€๏ธ Morning brief

The first "hey Muse" after quiet hours gets weather, your day and server status, without asking.

๐Ÿ”„ Updates itself

The Echo checks the homelab for new builds every six hours and offers to install them.

Puff is home ๐Ÿ 

moodcozy
holdinga tiny mug
echoquiet hours
PuffPlayEcho

Puff, in your pocket.

The Puff phone app is the other half: visit Puff from anywhere, over home Wi-Fi when it can and Tailscale when it can't.

  • ๐Ÿ‘‰
    Check in. See Puff's mood, what it's up to, and poke it from across town.
  • ๐ŸŽฒ
    Play. Tic-tac-toe and rock-paper-scissors against Puff, who reacts live on the Echo.
  • ๐Ÿ“ธ
    Send things. Photos to the slideshow, announcements, timers, quiet-now.
  • ๐Ÿ””
    Widget and notifications, so Puff can reach you too.

Set it up.

You'll need an Echo Show 5 running LineageOS and a Muse account with an SDK token.

1. Install and pair

tools/deploy.sh <adb serial or ip:port>
# optional: let Muse bring the app forward
adb shell appops set com.rusty.museecho \
    SYSTEM_ALERT_WINDOW allow
# setup panel โ†’ paste token โ†’ Start pairing

2. No Bluetooth LE advertising?

# pair from any Linux box with Meta's own SDK,
# then hand the result to the Echo
tools/pair-via-linux.sh mgst_โ€ฆ
# Bluetooth is only for this one-time setup
The homelab side lives in latitude-services: echo-hub serves status, photos, backups, updates and the phone API, and muse-gadget lets Muse run commands on the server and forwards homelab alerts so the Echo can announce them.