SNAPCLIENT(1)

πŸ“¦
version 0.35.0 Β· 4 versions
, in alpine 3.24, nixos 26.05, nixpkgs unstable, ubuntu resolute, ubuntu stonking

πŸ’– SNAPCLIENT(1) πŸ’–

okay bestie, gather round, because we're about to talk about snapclient β€” the Snapcast client β€” and it's genuinely iconic. this is from the General Commands Manual section, and yes, she's serving real utility. πŸŽ€


✨ NAME ✨

snapclient β€” Snapcast client. that's it, that's the name, short and slay. πŸ’…


🌸 SYNOPSIS 🌸

snapclient [OPTION]...

just the command and then a whole lil pile of options. that's the whole vibe. πŸ¦‹


🫢 DESCRIPTION 🫢

so Snapcast is a multiroom client-server audio player, and the way it works is genuinely so cool: every single client is time synchronized with the server, so the audio plays perfectly synced across all of them. no echo-y hallway situation, no "wait, why is the kitchen two seconds behind the living room". it just works. ✨

and listen β€” it is NOT a standalone player, okay? it's not gonna play your files for you. it's an extension that turns your existing audio player into a Sonos-like multiroom solution. it's giving glow-up energy, not replacement energy. πŸ‘‘

the server's audio input is a named pipe at /tmp/snapfifo. all data that is fed into this file will be send to the connected clients. one of the most generic ways to use Snapcast is alongside the music player daemon or Mopidy, which can both be configured to use a named pipe as their audio output. cute, right? πŸ“


🎧 Usage: snapclient [options...] [url] 🎧

where url is:

<tcp|ws|wss>://<snapserver host or IP or mDNS service name>[:port]

for example: 'tcp://192.168.1.1:1704', or 'ws://)homeserver.local' or 'wss://_snapcast-https._tcp'

if url is not configured, snapclient defaults to 'tcp://_snapcast._tcp' β€” yes, that trailing colon is in the original, i promise i'm not being chaotic, that's just what it says. πŸ’€


πŸ’… OPTIONS πŸ’…

  • --help β€” produce the help message. the classic "what do i even do here" button. πŸ™ˆ
  • -v, --version β€” show the version number. flex the digits. πŸ”₯
  • -h, --host arg β€” (deprecated, use [url]) server hostname or ip address. she's old, she's retired, use url instead bestie.
  • -p, --port arg (=1704) β€” (deprecated, use [url]) server port. default is 1704. also retired. also use url.
  • -i, --instance arg (=1) β€” the instance id, for when you're running multiple instances on the same host. default is 1. multitasking queen. πŸ‘‘
  • --hostID arg β€” unique host id, and the default is your MAC address. it's literally your identity. no cap.
  • --cert arg (="") β€” client certificate file, in PEM format.
  • --cert-key arg (="") β€” client private key file, also PEM format. keep it secret, keep it safe. 🀫
  • --key-password arg β€” the key password, for when your private key is encrypted.
  • --server-cert [=arg(="default certificates")] β€” verify the server with a CA certificate (PEM format). the default value here is literally "default certificates". trust but verify, periodt. πŸ’–
  • -l, --list β€” list PCM devices. window shopping for soundcards. πŸŽ€
  • -s, --soundcard arg (=default) β€” the index or name of the PCM device. default is default. (very on the nose, love that for her.)
  • --latency arg (=0) β€” latency of the PCM device. default is 0.
  • --sampleformat arg β€” resample the audio stream to <rate>:<bits>:<channels>. three lil values, colon-separated, chef's kiss. ✨
  • --player arg (=alsa) β€” one of alsa | pipewire | file[:<options>|?]. default is alsa. yes, ? is a real option there, she contains multitudes.
  • --mixer arg (=software) β€” one of software | hardware | script | none | ?[:<options>]. default is software.
  • -d, --daemon [=arg(=-3)] β€” daemonize it, with an optional process priority in the range [-20..19]. the default arg is -3. she goes to the background and she does not text back. πŸ’€
  • --user arg β€” the user[:group] to run snapclient as when daemonized.
  • --logsink arg β€” where the logs go: [null,system,stdout,stderr,file:<filename>]. pick your destination, bestie. 🌈
  • --logfilter arg (=*:info) β€” log filter in the format <tag>:<level>[,<tag>:<level>]*, where tag is * or a <log tag>, and level is one of [trace,debug,info,notice,warning,error,fatal]. default is *:info. tune your noise level, it's giving main character control. ⭐

🧚 FILES 🧚

  • /etc/default/snapclient β€” the daemon default configuration file. the daemon's little home base. 🏠

Copyright (C) 2014-2025 Johannes Pohl (snapcast@badaix.de). License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>. This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

read that again: NO WARRANTY. to the extent permitted by law. i'm not being dramatic, that's literally what it says. 😭

πŸ’œ SEE ALSO πŸ’œ

  • snapserver(1) β€” go read about her sister, she's the other half of this whole operation. πŸ¦‹

and that's the whole page, bestie β€” September 2025 edition of SNAPCLIENT(1), straight from the General Commands Manual. now go sync some speakers and be the moment. πŸ’–βœ¨πŸŽ€πŸ«Ά

πŸ“¦ where this page comes from