https://github.com/uwu/neptune
an experimental client mod for TIDAL
https://github.com/uwu/neptune
plugin theme themes tidal
Last synced: over 1 year ago
JSON representation
an experimental client mod for TIDAL
- Host: GitHub
- URL: https://github.com/uwu/neptune
- Owner: uwu
- License: ms-pl
- Created: 2023-06-24T00:32:00.000Z (about 3 years ago)
- Default Branch: master
- Last Pushed: 2025-03-05T15:58:10.000Z (over 1 year ago)
- Last Synced: 2025-04-05T11:39:44.941Z (over 1 year ago)
- Topics: plugin, theme, themes, tidal
- Language: JavaScript
- Homepage:
- Size: 2.31 MB
- Stars: 209
- Watchers: 3
- Forks: 9
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README

## what is neptune?
neptune was an experimental client mod for TIDAL that provides a simple plugin and theme system.
i have no interest in maintaining software that nobody wants to contribute to. if you want to make your own thing, i highly prefer that you commit to it.
## screenshot(s)

## how can i install neptune?
you can download the neptune installer [here](https://github.com/uwu/neptune-installer/releases).
### NixOS
> [!WARNING]
> TIDAL-HIFI right now is colliding with neptune when trying to login
>
> create a nix-shell with tidal-hifi and login once, after that you can use the neptune package
you install this package as an overlay
add as an input in your flakes:
```nix
inputs = {
neptune = {
url = "github.com:uwu/neptune";
inputs.nixpkgs.follows = "nixpkgs";
}
};
```
configure your package system to use this overlay:
```nix
nixpkgs.overlays = [ inputs.neptune.overlays.default ];
```
and then just add neptune as a package:
```nix
enivronment.systemPackages = [ pkgs.neptune ];
```
After that you can find TIDAL-HIFI as program in your system
## developing plugins for neptune
neptune exfiltrates every single action one can do in TIDAL into an easily accessible API found on `window.neptune.actions`.
TIDAL is built on [Redux](https://redux.js.org) and neptune's actions are simply exfiltrated Redux actions, which are explained in [this document](https://redux.js.org/tutorials/fundamentals/part-2-concepts-data-flow#actions) on Redux's website.
neptune includes full type definitions for all of TIDAL's actions.
To get the global Redux store's state, you can use `window.neptune.store.getState()`. The return value of `getState()` will change as a direct result of actions.
To intercept and subscribe to actions, you can use `window.neptune.intercept("category/ACTION_NAME", ([payload]) => {})`, with the first argument being the name (or an array of names) of the action(s) to subscribe to, and the second argument being a function that gets called upon that action being ran. If you return `true` the action will automatically be cancelled.
A template for making neptune plugins is available [here](https://github.com/uwu/neptune-template).