Moondog

A listening room that shows its work.

Moondog is a listening room in your terminal. It reads the history your music services already keep, and turns it into a profile you can open, question, and correct.

Install Moondog Read the source

This is the real room, running in your browser with a fictional listener. Click inside and type /taste, or press Tab to look around.Tap /taste above to open the profile, or tap the room to type. Nothing you type leaves this page.

Bring your history

/import

Pick a service, and Moondog shows you what's inside before anything is saved. Your original files are never touched, and importing the same file twice changes nothing.

Spotify
Recent plays after you connect, or your whole history from the ZIP Spotify emails you.
Apple Music
The Library.xml you export from Music on a Mac.
YouTube Music
A Google Takeout export.
QQ Music and NetEase
Any public playlist, from its share link.
ListenBrainz
A saved listens file.

Your profile

/taste

The profile says what you played, and what that can't prove. Playing a song a lot doesn't show, on its own, how much it matters to you.

Open any song or artist to see why it's there: what you played, what that can't tell Moondog, and what you told it. Choose I like this or Keep it out, and the profile updates. Your listening history stays as it was.

With a model connected, /profile build writes a reading of everything you imported, usually in a few minutes. A second pass checks the draft for contradictions and invented claims before it's saved.

An agent, when you want one

/model

The profile works without a model, an API key, or a music-service login. When you want company, sign in with /auth and pick a model: GLM, Kimi, DeepSeek, Grok, GPT, Claude, Gemini, or OpenRouter.

The agent talks music with you, finds songs you haven't heard, and checks each recording on Spotify before it plays or queues it. Each step shows in the conversation as it happens.

再来十二首国风DJ,queue
Twelve more guofeng DJ tracks, straight into the queue. Moondog speaks English, Spanish, Portuguese, Japanese, and Chinese.

The dark side of the moon

moondog data inspect

Moondog names what play counts can never tell it about you. It is just as plain about where your data goes.

  • Your history, your profile, and your conversations stay on your machine.
  • When you build a profile, Moondog sends a compact summary of your music evidence to the model you picked. When you chat, your messages go to that model too.
  • For the lyric on the sleeve, Moondog asks LRCLIB for the words to a song you played. It doesn't send your profile, your history, or the conversation.
  • Spotify sees only what you connect. Moondog makes playlists only when you ask, and never posts, deletes, or spends money.

Install

You need Node.js 22.19.0 or newer, on macOS or Linux.

git clone https://github.com/Audiofool934/moondog.git
cd moondog
npm ci
npm start

To watch the agent work through fictional data without signing in to anything, run npm run demo in the same folder.

The npm package, @audiofool/moondog, is still at an older 0.1.0. The next release brings it up to date. The terminal guide covers every import format and model setting.