TUISIC
TUI Online Music Streaming application with MCP support
https://github.com/user-attachments/assets/ef349a06-0d7e-488b-aa3d-de928d9b0eef
First app of its kind, It let's you search and play online songs from cli hassle free. Now it supports AI integration through MCP (BETA). Checkout Demo's below
Features
- Vim motions
- No browser, No Ads
- Easy downloads
- Multiple song sources
- Playlist support
- Easy Sharing
- Favourites List
- Configuration file
- Daemon mode (BETA, press 'w' to toggle)
- MPRIS DBUS support ( via
playerctl) - Cava Visualizer (BETA)
- Support for AI Integration via MCP (BETA)
- Support for Discord Rich Presence
- Lyrics support (BETA)
Shortcuts
| Key | Action |
|---|---|
q | quit |
w | toggle daemon mode |
> | next song |
< | previous song |
<space> | play/pause |
Alt+l | copy url |
d | download song |
a | add to favourites |
. | seek forward |
, | seek backward |
m | mute |
L | Toggle lyrics |
Sources
It fetches songs from some platforms:
- JioSaavn
- SoundCloud
- LastFM
- ForestFM
- YouTube
- YouTube Music (on the way)
Installation:
yay -S tuisic-git
Building from source
Build Options
| CMake Flag | Description | Default |
|---|---|---|
-DWITH_MPRIS | Enable MPRIS (sdbus-c++) support | ON |
-DWITH_CAVA | Enable Cavacore-based visualizer | OFF |
-DWITH_DISCORD | Enable Discord Rich Presence | OFF |
Before Installation
Update the desktop/tuisic.desktop file.
Exec=alacritty -e tuisic # Change terminal accordingly
Debian
- Install dependencies
sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config libfftw3-dev libmpv-dev libcurl4-openssl-dev libfmt-dev libsystemd-dev rapidjson-dev libpulse-dev
git clone --depth 1 https://github.com/Kistler-Group/sdbus-cpp.git
cd sdbus-cpp
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build .
sudo cmake --build . --target install
- Build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
Arch Linux
- Install dependencies
sudo pacman -S curl mpv fmt yt-dlp fftw sdbus-cpp rapidjson
- Build
cmake .. -DCMAKE_BUILD_TYPE=Release
cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
MacOS
- Install dependencies
brew install cmake pkg-config fftw mpv curl fmt rapidjson
- Set environment variables for Homebrew paths
# Detect Homebrew prefix (Apple Silicon uses /opt/homebrew, Intel uses /usr/local)
BREW_PREFIX=$(brew --prefix)
export HOMEBREW_PREFIX=${BREW_PREFIX}
export PKG_CONFIG_PATH=${BREW_PREFIX}/lib/pkgconfig:${BREW_PREFIX}/opt/curl/lib/pkgconfig:${BREW_PREFIX}/opt/fmt/lib/pkgconfig
export CMAKE_PREFIX_PATH=${BREW_PREFIX}
export LDFLAGS=-L${BREW_PREFIX}/lib
export CPPFLAGS=-I${BREW_PREFIX}/include
- Build
cmake .. \
-DWITH_MPRIS=OFF \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_PREFIX_PATH="${HOMEBREW_PREFIX}"
cmake --build . --config Release -j$(nproc 2>/dev/null || sysctl -n hw.ncpu 2>/dev/null || echo 2)
MISC Build, Compile & Install
mkdir build && cd build
cmake .. # -DWITH_MPRIS=OFF -DWITH_CAVA=ON
make
sudo make install
Configure MCP
Use tuisic --mcp-server command in your ai client config.
Example in .config/opencode/opencode.json:
"tuisic":{
"type": "local",
"command": ["/path/to/tuisic/build/tuisic", "--mcp-server"],
"enabled": true
}
DEMOS
- Screenshots: here scroll way down.
- Visualizer:
https://github.com/user-attachments/assets/1f512307-7c70-466d-9cd0-529e195871d0
- MCP Server:
https://github.com/user-attachments/assets/7601312a-9bca-4970-90a3-4a917fbe2fda
- Discord Rich Presence:
Thanks to all.
Contribution
It's open for contribution, read CONTRIBUTING.md for more information.