Skip to content

First of its kind, A simple TUI online music streaming application written in c++ with easy vim motions, now with support for Model Context Protocol (MCP)

License

Notifications You must be signed in to change notification settings

Dark-Kernel/tuisic

TUISIC

TUI Online Music Streaming application with MCP support

tuisic3.mp4

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:

  1. Check releases

  2. Using AUR package

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

  1. 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
  1. If you want to use MPRIS then install sdbus-cpp
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
  1. 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

  1. Install dependencies
sudo pacman -S curl mpv fmt yt-dlp fftw sdbus-cpp rapidjson
  1. 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

  1. Install dependencies
brew install cmake pkg-config fftw mpv curl fmt rapidjson
  1. 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
  1. 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

  1. Screenshots: here scroll way down.
1762971302 2025-09-17_21-34-11
  1. Visualizer:
tuisic-visualizer-demo.mp4
  1. MCP Server:
tuisic-mcp-server-demo.mp4
  1. Discord Rich Presence:
1763375799

Thanks to all.

Contribution

It's open for contribution, read CONTRIBUTING.md for more information.

About

First of its kind, A simple TUI online music streaming application written in c++ with easy vim motions, now with support for Model Context Protocol (MCP)

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Packages

No packages published