Warning
The app is in early development. There are bugs and a lot of features I still need to implement.
- Create smart playlists with a simple config (including autocompletion!)
- Easy to back up. It's just simple
.yml
files - Updates automatically when your library changes
- Easy to back up. It's just simple
- Easy to use
- Nice flexible runner a la VS Code.
- No need to remember every shortcut. Just type the first letters of what you want
- Simple Json5 config with out-of-the-box LSP support via JSON schema :)
- Customize it to your liking.
- (Chorded) keybindings, icons and more
- Custom layouts/colors will get added in the future
- Use ; to switch to other playlists.
- Use : to open the commandd runner.
- Enter to play the selected track.
- Space to toggle pause.
- Default keybindings use Vim mode.
You can find the config in ~/.config/moo/config.json5
.
To take full advantage of the format use an editor with a Yaml
LSP.
For VS Code you can install the Yaml Extention.
Create playlists as .yml
files in ~/.config/moo/playlists/
.
The filters can be as complex and deeply nested as you want :)
Here is an example of a playlist:
# yaml-language-server: $schema=https://raw.githubusercontent.com/vdawg-git/moo/refs/heads/main/other/schemas/mooPlaylist.json
rules:
- all:
- artist:
includes: ["Rick Astley", "Waterman"]
- title:
includes: ["never gonna give you up"]
- any:
- genre:
includes: "deephouse"
- all:
- artist:
starts_not_with: "Grass"
- genre:
includes: ['idk smth']
On Arch you can use the AUR via yay -S moo
.
-
Terminal with Nerdfonts support like Kitty or Ghostty or use a patched font.
You can also change all Nerdfont icons to regular letters in the config though.
- Install the required depedencies (mpv and Bun)
# Clone the repo
git clone [email protected]:vdawg-git/moo.git
cd moo
# Install the dependencies
bun install
# Compile into a single executable
bun compile
The executable app will be compiled into ./dist/moo