Refrain ships desktop clients for Linux, macOS, and Windows, plus a command-line client for Linux/macOS. Each release includes platform-specific desktop ZIPs and a Linux CLI binary. You can download them directly, or use the handy shell scripts here to do it for you.
🔗Desktop Client
The desktop client is an enhanced Electron app that can do a few things your browser can do by default. Not terribly special, but convenient!
curl -o refrain.zip -L https://s3.us-east-1.amazonaws.com/refrain.gg/releases/latest/desktop/refrain-linux-amd64.zip
unzip refrain.zip
rm -f refrain.zip
./refrain-linux-x64/refraincurl -o refrain.zip -L https://s3.us-east-1.amazonaws.com/refrain.gg/releases/latest/desktop/refrain-darwin-arm64.zip
unzip refrain.zip
rm -f refrain.zip
open ./refrain.appcurl.exe -o refrain.zip -L "https://s3.us-east-1.amazonaws.com/refrain.gg/releases/latest/desktop/refrain-win32-amd64.zip"
Expand-Archive -Path "refrain.zip" -DestinationPath "." -Force
Remove-Item -Force "refrain.zip"
.\refrain-win32-x64\refrain.exe🔗CLI Client
The CLI client is currently pretty simplistic. The hotkeys are as follows:
- tab to go between selecting the channel list and the message box
- when in the channel list
- arrow keys to change channels
copens up the community selectorjto join a voice sessionlto leave a voice sessionqto quit
It also has headless modes for streaming audio or video to a channel:
Usage: refrain headless --base-url <BASE_URL> --community <COMMUNITY> --channel <CHANNEL> [OPTIONS]
Options:
-b, --base-url <BASE_URL> Base URL of the Refrain HTTP API (no trailing slash required)
-u, --username <USERNAME>
-p, --password <PASSWORD> If omitted, uses the REFRAIN_PASSWORD environment variable
--insecure Accept self-signed or otherwise invalid TLS certificates (dev / local use only)
--auth-type <AUTH_TYPE> Authentication mode for API and WebTransport sessions [default: dpop] [possible values: bearer, dpop]
--community <COMMUNITY> Community ID to join
--channel <CHANNEL> Channel ID to join
--voice Join voice session and uplink from the system default microphone
--video Join video session and uplink from the system default camera
--audio-file <AUDIO_FILE> Path to an audio file to uplink instead of microphone capture (loops forever)
--video-file <VIDEO_FILE> Path to a video file to uplink instead of camera capture (loops forever)
--chat Read lines from stdin and post each as a chat message to the channel
-h, --help Print help
-V, --version Print version
curl -o refrain.zip -L https://s3.us-east-1.amazonaws.com/refrain.gg/releases/latest/cli/refrain-linux-amd64.zip
unzip refrain.zip
rm -f refrain.zip
./refrain --base-url <your-server>curl -o refrain.zip -L https://s3.us-east-1.amazonaws.com/refrain.gg/releases/latest/cli/refrain-darwin-arm64.zip
unzip refrain.zip
rm -f refrain.zip
./refrain --base-url <your-server>