AI repository intelligence
FR-AI / ANALYSISWhy it is worth attention
It combines a full-featured TUI with MPD support, mouse input, album art rendering, and a spectrum visualizer, all built in Haskell for performance and type safety.
Who it is for
- in-depth music lovers
- Haskell developers interested in terminal applications
- users who prefer keyboard/mouse-driven TUI music players
- MPD users seeking a rich visual interface
Use cases
- Controlling MPD playback with a mouse-enabled terminal interface
- Viewing album art directly in terminals like Kitty, Ghostty, or iTerm2
- Monitoring audio spectrum while listening to music
- Managing play queue and album lists with drag-and-drop panels
Strengths
- Full mouse input support and draggable control panels
- Real album art display without external image viewers
- Built on the proven MPD ecosystem for reliable music playback
- Compact and elegant TUI design with a built-in spectrum visualizer
Considerations
- Still under development with many roadmap features missing (e.g., equalizer, lyrics, vim-like commands)
- Requires external tools (Magick, Chafa) and optional Node.js for config editing
- Contribution guidelines discourage structural changes, potentially slowing feature additions
README quick start
Meloid = Melody + Monoid.
This is a command-line music player fully in Haskell for in-depth music lovers,
yet under development.
Prerequisite
1. Make sure you have Magick and Chafa installed on your computer. They power
the generic terminal image pipeline for image files and embedded MPD art.
2. To persist edits back into `config.yaml` while preserving comments and
formatting, install `nodejs`, then run `npm install --prefix tools`. If you use
a non-default Node executable, set `MELOID_NODE=/path/to/node`.
Roadmap
[x] Full mouse input support
[x] Real album art image display on terminals like Kitty, Ghostty and ITerm
[x] Compact and elegant control panels and draggable bars
[x] Built to Music Player Daemon (MDP)
[x] Album list and track display
[x] Current playing queue
[x] Play music
[ ] Vim-like commands and mode switch
[ ] Mouseless support (Tab-based focus ring)
[x] A setting layout
[ ] Custom output device and software
[x] Spectrum/Frequency visualizer
[ ] Equalizer
[ ] Dynamic volume adjustion
[ ] Viewport for live lyrics
[ ] Playlist panel and functionality
[ ] Rate the song or album
[ ] Soulseek backend support
...
Contributing
You seem to have noticed that there are many things not yet crossed in the roadmap.
Do you have any ideas ? Great! However, you need to follow the following guidelines
before you submit the patch.
- Please make sure the change you've made consistent with the code style in the
project.
- Any big changes? Please talk to me first. Let's talk in issues, discussions or even
Discord groups.
- Reliability is from a strong type system but also strengthened by every comment
and documentation you make in your submission.
- It is not recommended to make any structural change to the codes. It is more
preferred to focus on one specific issue in each contribution.
- I hope all warnings are intolerable for you
About release
First version will be soon.
