Skip to content

Docs

Kick relay

Kick only delivers chat to apps through webhooks, which need a server to receive them. A tiny relay you host receives them and passes chat on to Chatge.

Kick ──webhook──▶ relay ──WebSocket──▶ Chatge

1. Create a Kick app

Follow Kick’s app setup guide and note the client id and client secret. Set the app’s webhook URL to https://<your-relay-host>/kick/webhook.

2. Run the relay

The relay isn’t publicly available yet. These steps apply once it is.

cd relay
npm install
PORT=8080 \
KICK_CLIENT_ID=... \
KICK_CLIENT_SECRET=... \
KICK_PUBLIC_URL=https://<your-relay-host> \
KICK_SUBSCRIBE_SLUGS=channel1,channel2 \
npm start
VariablePurpose
PORTHTTP port (default 8080)
KICK_CLIENT_ID, KICK_CLIENT_SECRETYour Kick app’s credentials, used to subscribe to chat events on start
KICK_PUBLIC_URLThe relay’s public https address (the webhook target)
KICK_SUBSCRIBE_SLUGSChannels to subscribe to, separated by commas
KICK_VERIFY_SIGNATURESet to 0 to skip signature checks (development only)

Kick requires an https webhook, so put the relay behind TLS: Caddy, nginx or a Cloudflare Tunnel all work. GET /health lists the subscribed channels.

3. Point Chatge at it

In Chatge, open Settings → Connections → Kick and set the relay URL to wss://<your-relay-host>/ws. Then add a channel by pasting kick.com/<slug> into the sidebar.

Good to know

  • Subscriptions are per channel. To add channels, extend KICK_SUBSCRIBE_SLUGS and restart the relay.
  • Kick drops a subscription if the webhook keeps failing, so keep the relay running.
  • Sending messages and moderation on Kick aren’t supported yet.