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 .ymlfiles
- 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/master/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']You can use the provided flake or just clone the repo and run bun prod.
- 
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 compileThe executable app will be compiled into ./dist/moo