Installing a client

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/refrain

🔗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
    • c opens up the community selector
    • j to join a voice session
    • l to leave a voice session
    • q to 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>