Discover and explore top open-source AI tools and projects—updated daily.
perminder-klairAgentic AI DJ for a personal internet radio experience
Top 60.4% on SourcePulse
Summary
Subwave provides a personal internet radio station experience, acting as an agentic AI DJ that curates music and commentary for a single, shared broadcast. It targets users seeking a radio-like listening experience over personalized playlists, offering an AI-driven approach to music selection and on-air personality. The primary benefit is a unique, dynamic broadcast controlled by an AI, rather than listener-driven playback.
How It Works
The core architecture centers on a single Icecast stream, ensuring all listeners receive the same broadcast simultaneously. An AI DJ, powered by swappable LLM providers (e.g., Ollama, OpenAI) and TTS engines (e.g., Piper, ElevenLabs), selects music from the user's Navidrome library and generates between-track commentary, station idents, and weather updates. Music selection can be influenced by time of day, weather, and mood, with custom skills allowing for extensible DJ segments. The system runs self-hosted via Docker Compose.
Quick Start & Requirements
curl -fsSL https://cli.getsubwave.com | sh followed by subwave setup. Raw Docker install involves downloading docker-compose.yml and .env.example, configuring .env, and running docker compose up -d.Highlighted Details
Maintenance & Community
Community support is available via a Discord server. Contribution guidelines are provided in CONTRIBUTING.md. The project appears actively maintained, with tagged releases published to GHCR.
Licensing & Compatibility
The project is licensed under the MIT license, which is permissive for commercial use and integration into closed-source projects.
Limitations & Caveats
The design intentionally omits listener-side skip buttons and per-listener shuffling, prioritizing a traditional radio broadcast feel. Certain core components, like the controller code, require a rebuild rather than a simple restart due to build-time asset copying. Several subsystems, including the queue, playback path, crossfade, and LLM layer, have non-obvious constraints that require careful attention during modification, as detailed in CLAUDE.md.
1 day ago
Inactive
openinterpreter