Skip to content

vdawg-git/moo

Repository files navigation

Moo

Sick terminal music player

Warning

The app is in early development. There are bugs and a lot of features I still need to implement.

Features

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

How to use

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

Config

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.

Smart playlists

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']

Install

You can use the provided flake or just clone the repo and run bun prod.

Requirements

You can also change all Nerdfont icons to regular letters in the config though.

Credits

  • OpenTui: TUI library which powers the app. It's awesome.
  • Tuir: React TUI library which powered the app. Now unmaintained.
  • Kew: Design inspiration
  • Musikcube: Design inspiration

What's with the name?

Three letters are awesome for cli apps.

Also "Music" -> "Moosic" -> "Moo - Sick (terminal music player)"

About

Sick terminal music player

Resources

License

Stars

Watchers

Forks