# tidal-cli
[](https://www.npmjs.com/package/@lucaperret/tidal-cli)
[](https://github.com/lucaperret/tidal-cli/actions)
[](https://smithery.ai/servers/lucaperret/tidal)
[](LICENSE)
[](https://nodejs.org)
## About
tidal-cli wraps the [Tidal API v2](https://developer.tidal.com) into a single command-line tool. Search the catalog, manage playlists, explore artists, play tracks, and handle your library — all without opening a browser. Every command supports `--json` output, making it the backbone for LLM agent automation through [OpenClaw](https://openclaw.ai).
## Features
- **Search** artists, albums, tracks, videos, playlists, and autocomplete suggestions
- **Artists** — info, top tracks, discography, similar artists, radio
- **Albums** — details, barcode lookup
- **Tracks** — info, similar tracks, ISRC lookup, radio
- **Playlists** — full CRUD, add/remove tracks, reorder, add entire albums
- **Library** — favorites for artists, albums, tracks, videos, playlists
- **Playback** — stream info, direct URLs, local playback via DASH
- **Recommendations** — personalized mixes (Daily, Discovery, New Release, Offline) with drill-down into mix items
- **History** — recently added tracks, albums, artists; search history (list, delete, clear)
- **Save for Later** — bookmark items in a separate queue from your main library
- **Sharing** — generate public share links for tracks and albums
- **JSON output** on every command for scripting and agent use
## Installation
```bash
npm install -g @lucaperret/tidal-cli
```
### Requirements
- Node.js >= 20
- A [Tidal](https://tidal.com) account
## Quick Start
```bash
# Sign in once — opens your browser
tidal-cli auth
# Search for a track
tidal-cli search track "Around the World"
# Get artist details
tidal-cli artist info 8992
# Play a track
tidal-cli playback play 5756235
```
## Usage
### Search
```bash
tidal-cli search artist "Gorillaz"
tidal-cli search album "Mezzanine"
tidal-cli search track "Teardrop"
tidal-cli search video "Stylo"
tidal-cli search playlist "Electronic"
tidal-cli search suggest "daft punk"
tidal-cli search editorial "indie rock"
```
### Artist
```bash
tidal-cli artist info
tidal-cli artist tracks
tidal-cli artist albums
tidal-cli artist similar
tidal-cli artist radio
```
### Album & Track
```bash
tidal-cli album info
tidal-cli album barcode
tidal-cli track info
tidal-cli track similar
tidal-cli track isrc
tidal-cli track radio
```
### Playlists
```bash
tidal-cli playlist list
tidal-cli playlist create --name "Late Night Electronic"
tidal-cli playlist add-track --playlist-id --track-id
tidal-cli playlist add-album --playlist-id --album-id
tidal-cli playlist remove-track --playlist-id --track-id
tidal-cli playlist move-track --playlist-id --track-id --before
tidal-cli playlist rename --playlist-id --name "New Name"
tidal-cli playlist set-description --playlist-id --desc "Updated description"
tidal-cli playlist delete --playlist-id
```
### Library
```bash
tidal-cli library add --track-id
tidal-cli library add --artist-id
tidal-cli library add --album-id
tidal-cli library add --video-id
tidal-cli library remove --track-id
tidal-cli library favorite-playlists
tidal-cli library add-playlist --playlist-id
tidal-cli library remove-playlist --playlist-id
```
### Discovery & History
```bash
tidal-cli recommend # all mix categories
tidal-cli recommend --type daily # daily | discovery | new-release | offline
tidal-cli mix items --type daily # tracks inside a specific mix
tidal-cli history tracks
tidal-cli history albums
tidal-cli history artists
tidal-cli search history # your recent searches
tidal-cli search history-delete
tidal-cli search history-clear
tidal-cli user profile
```
### Save for Later & Sharing
```bash
tidal-cli saved list
tidal-cli saved add --type tracks --id # tracks | albums | artists | playlists | videos
tidal-cli saved remove --type albums --id
tidal-cli share track # creates a public share link
tidal-cli share album
```
### Playback
```bash
tidal-cli playback play
tidal-cli playback play --quality LOSSLESS
tidal-cli playback info
tidal-cli playback url
```
Quality options: `LOW`, `HIGH`, `LOSSLESS`, `HI_RES`.
## JSON Output
Add `--json` before any subcommand:
```bash
tidal-cli --json search track "Around the World"
tidal-cli --json playlist list
tidal-cli --json artist similar 8992
```
## MCP Server (Claude Integration)
tidal-cli is available as a remote MCP server for [Claude Desktop](https://claude.ai), [Smithery](https://smithery.ai/servers/lucaperret/tidal), and any MCP-compatible client.
**Connect in Claude Desktop:**
1. Settings → Connectors → Add custom connector
2. Enter: `https://tidal-cli.lucaperret.ch/api/mcp`
3. Click "Connect" → log in to Tidal → done
40 tools with OAuth authentication, safety annotations, and 3 prompt templates.
## Agent Automation
tidal-cli is also available as an [OpenClaw](https://openclaw.ai) skill on [ClawHub](https://clawhub.ai/lucaperret/tidal-cli). Install it for your AI agent:
```bash
clawhub install tidal-cli
```
After `tidal-cli auth`, agents can run commands non-interactively with auto-refreshing tokens.
### Example prompts for your AI agent
- "Create a playlist with the best tracks from Daft Punk's Discovery album"
- "Find artists similar to Massive Attack and add their top tracks to my library"
- "What are my playlists? Add the new LCD Soundsystem album to the first one"
- "Play me something by Boards of Canada"
- "Build a 2000s indie rock playlist with The Strokes, Arctic Monkeys, and Interpol"
### Scripting patterns
```bash
# Search then act
TRACK=$(tidal-cli --json search track "Around the World" | jq -r '.[0].id')
tidal-cli playlist add-track --playlist-id --track-id "$TRACK"
# Discovery: artist → similar → top tracks → playlist
ARTIST=$(tidal-cli --json search artist "Boards of Canada" | jq -r '.[0].id')
SIMILAR=$(tidal-cli --json artist similar "$ARTIST" | jq -r '.[0].id')
TRACK=$(tidal-cli --json artist tracks "$SIMILAR" | jq -r '.[0].id')
tidal-cli playlist add-track --playlist-id --track-id "$TRACK"
```
## Development
```bash
git clone https://github.com/lucaperret/tidal-cli.git
cd tidal-cli
npm install
npm run build
npm test
```
### Running Tests
```bash
npm test # run once
npm run test:watch # watch mode
```
143 tests covering search, playlists, artists, tracks, albums, library, recommendations, mixes, save-for-later, sharing, search history, auth, and session.
## License
tidal-cli is licensed under the MIT License. See the [`LICENSE`](LICENSE) file for details.