hub TwitchBridge
Open source • Self-hostable • MIT licensed

Bridge Twitch chat
to Telegram.

TwitchBridge runs on your own server and syncs messages between Twitch chat and your Telegram chats in real time. No SaaS. No tracking. Your data stays with you.

lock Encrypted OAuth tokens (AES-GCM)
storage SQLite persistence via volume
chat
Real-time relay
Twitch ↔ Telegram
/watch
Telegram
@mod /watch example_channel
Twitch
viewer123 poggers this is sick
Telegram
You /login (send as yourself)
Tip: set TWITCH_REDIRECT_URI to https://your-domain.tld/callback

Built for self-hosting

Run it on a VPS, a home server, or a small Docker host. Keep control over your tokens and data.

sync

Bidirectional chat

Read Twitch chat in Telegram and send messages back.

verified_user

Per-user OAuth login

Sending messages from Telegram to Twitch requires OAuth. Each user logs in and sends as their own account.

settings

Simple config

Single .env + Docker Compose.

storage

Persistent sessions

Sessions and OAuth tokens stored in SQLite (mounted volume).

shield

Encrypted tokens

Access/refresh tokens are encrypted at rest (AES-GCM).

monitor_heart

Health endpoint

/health for uptime checks.

Quickstart (Docker)

Create your Telegram bot and Twitch app credentials, then run TwitchBridge with Docker Compose.

  1. 1
    Create credentials
    Telegram: create a bot via @BotFather. Twitch: create a Developer Console app with redirect URI http://localhost:8085/callback (or your domain).
  2. 2
    Configure
    Copy .env.example to .env and fill the values.
  3. 3
    Run
    Start the stack and open Telegram to message your bot.
Commands run in project folder
# macOS / Linux
cp .env.example .env

# Windows (PowerShell)
Copy-Item .env.example .env

docker compose up -d --build

# optional: check HTTP
curl http://localhost:8085/health
Using a reverse proxy? Set TWITCH_REDIRECT_URI to your public HTTPS URL: https://your-domain.tld/callback

Security notes

Keep your .env private

Your tokens and secrets belong only on your server.

Persist the database volume

SQLite is stored at ./data/twitchbridge.db. Back it up if you care about sessions.

Rotate leaked tokens

If anything ever got committed to git, revoke/rotate it in Telegram/Twitch and replace values.

FAQ

Do I need Twitch OAuth?

For sending messages to Twitch: yes. Reading/relaying Twitch chat into Telegram works without OAuth.

Can I use it in Telegram groups?

Yes. Sessions are tracked per Telegram chat, and active sessions are restored after restarts.

Is it affiliated with Twitch/Telegram?

No. TwitchBridge is an independent open-source project.

Where are docs?

See the repository README for the full self-host guide and environment variables.