Top Related Projects
Mopidy is an extensible music server written in Python
Spotify for the terminal written in Rust ๐
a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Music streaming solution that works.
๐งโ๏ธ Your Personal Streaming Service
A spotify daemon
Quick Overview
Nuclear is a free, open-source music streaming program that pulls content from free sources all over the internet. It aims to provide a modern, feature-rich music player experience without relying on paid streaming services. The project is built using Electron, React, and Redux.
Pros
- Free and open-source
- Supports multiple music sources and platforms
- Cross-platform compatibility (Windows, macOS, Linux)
- Customizable user interface with themes
Cons
- Relies on third-party sources, which may have varying content availability
- Potential legal concerns regarding music streaming from unofficial sources
- May require more technical knowledge to set up compared to commercial alternatives
- Smaller user base and community compared to mainstream music players
Getting Started
To get started with Nuclear:
- Visit the Nuclear releases page on GitHub.
- Download the appropriate version for your operating system.
- Install the application following the instructions for your platform:
- Windows: Run the
.exeinstaller - macOS: Open the
.dmgfile and drag Nuclear to your Applications folder - Linux: Use the AppImage or distribution-specific package
- Windows: Run the
- Launch Nuclear and start exploring music!
For developers who want to contribute or run from source:
git clone https://github.com/nukeop/nuclear.git
cd nuclear
npm install
npm run start
This will clone the repository, install dependencies, and start the application in development mode.
Competitor Comparisons
Mopidy is an extensible music server written in Python
Pros of Mopidy
- Extensible architecture with a plugin system, allowing for easy integration of various music sources and frontends
- Supports multiple audio outputs and can be controlled remotely
- Well-documented API for developers to build upon
Cons of Mopidy
- Requires more technical setup and configuration compared to Nuclear
- Limited built-in GUI options, often relying on third-party web interfaces
- May have a steeper learning curve for non-technical users
Code Comparison
Mopidy (Python):
from mopidy import core
class MyFrontend(pykka.ThreadingActor, core.CoreListener):
def track_playback_started(self, tl_track):
print(f"Now playing: {tl_track.track.name}")
Nuclear (JavaScript):
import { useSelector } from 'react-redux';
const NowPlaying = () => {
const currentTrack = useSelector(state => state.player.currentTrack);
return <div>Now playing: {currentTrack.name}</div>;
};
Both projects handle music playback, but Mopidy focuses on server-side functionality with a plugin architecture, while Nuclear provides a complete desktop application with a modern React-based interface. Mopidy offers more flexibility for developers and advanced users, whereas Nuclear aims for a more user-friendly, out-of-the-box experience.
Spotify for the terminal written in Rust ๐
Pros of spotify-tui
- Lightweight and fast terminal-based interface
- Direct integration with official Spotify API
- Cross-platform compatibility (Linux, macOS, Windows)
Cons of spotify-tui
- Limited to Spotify's ecosystem, no support for other music sources
- Requires Spotify Premium account for full functionality
- Less visually appealing compared to GUI-based alternatives
Code Comparison
spotify-tui (Rust):
pub fn run() -> Result<()> {
let mut app = App::new()?;
let mut terminal = setup_terminal()?;
run_app(&mut terminal, &mut app)?;
restore_terminal(&mut terminal)?;
Ok(())
}
nuclear (JavaScript):
const app = electron.app;
const ipcMain = electron.ipcMain;
app.on('ready', () => {
createWindow();
setupIpcMain();
});
Key Differences
- spotify-tui is a terminal-based application written in Rust, focusing on efficiency and minimal resource usage
- nuclear is an Electron-based desktop application with a full GUI, offering a more visually rich experience
- spotify-tui is specific to Spotify, while nuclear supports multiple streaming services and local files
- nuclear provides a more comprehensive music management solution, including playlist creation and library organization
a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Pros of musikcube
- Written in C++, potentially offering better performance and lower resource usage
- Supports a wider range of audio formats natively
- Provides a terminal-based user interface, which can be beneficial for users who prefer lightweight, keyboard-driven applications
Cons of musikcube
- Limited to local music playback, lacking streaming capabilities
- Less modern and visually appealing interface compared to Nuclear's Electron-based GUI
- Smaller community and potentially slower development pace
Code Comparison
musikcube (C++):
void Player::Play(size_t index, ITrack* track) {
this->Stop();
this->QueueTrack(track);
this->playbackIndex = index;
this->Play();
}
Nuclear (JavaScript):
play = async (track) => {
await this.props.actions.clearQueue();
await this.props.actions.addToQueue(this.props.streamProviders, track);
await this.props.actions.playTrack(this.props.streamProviders, track);
};
Both examples show methods for playing a track, but musikcube's implementation is more low-level and directly interacts with the audio system, while Nuclear's approach is higher-level and relies on actions and state management.
Music streaming solution that works.
Pros of koel
- Web-based interface accessible from any browser, offering greater flexibility
- Built-in user management system for multi-user environments
- Supports streaming from various sources, including YouTube
Cons of koel
- Requires more setup and configuration compared to Nuclear's desktop application
- Limited offline functionality, as it primarily relies on web connectivity
- May have higher resource usage due to its server-client architecture
Code Comparison
koel (PHP):
public function play($songId)
{
$song = Song::findOrFail($songId);
event(new SongStartedPlaying($song, Auth::user()));
return response()->json($song);
}
Nuclear (JavaScript):
playTrack(track) {
this.props.actions.playTrack(track);
this.props.actions.addToQueue(track);
this.setState({ isPlaying: true });
}
Both projects handle playing tracks, but koel's implementation includes event logging and user authentication, while Nuclear's focuses on state management and queue manipulation.
๐งโ๏ธ Your Personal Streaming Service
Pros of Navidrome
- Self-hosted solution, giving users full control over their music library and data
- Supports a wide range of audio formats, including lossless formats like FLAC
- Lightweight and efficient, suitable for running on low-powered devices like Raspberry Pi
Cons of Navidrome
- Limited to streaming personal music libraries, lacking integration with online music services
- User interface may be less polished and feature-rich compared to Nuclear
- Requires more technical setup and maintenance as a self-hosted solution
Code Comparison
Nuclear (JavaScript):
import React from 'react';
import { withRouter } from 'react-router-dom';
import { connect } from 'react-redux';
import { bindActionCreators } from 'redux';
Navidrome (Go):
package server
import (
"net/http"
"strings"
"github.com/go-chi/chi/v5"
)
The code snippets show that Nuclear is built using React and Redux for the frontend, while Navidrome is primarily written in Go for the backend. This difference in technology stack reflects their distinct approaches: Nuclear as a cross-platform desktop application and Navidrome as a server-side streaming solution.
A spotify daemon
Pros of Spotifyd
- Lightweight and efficient, running as a daemon process
- Supports remote control via official Spotify apps
- Integrates seamlessly with existing Spotify ecosystem
Cons of Spotifyd
- Limited to Spotify's catalog and features
- Requires a Spotify Premium account
- Less customizable user interface compared to Nuclear
Code Comparison
Nuclear (JavaScript):
import React from 'react';
import { useSelector } from 'react-redux';
import { useTranslation } from 'react-i18next';
const Player = () => {
const { t } = useTranslation('player');
// ... more code
Spotifyd (Rust):
use librespot::playback::config::PlayerConfig;
use librespot::playback::player::Player;
use librespot::core::config::SessionConfig;
fn main() {
let session_config = SessionConfig::default();
// ... more code
Nuclear is a feature-rich, cross-platform music player with a focus on streaming from free sources, while Spotifyd is a lightweight Spotify client that runs as a UNIX daemon. Nuclear offers a more customizable experience with access to various music sources, whereas Spotifyd provides a seamless integration with the Spotify ecosystem. The code comparison highlights the different technologies used: Nuclear is built with JavaScript and React, while Spotifyd is implemented in Rust for efficiency and low-level control.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Nuclear is a free, open-source music player without ads or tracking. Search for any song or artist, build playlists, and start listening.
Runs on Windows, macOS, and Linux.
Screenshots
Nuclear comes with multiple built-in themes:
![]() | ![]() |
| Artist search | Album search |
![]() | ![]() |
| Playlists | Plugin store |
![]() | ![]() |
| Installed plugins | Preferences |
![]() | ![]() |
| What's new | Log viewer |
Download
Grab the latest release for your platform from the Releases page.
| Platform | Formats |
|---|---|
| Windows | .exe installer, .msi |
| macOS | .dmg (Apple Silicon and Intel) |
| Linux | .AppImage, .deb, .rpm, .flatpak |
Features
- Search for music and stream it from any source
- Browse artist pages with biographies, discographies, and similar artists
- Browse album pages with track listings
- Queue management with shuffle, repeat, and drag-and-drop reordering
- Favorites (albums, artists, and tracks)
- Playlists (create, import, export, import from varous services)
- Powerful plugin system with a built-in plugin store
- Themes (built-in and custom CSS themes)
- MCP server lets your AI agent drive the player
- Auto-updates
- Keyboard shortcuts
- Localized in multiple languages
Plugins
Nuclear has a powerful plugin system now! Every functionality has been redesigned to be driven by plugins.
Plugins can provide streaming sources, metadata, playlists, dashboard content, and more. Browse and install plugins from the built-in plugin store, or write your own using the @nuclearplayer/plugin-sdk.
MCP
You can enable the MCP server in Settings รขยย Integrations.
Then to add it to Claude Code:
claude mcp add nuclear --transport http http://127.0.0.1:8800/mcp
Codex CLI:
codex mcp add nuclear --url http://127.0.0.1:8800/mcp
OpenCode:
{
"mcp": {
"nuclear": {
"type": "remote",
"url": "http://127.0.0.1:8800/mcp"
}
}
}
Claude Desktop / Cursor / Windsurf:
{
"mcpServers": {
"nuclear": {
"url": "http://127.0.0.1:8800/mcp"
}
}
}
The MCP is designed to be discoverable, but there's a skill you can load to get your AI up to speed: Nuclear MCP Skill
Development
Nuclear is a pnpm monorepo managed with Turborepo. The main app is built with Tauri (Rust + React).
Prerequisites
- Node.js >= 22
- pnpm >= 9
- Rust (stable)
- Platform-specific Tauri dependencies (see Tauri docs)
Getting started
git clone https://github.com/nukeop/nuclear.git
cd nuclear
pnpm install
pnpm dev
Useful commands
pnpm dev # Run the player in dev mode
pnpm build # Build all packages
pnpm test # Run all tests
pnpm lint # Lint all packages
pnpm type-check # TypeScript checks
pnpm storybook # Run Storybook
Community
License
AGPL-3.0. See LICENSE.
Top Related Projects
Mopidy is an extensible music server written in Python
Spotify for the terminal written in Rust ๐
a cross-platform, terminal-based music player, audio engine, metadata indexer, and server in c++
Music streaming solution that works.
๐งโ๏ธ Your Personal Streaming Service
A spotify daemon
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot






