signal kit

One event stream for Twitch, YouTube, or both.

Start with the platform you use today. Connect Twitch EventSub, YouTube Live Chat, or both, then pipe subs, cheers, redemptions, Super Chats, and live messages into whatever you build.

Pick your setup

Twitch only

EventSub without webhook plumbing

Follows, subs, Bits, raids, redemptions, polls, predictions, goals, charity, ads, chat, and more through one relay token.

YouTube only

Live Chat without a custom poller

Messages, Super Chats, Super Stickers, memberships, moderation events, and live-chat lifecycle events while your broadcast is active.

Twitch + YouTube

One socket for multi-platform streams

Connect both accounts and receive normalized envelopes with raw provider payloads. Route by type or provider in your overlay, bot, or local agent.

live preview

A mixed sample over one relay token. Twitch and YouTube keep their raw provider payloads, with a shared envelope for routing.

wss://signal.ryan.ceo/ws
connected
  • channel.cheerryan · 100 bits12s
  • youtube.live_chat.super_chatjules · "keep building"18s
  • channel.subscribemorgan · tier 124s
  • channel.followalex38s
  • channel.chat.messageki · "GG"1m
  • channel.channel_points_custom_reward_redemption.addsam · hydrate2m

SDK

overlay.ts
// npm install @signal-kit/client
import { SignalKit } from "@signal-kit/client";

const events = new SignalKit({
  url: "wss://signal.ryan.ceo/ws",
  token: process.env.SIGNAL_KIT_TOKEN!,
});

events.on("channel.cheer", ({ event }) => {
  overlay.bits({
    user: event.user_name,
    bits: event.bits,
    message: event.message,
  });
});

events.on("youtube.live_chat.super_chat", ({ event }) => {
  overlay.superChat({
    user: event.authorDetails?.displayName,
    message: event.snippet?.displayMessage,
  });
});

events.connect();

What is Signal Kit?

Signal Kit is a small piece of infrastructure between you and livestream provider APIs. Sign in with Twitch or YouTube, connect the other platform when you need it, and let the app manage provider tokens, EventSub sessions, and YouTube Live Chat polling.

On the other side, you get a single relay WebSocket. Drop a token into an overlay, a local agent, or a hobby script. Notifications stream through with the raw event payload each provider sent. No vendor JSON shapes, no alert templates.

It is self-hostable, runs in Docker, and stores credentials encrypted in MySQL. There is no UI generator and no overlay marketplace. You build the layer above.

FAQ

Do I need both Twitch and YouTube?
No. You can use Twitch by itself, YouTube by itself, or connect both accounts to the same relay token.
Are provider tokens exposed to overlays?
No. Overlays connect with a relay token issued by the dashboard. Twitch and YouTube credentials never leave the server.
Which events are supported?
Every EventSub topic Twitch lets you subscribe to with the granted scopes, plus YouTube Live Chat messages and fan-funding chat events while a broadcast is active.
Can I self-host?
Yes. Docker image, docker-compose, .env, MySQL. The relay WebSocket and the Next.js app run in the same container.