All plugins

tidal

TIDAL for Hermes Agent: five tools (playback through local mpv, search, playlists, library, mixes) over the unofficial TIDAL API via tidalapi. Login is TIDAL's own PKCE login flow (hermes tidal login) — no developer app needed. Playback runs on the Hermes machine (mpv); TIDAL has no remote-device API like Spotify Connect. Needs a TIDAL subscription (any tier). Disclosure — unofficial TIDAL integration (community tidalapi library using TIDAL's own app client); stores your TIDAL access and refresh token in plaintext (owner-only, 0600) under $HERMES_HOME/plugin-data/tidal/ and refreshes it itself; playback spawns a detached local mpv process with an IPC socket and plays audio on the Hermes machine.

lEWFkRADToolsv0.1.0Updated 15 days ago

About

TIDAL for Hermes Agent: five tools (playback through local mpv, search, playlists, library, mixes) over the unofficial TIDAL API via tidalapi. Login is TIDAL's own PKCE login flow (hermes tidal login) — no developer app needed. Playback runs on the Hermes machine (mpv); TIDAL has no remote-device API like Spotify Connect. Needs a TIDAL subscription (any tier). Disclosure — unofficial TIDAL integration (community tidalapi library using TIDAL's own app client); stores your TIDAL access and refresh token in plaintext (owner-only, 0600) under $HERMES_HOME/plugin-data/tidal/ and refreshes it itself; playback spawns a detached local mpv process with an IPC socket and plays audio on the Hermes machine.

TIDAL for Hermes Agent

A Hermes plugin that gives the agent five TIDAL tools — playback, search,
playlists, library, and mixes — over the unofficial TIDAL API via
tidalapi.

Tools

| Tool | What it does |
|---|---|
| tidal_playback | Play TIDAL music through this machine's speakers (mpv) and control it (play/pause/stop/volume/seek/status) |
| tidal_search | Search tracks, albums, artists, and playlists |
| tidal_playlists | List, inspect, create, and add to your playlists |
| tidal_library | Your favorites and saved albums/tracks |
| tidal_mixes | Your TIDAL mixes and radio |

Playback runs on the machine Hermes runs on, through a local mpv process —
TIDAL has no remote-device API like Spotify Connect, so there is no way to
play on a phone or speaker from here.

Requirements

  • Hermes Agent >= 0.21.6
  • A TIDAL subscription (any tier)
  • mpv installed on the machine (playback only; search/library tools work without it)
  • Linux or macOS for playback (the player talks to mpv over a Unix socket)
  • Python dependency: tidalapi>=0.8.11,<0.9 (declared in pyproject.toml)

Login

Login is TIDAL's own PKCE flow — no developer app or API key needed:

hermes tidal login

The command prints a TIDAL login URL. Open it, log in with your TIDAL
account, and when the browser lands on an "Oops" page, copy that page's
URL from the address bar and paste it back to finish the login. The
session is saved to <Hermes profile home>/plugin-data/tidal/session.json (tidalapi's own
session file format).

Check state or log out with:

hermes tidal status
hermes tidal logout

Tools stay hidden until a login exists: the toolset's availability check
only passes when a saved session is present.

Quality

The plugin manifest declares one config option, quality
(low | high | lossless | hi_res, default high) — the ceiling for
streamed audio. lossless / hi_res need a HiFi Plus tier and enough
bandwidth.

Notes

  • This is an unofficial integration built on the community tidalapi
    library; it is not affiliated with or endorsed by TIDAL.
  • Author: lewfkrad (built by Hermes on the author's laptop).

Login requires an interactive terminal and keeps PKCE state in memory.
Session files have owner-only POSIX permissions; Windows privacy follows the
profile directory ACL. Player state and its socket use the same profile directory.
Older shared sessions are not imported across profiles; log in in each profile.

README from the reviewed commit 85c864a; it updates when the author re-pins.

More by lEWFkRAD

6 plugins by lEWFkRAD in the catalog.

lEWFkRADdocument-readerProfile-scoped document OCR for Hermes Desktop and HUD, with a guarded per-profile Windows service.CommunityDesktop app4lEWFkRADnetplaneInstall, configure and operate a self-hosted Headscale control plane from Hermes. netplane_setup previews a configuration and, after approval, installs the pinned official Headscale v0.29.6 DEB on a fresh Debian 12+ or Ubuntu 22.04+ systemd host (amd64/arm64). Installation runs on the Hermes host, requires root or noninteractive sudo, refuses existing deployments, and verifies the package SHA-256. It configures SQLite, MagicDNS, embedded DERP/STUN, local admin gRPC, and either Let's Encrypt HTTPS or a loopback backend for an existing reverse proxy. It starts the system service, creates the first user, and saves a 90-day API key and connection settings through Hermes's active-profile APIs. netplane_status reports health, netplane_nodes lists devices, and netplane_preauth lists metadata without stored join secrets or creates an approval-gated, single-use-by-default join key with a 1–168 hour lifetime. Desktop includes setup preview/confirmation, health, nodes, join keys and confirmed node expiration, with a FastAPI backend. Management requires NETPLANE_APIKEY; setup works before a key exists. Bundled protobuf stubs use pinned sources and a compatible toolchain. Disclosure — the netplane_setup tool (after Hermes approval) and the Desktop pane (after confirmation) install the pinned official Headscale v0.29.6 DEB as root through noninteractive sudo on the Hermes host, downloading it from GitHub (SHA-256 verified) and possibly contacting configured APT repositories; it writes /etc/headscale, /var/lib/headscale and a systemd drop-in, and enables a persistent headscale service that in Let's Encrypt mode listens publicly on TCP 80/443 and UDP 3478 (admin gRPC and metrics stay on loopback); Let's Encrypt receives the chosen domain and email; setup saves a new 90-day Headscale API key as NETPLANE_APIKEY in the active Hermes profile; management reads credentials only from Hermes and uses TLS with system trust off-host; approved join-key creation returns the key into the chat; status runs systemctl is-active headscale and tailscale serve status; no telemetry and no automatic software updates.CommunitytoolslEWFkRADsunshine-moonlightSet up and diagnose Moonlight game streaming (Sunshine host <-> Moonlight client) between machines that run Hermes. One tool, action-based: discover hosts on the tailnet/LAN, preflight ports, install+start Sunshine, pair clients, verify encoders, and launch a stream. Writes to remote machines only over SSH and only when the action says so. Disclosure — runs shell commands as your user on this machine and, over SSH, on hosts you name (BatchMode, your existing keys); `install` runs `sudo` with your package manager to install `sunshine` or `moonlight-qt` without a Hermes approval prompt; `configure`/`start` rewrite Sunshine's config (with a backup) and restart its user service; `discover` reads `tailscale status` and port-probes your tailnet peers; `launch` starts a Moonlight process. No credentials stored, no telemetry.CommunitytoolslEWFkRADwireguardRead-only status and peer list for a WireGuard server running on the same Windows machine as Hermes. Two tools: vpn_status (service state, tunnel address and port, server public key, per-peer handshake and transfer) and vpn_peers (the peer list only). The plugin runs only wg.exe show, sc.exe query, and one PowerShell adapter lookup; it never changes the tunnel and never reads the tunnel configuration file or any private key material. Windows only (WireGuard for Windows). Disclosure — runs local wg.exe show, sc.exe query and one PowerShell Get-NetIPAddress lookup (read-only, never touches the tunnel config or private key); tool results put peer public keys, allowed IPs and peer endpoint IP addresses into the conversation sent to your model provider.Communitytools