get{' '}
search, pick the best, and download in one command.
>
),
},
{
glyph: '↑',
color: 'var(--status-success)',
title: 'Sharing',
cmd: 'soulseek-rs shares add ~/Music',
body: (
<>
Point shares add at a directory and your files show up in searches;{' '}
serve stays online so peers can browse and download them.
>
),
},
{
glyph: '◈',
color: 'var(--accent-text)',
title: 'Daemon mode',
cmd: 'soulseek-rs daemon',
body: (
<>
One session every other command borrows. Leave it on a NAS to share and download
around the clock, or let an agent fan out twenty commands on one login. It speaks
JSON-RPC, so your own tools can drive it too.
>
),
},
{
glyph: '›',
color: 'var(--status-info)',
title: 'Browse',
cmd: 'soulseek-rs browse portmap{' '}
subcommand to test your router.
>
),
},
{
glyph: '▮',
color: 'var(--accent-text)',
title: 'TUI and CLI',
cmd: 'soulseek-rs search "rjd2" --json',
body: (
<>
A full terminal interface, plus scriptable subcommands: stdout is data, stderr is
progress, the exit code is the verdict.
>
),
},
] as const
const Hero = () => (
Search the network, share your files, browse someone’s collection, join a room. It runs over ssh on the machine where your music already lives.
Soulseek is a peer-to-peer network from the early 2000s. People still use it to share niche music by hand: the album that exists in one person’s folder and nowhere else.
soulseek-rs speaks that protocol, as a third-party client rather than the official app. It shares, browses, does rooms and private messages, because a client that only downloads makes you a leech on people who left their machines on for you.{' '} What sharing asks of you
Reach for soulseek-rs-lib to build a custom client or an agent on
the protocol — every message modern Soulseek still uses, implemented and
tested against a real server.{' '}
Use the library
Every command runs as a one-off. Point a script or an agent at it and read JSON
records off stdout. Start soulseek-rs daemon first when several run
at once, so they share one login instead of cutting each other off.{' '}
skills install hands your agent that habit, plus the JSON keys and
exit codes --help leaves out.{' '}
See the commands
skills install teaches it to run this one well.
--help lists flags. It cannot say which JSON keys a record carries, or
that exit 4 means widen the query rather than retry it. An agent guesses instead,
and guessing against a stranger’s file server hangs the job.
skills install fills that in, so you ask for outcomes instead of
writing pipelines: fill the gaps in a discography from whoever has a free slot, or
read a peer’s profile for their limits before queueing 2 GB behind them.
Still a CLI: no MCP server, no API key. The skill tells your agent to start a daemon
first, so a batch of parallel requests is one login rather than one per command.
Upgrading the binary upgrades the skill; rerun skills install to take
it.{' '}
See the commands
One command on macOS or Linux, then the TUI opens. No Rust toolchain needed.