It speaks first.
Nobody presses play. It picks a topic and starts talking, slides into a song, comes back and keeps going. Morning and night get their own greetings; when you step away, it notices and goes quiet on its own.
murmur is a local-first companion radio with an agent for a brain. It finds something to talk about, puts on a song, and comes back to keep going. Type back whenever you like, and it answers in a voice that sounds human.
$ git clone https://github.com/wine-fall/murmur
$ cd murmur && make dev # the radio comes on the air
♪ 窦靖童 — Blank Space of My Heart
That stretch of quiet after a song ends, I always think it sounds better than the song itself. Still at the keyboard? Don’t answer me, I’ll keep playing.
> something quieter, instrumental
⚙ switch_music("quiet instrumental")
♪ crossfade → Ólafur Arnalds — Near Light
Done, switched. I’ll keep my voice down. Go on.
Most AI right now is selling something: marketing, productivity, content. murmur isn’t trying to make you faster. It was built for one thing: to be AI that sits closer to the person. A voice in the room while you work. A host who stays. A rapport that grows.
— why this exists
Nobody presses play. It picks a topic and starts talking, slides into a song, comes back and keeps going. Morning and night get their own greetings; when you step away, it notices and goes quiet on its own.
Missing ffmpeg? No voice endpoint yet? The radio still launches anyway, degraded, then names its own gaps on air and offers to fix them, asking before every change. Setup is a conversation, not a README.
Your reply doesn’t land in a form field; it lands in an agent’s hands. Ask for something quieter and the music switches mid-song; say you’re done for tonight and it signs off properly, last words and all.
Three tiers of memory persist across sessions: who you are, what you’ve talked about, which songs already played. The host’s character is a plain text file, yours to edit.
While one segment plays, the next is already being written and voiced. Talk hands over to music and back without a gap.
Sentence-paced speech with a pinned timbre, riding over the music with proper ducking: it lowers the song to talk, and never cuts it.
A TUI with a live music visualizer and a pixel pet; without bun it falls back to plain text and keeps broadcasting.
Model inference for the brain, a stream for the songs, a hosted voice for now, until a local TTS lands. Logic, memory, and mixing stay on your machine.
Open-source under MIT, with a hard bar: if it doesn’t sound human, it isn’t done. The remaining work is listening.
Every spec on the roadmap is built: the loop, the voice, the memory, the pacing, the steering. Most of what’s open is listening: by-ear passes on how it feels through a real day. Clone it and it talks.
Node ≥ 24 · pnpm · your agent login (Claude Code today), or run fully offline with --brain stub.