Infinite AI-generated focus music for coding. Tracks are generated on-the-fly using an ACE-Step API, creating a never-ending playlist of instrumental music.
- Press play to generate your first track
- When the most recently generated track is ~45 seconds from ending, the next one is automatically queued for generation
- Browsing older tracks won't trigger new generations — only the latest track does
- Generated audio is cached locally so your library survives restarts
npm installCreate a .env file (or export env vars):
ACE_API=http://<your-ace-step-host>:8008
ACE_TOKEN= # optional, if your API requires auth
PORT=3000 # optional, defaults to 3000
npm startOpen http://localhost:3000.
| Key | Action |
|---|---|
| Space | Play / Pause |
| Arrow Left | Previous track |
| Arrow Right | Next track |
| Arrow Up | Volume up |
| Arrow Down | Volume down |
| M | Mute / Unmute |
Edit prompts.json to change the music styles. Each entry has:
{
"prompt": "genre tags and descriptors",
"bpm": 85,
"key_scale": "C Minor",
"audio_duration": 180
}This project was generated with Claude Code (Anthropic's Claude). The code, structure, and this README were all written by Claude.
server.js Express server, proxies ACE-Step API, caches audio
prompts.json Music generation prompt pool
public/
index.html Page markup
style.css Styles
app.js Client-side player logic
cache/
tracks.json Persisted track metadata
audio/ Cached mp3 files