Contents

Platforms

Twitch

The Twitch adapter connects with a bot account. The setup wizard can use device login or accept an existing OAuth token.

Minimal configuration

SectionRequired fields
twitchnick, oauth, channels
helixOptional client_id and client_secret for live-status checks
{
  "twitch": {
    "nick": "<bot-login>",
    "oauth": "${TWITCH_OAUTH}",
    "channels": ["<channel-login>"],
    "refresh_token": "${TWITCH_REFRESH_TOKEN}",
    "client_id": "${TWITCH_CLIENT_ID}"
  }
}

Sign in with setup

Run go run . -setup -config ./client/config.json from packages/bridge and choose Twitch. Enter the bot account and channel, then choose device login. Open the displayed verification page, enter its code, and sign in as the bot account. The wizard can instead store an existing OAuth token.

Refresh the device token

Device-login tokens last about four hours. Configure twitch.refresh_token and twitch.client_id to let the bridge refresh the token; setup writes those values when device login returns them. Twitch rotates refresh tokens, so the newest pair is saved in twitch.token_file. If a refresh token is rejected, run setup again.

Offline status and EventSub

When helix.client_id and helix.client_secret are configured, the bridge stays silent while the Twitch channel is offline.

For follow and subscription reactions, configure proactive.eventsub and a public HTTPS callback URL. The broadcaster account—not the bot—must authorize the Helix app once with moderator:read:followers and channel:read:subscriptions. Raid reactions do not need those scopes; setup prints the authorization URL.