mufetch
Like neofetch, but for music
Features
- Beautiful terminal display with album cover art and artist photos
- Comprehensive metadata including tracks, albums, and artist information
- Interactive clickable links for Spotify URLs and cover art
- Responsive sizing via customizable image dimensions
- Cross-platform support, works in all modern terminals
Supported Content Types
| Type |
Metadata Displayed |
| Tracks |
Name, Artist, Album, Duration, Track Number, Explicit, Release Date, Popularity, Genres |
| Albums |
Name, Artist, Type, Release Date, Track Count, Duration, Popularity, Genres, Label, Top Tracks |
| Artists |
Name, Followers, Popularity, Genres, Albums & Singles Count, Top Tracks |
Installation
Via go install
go install github.com/ashish0kumar/mufetch@latest
Build from Source
git clone https://github.com/ashish0kumar/mufetch.git
cd mufetch/
go build
sudo mv mufetch /usr/local/bin/
mufetch --help
Setup
1. Get Spotify API Credentials
- Go to Spotify Developer Dashboard
- Log in with your Spotify account
- Click "Create an App"
- Fill in app name and description
- Copy your Client ID and Client Secret
Run the authentication setup
mufetch auth
Enter your Spotify Client ID: your_client_id_here
Enter your Spotify Client Secret: your_client_secret_here
Usage
Basic Commands
Auto-detect and search for music
mufetch search "Bohemian Rhapsody"
mufetch search "Smells Like Teen Spirit"
mufetch search "Let It Happen"
Search specific content types
mufetch search "Hotel California" --type track
mufetch search "Pink Floyd" --type artist
mufetch search "Ok Computer" --type album
Customize image size (20-50)
mufetch search "All I Need" --size 25
mufetch search "Holland, 1945" -s 40
Search Types
track - Search for specific songs
album - Search for albums or EPs
artist - Search for musicians and bands
Image Sizing
- Default:
20x20 pixels
- Range:
20-50 pixels
Configuration
mufetch stores configuration in ~/.config/mufetch/config.yaml:
spotify_client_id: "your_client_id"
spotify_client_secret: "your_client_secret"
Environment Variables
You can also set credentials via environment variables:
export MUFETCH_SPOTIFY_CLIENT_ID="your_client_id"
export MUFETCH_SPOTIFY_CLIENT_SECRET="your_client_secret"
Contributing
Contributions are always welcome! Whether you want to:
- Report bugs or issues
- Suggest new features
- Improve the visual design
- Enhance documentation
- Submit code improvements
Please feel free to open an issue or submit a pull request.
Dependencies
- Cobra - CLI framework and command structure
- Viper - Configuration management
- Imaging - Image processing and resizing
License
MIT License
Acknowledgments
- Inspired by neofetch for system information display
- Thanks to Spotify Web API for music metadata
- Unicode block art technique inspired by various terminal image viewers