# Nuclear Documentation

Nuclear is a free, open-source music player without ads or tracking. Search for any song or artist, build playlists, and start listening. This documentation is for both users and developers.

## Quick links

| Site     | Website                                |
| -------- | -------------------------------------- |
| Website  | <https://nuclearplayer.com/>           |
| Github   | <https://github.com/nukeop/nuclear>    |
| Discord  | <https://discord.gg/JqPjKxE>           |
| Mastodon | <https://fosstodon.org/@nuclearplayer> |
| Gitbook  | <https://docs.nuclearplayer.com>       |

## For users

New to Nuclear? Start here:

* [Getting started](https://docs.nuclearplayer.com/nuclear/user-manual/getting-started) - install Nuclear and play your first song
* [How Nuclear works](https://docs.nuclearplayer.com/nuclear/core-concepts/how-nuclear-works) - understand the plugin model and how playback works
* [Plugins and providers](https://docs.nuclearplayer.com/nuclear/core-concepts/plugins-and-providers) - what plugins do and how to manage your sources
* [Installation](https://docs.nuclearplayer.com/nuclear/user-manual/installation) - platform-specific download and install instructions
* [Themes](https://docs.nuclearplayer.com/nuclear/theming/themes) - customize Nuclear's appearance with built-in, custom, or community themes

## What is in this repo?

This is a pnpm/turbo monorepo with these major packages:

* @nuclearplayer/player - Main Tauri app (React + Rust)
* @nuclearplayer/ui - Shared UI components
* @nuclearplayer/themes - Theming system and utilities
* @nuclearplayer/plugin-sdk - Plugin framework and helpers
* @nuclearplayer/model - Shared data model
* @nuclearplayer/hifi - Advanced HTML5 audio engine
* @nuclearplayer/i18n - Internationalization
* @nuclearplayer/storybook - Component demos
* @nuclearplayer/tailwind-config - Shared Tailwind v4 CSS config
* @nuclearplayer/eslint-config - Shared linting rules
* @nuclearplayer/tools - Build and maintenance utilities
* @nuclearplayer/docs - This documentation
* @nuclearplayer/website - Project website

## For developers

### Tech highlights

* TypeScript everywhere
* Tauri (desktop shell)
* React 18
* Tailwind v4 configured via CSS (@theme/@layer), no tailwind.config.js
* TanStack Router (routing)
* TanStack Query v5 (HTTP and client‑side server state; no backend server)
* Vitest + React Testing Library (tests)
* Coverage via V8 with CI reporting

### Common workspace tasks

Run these from the repo root:

```bash
pnpm dev            # Run player (and UI) in dev mode
pnpm build          # Build all packages
pnpm lint           # Lint all packages
pnpm test           # Run all tests
pnpm test:coverage  # Run tests with coverage
pnpm type-check     # TypeScript checks
pnpm tauri          # Tauri CLI for the player
pnpm storybook      # Run Storybook
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nuclearplayer.com/nuclear/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
