Display what you're listening to on your stream. Orpheus detects music from any app (Deezer, Spotify, Apple Music, YouTube...) and serves a customizable overlay for OBS.
- Cross-platform — Stable on macOS and Linux, experimental on Windows
- Universal detection — Works with any music app (Spotify, Deezer, Apple Music...)
- Real-time updates — SSE streaming with <50ms latency
- Community themes — Install themes from GitHub with one command
- Daemon mode — Runs in background, no terminal needed
brew install collectif-pixel/tap/orpheuscurl -fsSL https://raw.githubusercontent.com/collectif-pixel/orpheus/main/scripts/install.sh | bashNote: Linux requires
playerctlfor media detection. Install it with your package manager (apt install playerctl,pacman -S playerctl, etc.)
Warning: Windows support is experimental. You may encounter issues with Windows Defender blocking the binary or compatibility problems on ARM64 devices.
irm https://raw.githubusercontent.com/collectif-pixel/orpheus/main/scripts/install.ps1 | iex# Start server (background)
orpheus start
# Start with custom port
orpheus start --port 8080
# Keep terminal open
orpheus start --foreground
# Check status
orpheus status
# Stop server
orpheus stop
# Show current track
orpheus nowThen add http://localhost:4242/now-playing as a Browser Source in OBS.
# Browse & install from marketplace
orpheus search
# List installed themes
orpheus themes
# Install from GitHub
orpheus add @roseratugo/colorz
# Switch theme
orpheus use @roseratugo/colorz
# Update a theme
orpheus update @roseratugo/colorz
# Update all themes
orpheus update
# Remove theme
orpheus remove @roseratugo/colorzUse the theme template to get started:
gh repo create my-theme --template Collectif-Pixel/orpheus-theme-templateA theme is a single theme.html file that connects to the SSE endpoint:
<!DOCTYPE html>
<html>
<body>
<div id="track"></div>
<script>
const es = new EventSource('/api/stream');
es.addEventListener('track', (e) => {
const { title, artist, artwork } = JSON.parse(e.data);
document.getElementById('track').innerHTML = `${artist} - ${title}`;
});
</script>
</body>
</html>- Push your theme to GitHub
- Submit a PR to orpheus-themes registry
| Endpoint | Description |
|---|---|
GET /now-playing |
Serve current theme |
GET /api/now-playing |
Current track JSON |
GET /api/stream |
SSE real-time updates |
GET /api/health |
Health check |
git clone https://github.com/collectif-pixel/orpheus
cd orpheus
bun install
bun run dev