Convert Figma logo to code with AI

nukeop logonuclear

Streaming music player that finds free music for you

16,996
1,262
16,996
170

Top Related Projects

8,468

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++

17,078

Music streaming solution that works.

19,689

๐ŸŽงโ˜๏ธ Your Personal Streaming Service

10,583

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:

  1. Visit the Nuclear releases page on GitHub.
  2. Download the appropriate version for your operating system.
  3. Install the application following the instructions for your platform:
    • Windows: Run the .exe installer
    • macOS: Open the .dmg file and drag Nuclear to your Applications folder
    • Linux: Use the AppImage or distribution-specific package
  4. 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

8,468

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.

17,078

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.

19,689

๐ŸŽงโ˜๏ธ 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.

10,583

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 Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Nuclear Music Player

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 Music Player - Dashboard

Nuclear comes with multiple built-in themes:

Green theme Aqua theme Mint theme

Orange theme Red theme Violet theme

Search artistsSearch albums
Artist searchAlbum search
PlaylistsPlugin store
PlaylistsPlugin store
Installed pluginsPreferences
Installed pluginsPreferences
What's newLog viewer
What's newLog viewer

Download

Grab the latest release for your platform from the Releases page.

PlatformFormats
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.

NPM DownloadsLast 30 Days