diff --git a/website/src/pages/community.tsx b/website/src/pages/community.tsx
index 8092655..9bc36ee 100644
--- a/website/src/pages/community.tsx
+++ b/website/src/pages/community.tsx
@@ -50,7 +50,7 @@ const CITIZENSHIP = [
title: 'Share, and share real files',
body: (
<>
- Point shares add at the collection you actually listen to. Full albums,
+ Point shares add at the collection you listen to. Full albums,
honest bitrates, nothing transcoded up from a lossy source and relabelled.
>
),
@@ -146,20 +146,10 @@ export const Community = () => {
>
soulfind
{' '}
- run in CI, so a green checkmark means it genuinely built and talked to a
- server.
+ run in CI, so a green checkmark means it built and talked to a server.
- That server is{' '} - - soulfind-dev/soulfind - - , an open-source Soulseek server. Run it locally and you can develop and test + soulfind is an open-source Soulseek server. Run it locally and you develop against a real protocol implementation without touching the public network.
- On first run soulseek-rs shows a login screen: sign in with an existing - Soulseek account or register a new one, right in the TUI. Your password is - stored in the OS keychain, not in plain text. + On first run you get a login screen: sign in with an existing Soulseek + account or register a new one. Your password goes to the OS keychain, not a + plain-text file.
- Downloads land in a conventional folder by default, and your TUI state - (searches, downloads, rooms) is saved and restored across restarts. + Downloads land in a conventional folder, and TUI state (searches, downloads, + rooms) is restored across restarts.
soulseek-rs skills install writes a SKILL.md into
- every coding agent on the machine — Claude Code and opencode today,{' '}
+ every coding agent on the machine: Claude Code and opencode today,{' '}
--dir for anything else. After it lands you describe the
outcome instead of the pipeline: “mirror that peer’s FLAC
folder”, “watch this room for an hour and save anything
@@ -210,9 +210,7 @@ export const Docs = () => {
It carries what --help cannot: the JSON keys of every record,
- that exit 4 means widen the query rather than retry it, that remote paths go
- back byte-identical, and that --follow never returns so an agent
- passes --duration. Run it again after an upgrade to update it;{' '}
+ and what each exit code means. Rerun it after an upgrade;{' '}
skills uninstall takes it back out.
- Deeper docs live where they stay current: the full README on GitHub, and the - generated API reference for the library on docs.rs. + The README on GitHub and the library API reference on docs.rs stay current + with the code.
soulseek-rs speaks that protocol. It’s a third-party client, not the - official app, and not affiliated with the Soulseek project. It shares, - browses, and does rooms and private messages, because a client that only - downloads takes from the network without giving anything back. + official app. It shares, browses, and does rooms and private messages, + because a client that only downloads takes without giving anything back.
Reach for soulseek-rs-lib to build a custom client or an agent
- on the protocol directly.{' '}
+ on the protocol.{' '}
Use the library
@@ -224,8 +223,8 @@ export const Home = () => {
Every command runs as a one-off from the shell. Point cron, a script, or an
agent at them and read JSON records back off stdout. No daemon, no API to
- stand up — and
It stays a CLI: no daemon, no MCP server, no API key. Upgrading the binary
diff --git a/website/src/pages/install.tsx b/website/src/pages/install.tsx
index c7d31dc..3623195 100644
--- a/website/src/pages/install.tsx
+++ b/website/src/pages/install.tsx
@@ -58,8 +58,8 @@ const INSTALLS: readonly InstallRoute[] = [
],
alt: (
<>
- A prebuilt binary for both Apple silicon and Intel, so no Rust toolchain. With one
- installed,
The port is your
- Your downloads and your shared directories are yours: they stay exactly where
- they are. On macOS, delete the keychain entry for skills install teaches the agent the surface
- for you.{' '}
+ stand up. skills install teaches the agent the surface for
+ you.{' '}
See the commands
@@ -238,8 +237,7 @@ export const Home = () => {
skills install closes that gap in one command.
+ An agent can run any CLI. skills install teaches it to run this one
+ well.
{
--help lists flags. It cannot say which JSON keys a record
- carries, that exit 4 means widen the query rather than retry it, that a
- remote path is backslash-separated and has to go back byte-identical, or
- that --follow never returns so an agent passes{' '}
- --duration. An agent without that guesses, and guessing against
- a stranger’s file server hangs the job.
+ carries, or that exit 4 means widen the query rather than retry it. An agent
+ without that guesses, and guessing against a stranger’s file server
+ hangs the job.
skills install fills that in. The requests stop being pipelines
- you write: mirror a peer’s FLAC folder overnight, watch a room and save
- anything that mentions a label, check whether a user is worth queueing behind
- before a 2 GB transfer.
+ you write: mirror a peer’s FLAC folder overnight, or check whether a
+ user is worth queueing behind before a 2 GB transfer.
cargo install soulseek-rs builds it from crates.io instead.
+ A prebuilt binary for Apple silicon and Intel, no Rust toolchain needed. With a
+ toolchain, cargo install soulseek-rs builds from crates.io instead.
>
),
},
@@ -116,7 +116,7 @@ const PLATFORMS: readonly PlatformNote[] = [
config: '~/.config/soulseek-rs/config.toml',
state: '~/.local/share/soulseek-rs/state',
downloads: '~/Downloads/Soulseek',
- note: 'macOS deliberately follows the XDG layout rather than Application Support, so config sits beside your other dotfile config.',
+ note: 'Follows the XDG layout rather than Application Support.',
},
{
id: 'linux',
@@ -185,9 +185,9 @@ const SETTINGS: readonly Setting[] = [
fallback: 'the download folder',
body: (
<>
- Folders offered to the network, as a list. An explicitly empty list shares
- nothing. shared_dir is the older single-folder spelling and still
- reads; shares add writes the list form.
+ Folders offered to the network. An empty list shares nothing.{' '}
+ shares add writes this; the older shared_dir spelling
+ still reads.
>
),
},
@@ -388,9 +388,10 @@ export const Install = () => {
--listener-port (env{' '}
- SOULSEEK_LISTENER_PORT, default 2234); it’s
- renewed automatically and removed on exit. Pass --no-listener to
- turn it off. Check your own network without launching the client:
+ SOULSEEK_LISTENER_PORT, default 2234); soulseek-rs
+ renews it while it runs and removes it on exit. Pass{' '}
+ --no-listener to turn it off. Check your own network without
+ launching the client:
password_cmd shell out to
- your own password manager and print it on demand. For CI and containers,{' '}
+ Your password goes to the OS keychain, never a plain-text file. Point{' '}
+ password_cmd at your own password manager and it is never stored
+ at all. For CI and containers,{' '}
--password-stdin reads it off a pipe so it never reaches{' '}
ps or the environment.
config.toml is layered: flags beat environment variables, which
- beat the file, which beats the defaults. config get and{' '}
- config set read and write that file without opening an editor.
- State (searches, downloads, rooms) is versioned JSON and restores on restart;
- anything unreadable is set aside as .bak instead of being
- overwritten.
+ beat the file, which beats the defaults. State (searches, downloads, rooms) is
+ versioned JSON and restores on restart; soulseek-rs sets anything unreadable
+ aside as .bak rather than overwriting it.
config list prints the effective value of each.
config path prints the file in use, config get{' '}
- reads one setting and config set writes one. Unknown keys are
- rejected rather than silently ignored, so a typo fails loudly instead of
- quietly doing nothing. --no-config ignores the file entirely
- and --config FILE points at another one.
+ reads one setting and config set writes one. It rejects
+ unknown keys, so a typo fails instead of doing nothing.{' '}
+ --no-config ignores the file entirely and{' '}
+ --config FILE points at another one.
--log-file at a file, and there is no
- telemetry to opt out of.
+ Three things exist on disk: the binary, the config, and the state. Nothing else,
+ unless you point --log-file somewhere. No telemetry to opt out of.
soulseek-rs in
+ Your downloads and your shared directories are yours: they stay where they
+ are. On macOS, delete the keychain entry for soulseek-rs in
Keychain Access if you saved a password.