pastilhas 95504b0eb3 say what this plugin is for, in the store's words
tags are how the marketplace is browsed rather than scrolled: a list of them on
the left, the plugins that carry one on the right. a closed vocabulary
(PLUGIN_TAGS in the platform) because free text becomes homelab, home-lab, Home
Lab and selfhosted inside a month, and a filter list of synonyms is worse than
no filter at all.

declared here rather than curated in the catalogue, so a plugin can say what it
is and nobody edits a table when one ships. the marketplace caches it on sync,
exactly as it already does for label and summary.
2026-08-27 06:49:35 +00:00

Soulseek

Search and download from the Soulseek network, through your own slskd daemon — inside Officer, with the API key held server-side so no device ever carries it.

What you get

  • Search the network, with results grouped by peer and filterable by bitrate, size and free slots
  • Transfers — downloads and uploads, with queue position, retry and cancel
  • Browse a peer's shares as a tree, cached locally so it survives them going offline
  • Favourites — peers worth coming back to
  • Rooms and chat, joined and available
  • Server status — connect, disconnect and see what the daemon is doing

Favourites and the cached browse tree are Officer's own: slskd has no concept of either.

Requirements

A running slskd instance Officer can reach, and its API key.

Setup

Install the plugin, open /soulseek, and fill in the connection panel — the daemon URL and the API key. The key is encrypted at rest and never sent to the browser.

The plugin does not install or supervise slskd. Point it at one you already run.

Permissions

One permission, soulseek, grantable per role like any other app permission. It gates the whole surface.

Notes

  • The connection is stored per-owner in the platform's service_connections table under the service name slskd, while the HTTP mount is /api/soulseek. Those two strings differ on purpose — see PLUGIN.md.
  • Live search results arrive by polling; the SignalR hub is not proxied.
S
Description
No description provided
Readme
2.5 MiB
Languages
TypeScript 100%