Tidal CLI

Control Tidal music streaming from the terminal. Use when the user wants to search Tidal's catalog (artists, albums, tracks, videos, playlists), manage playl...

MIT-0 · Free to use, modify, and redistribute. No attribution required.
0 · 51 · 0 current installs · 0 all-time installs
byLuca@lucaperret
MIT-0
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The skill is a Tidal CLI wrapper and requires the tidal-cli binary; the install spec (npm package @lucaperret/tidal-cli that provides tidal-cli) is consistent with the description and expected functionality.
Instruction Scope
Runtime instructions are focused on Tidal operations (search, playlists, playback). They explicitly instruct the user to run 'tidal-cli auth' which opens a browser and persists credentials to ~/.tidal-cli/session.json (expected for an OAuth-like flow). Example workflows use jq for JSON manipulation and show how to fetch playback URLs — jq is not listed as a required binary and image rendering is suggested, so the agent/operator should ensure those client-side tools/support exist. The instructions do not direct data to unexpected external endpoints beyond Tidal/auth flow.
Install Mechanism
Install uses a named npm package (@lucaperret/tidal-cli) to create the tidal-cli binary. This is a standard mechanism for delivering a CLI via Node; it is moderate-risk by nature of third-party packages but is proportionate for a CLI skill.
Credentials
The skill requests no environment variables or unrelated credentials. It does write session credentials to ~/.tidal-cli/session.json as part of normal auth; no broad or unrelated secrets are requested.
Persistence & Privilege
The skill is not marked always:true and does not request system-wide configuration changes. Its persistent footprint is the session file in the user's home directory (expected for CLI auth). Autonomous invocation (default) is allowed but not combined with other concerning capabilities.
Scan Findings in Context
[no_code_files_detected] expected: No code files present; this is an instruction-only skill that relies on an external npm package. The regex scanner had nothing local to analyze, which is expected for this packaging model.
Assessment
This skill appears coherent: it installs an npm CLI and tells the agent to use that binary and its auth flow. Before installing, review the npm package (@lucaperret/tidal-cli) source or its npm page to confirm the publisher is trustworthy. Be aware that 'tidal-cli auth' will open your browser and store session credentials at ~/.tidal-cli/session.json — protect that file like any credential. Examples use jq and recommend rendering cover images; ensure you have jq or equivalent tooling if you want to run the provided pipelines. Finally, because third-party npm packages can run arbitrary code during install, consider auditing the package or installing in a controlled environment if you do not trust the publisher.

Like a lobster shell, security has layers — review code before you run it.

Current versionv1.1.2
Download zip
latestvk97884qsfy2ar5ad1dxr60j97d8315zj

License

MIT-0
Free to use, modify, and redistribute. No attribution required.

Runtime requirements

Binstidal-cli

Install

Install tidal-cli (npm)
Bins: tidal-cli
npm i -g @lucaperret/tidal-cli

SKILL.md

tidal-cli

CLI for Tidal music streaming. Search catalog, manage playlists, control library, play tracks, explore artists, discover new music.

First-Time Setup

If tidal-cli is not authenticated, run auth first. This opens the user's browser for Tidal login (one-time):

tidal-cli auth

Credentials persist at ~/.tidal-cli/session.json and auto-refresh.

Search

tidal-cli --json search artist "Radiohead"
tidal-cli --json search album "OK Computer"
tidal-cli --json search track "Karma Police"
tidal-cli --json search video "Paranoid Android"
tidal-cli --json search playlist "90s Rock"

JSON output returns [{id, type, name, extra: {popularity, duration, ...}}].

Artist

tidal-cli --json artist info <id>        # name, bio, genres, popularity
tidal-cli --json artist tracks <id>      # top tracks
tidal-cli --json artist albums <id>      # discography
tidal-cli --json artist similar <id>     # similar artists

Track

tidal-cli --json track info <id>         # title, artists, album, duration, ISRC, BPM, key
tidal-cli --json track similar <id>      # similar tracks

Playlists

tidal-cli --json playlist list
tidal-cli --json playlist create --name "My Playlist" --desc "Description"
tidal-cli --json playlist rename --playlist-id <id> --name "New Name"
tidal-cli --json playlist delete --playlist-id <id>
tidal-cli --json playlist add-track --playlist-id <id> --track-id <track-id>
tidal-cli --json playlist remove-track --playlist-id <id> --track-id <track-id>
tidal-cli --json playlist add-album --playlist-id <id> --album-id <album-id>

Library / Favorites

tidal-cli --json library add --artist-id <id>
tidal-cli --json library add --album-id <id>
tidal-cli --json library add --track-id <id>
tidal-cli --json library remove --artist-id <id>

Recommendations & User

tidal-cli --json recommend              # My Mixes, Discovery, New Arrivals
tidal-cli --json user profile           # account info

Playback

tidal-cli playback play <track-id>
tidal-cli playback play <track-id> --quality LOSSLESS
tidal-cli --json playback info <track-id>
tidal-cli --json playback url <track-id>

Quality options: LOW, HIGH, LOSSLESS, HI_RES.

Agent Patterns

Always use --json for programmatic access. Place it before the subcommand.

Search then act:

TRACK_ID=$(tidal-cli --json search track "Bohemian Rhapsody" | jq -r '.[0].id')
tidal-cli --json playlist add-track --playlist-id <id> --track-id "$TRACK_ID"

Create themed playlist:

PL_ID=$(tidal-cli --json playlist create --name "Road Trip" | jq -r '.id')
# search and add tracks using $PL_ID

Discovery workflow (search artist -> similar -> top tracks -> add to playlist):

ARTIST_ID=$(tidal-cli --json search artist "Portishead" | jq -r '.[0].id')
SIMILAR=$(tidal-cli --json artist similar "$ARTIST_ID" | jq -r '.[0].id')
TRACK_ID=$(tidal-cli --json artist tracks "$SIMILAR" | jq -r '.[0].id')
tidal-cli --json playlist add-track --playlist-id <id> --track-id "$TRACK_ID"

Cover art: track info and album info return a coverUrl field (640x640 JPEG). Always show it to the user when displaying track or album details — render it as an image.

Exit codes: 0 = success, 1 = error, 2 = missing argument. Errors go to stderr with Error: prefix.

Files

1 total
Select a file
Select a file to preview.

Comments

Loading comments…