All-Chat Docs
Streamer guide
Set it up in OBS, run polls, predictions and moderation from the chat monitor, and make it your own.
Building a bot, alert box, or analytics tool? See the Developer API →
What is All-Chat
All-Chat pulls your live chat from Twitch, YouTube, Kick, TikTok and Discord into a single overlay you drop into OBS. Every message lands in one feed — plus events like subs, bits, raids, super chats and gifts — and 7TV, BTTV and FFZ emotes show up automatically. No bots to invite, no chat widget to wire up.
Get your overlay live
- Sign in at allch.at with your Twitch, YouTube, or Kick account.
- In the dashboard, create an overlay and connect the platforms you stream on. Each connected platform becomes a chat source on that overlay — mix and match as many as you like.
- Copy the overlay's browser-source URL and add it to OBS as a Browser Source. Chat appears the moment the overlay connects.
- Sources are demand-driven: All-Chat starts listening when the overlay is open and winds down when nothing is connected, so you never pay for idle listeners.
24/7 & IRL streams
Running an OBS instance around the clock — a common setup for IRL streamers who want disconnect protection — needs one extra step so YouTube chat behaves. Add ?passive=trueto your overlay's browser-source URL:
https://allch.at/overlay/<overlay-id>?passive=trueA passive overlay renders chat exactly like a normal one, but it does not ask All-Chat to start capturing on its own. That matters because YouTube discovery gives up after an hour of not finding a live stream (so it never hammers YouTube for an offline channel). A normal 24/7 overlay would trip that timeout while you are offline and sit parked by the time you go live — a passive overlay never starts that clock, so nothing gets stuck.
When you go live
- Leave your 24/7 OBS browser source on the passive URL.
- Open your overlay's chat monitor (the monitor / view page).
- If chat is not already flowing, hit Rediscover on the monitor — capture starts within about a minute.
- Keep the chat monitor open while you stream; that keeps capture running for the session, and it winds down a few minutes after you close it.
A plain browser-source refresh does notrestart a parked YouTube channel — use the monitor's Rediscover button. While a channel is parked, its platform dot shows an indigo “paused” state (waiting for you to trigger it), not a red error.
The chat monitor
Open Monitor Viewfrom the overlay editor for a live control room, separate from the OBS overlay. It shows every message in one panel with an activity feed beside it, and it's where you send messages and moderate.
- Send messages as yourself to Twitch, YouTube or Kick straight from the monitor (TikTok and Discord have no send API).
- Re-discover YouTube forces a fresh look for your live stream — use it if YouTube chat stops after a crash or restart, or to start capture for a passive 24/7 overlay when you go live.
- Displaysettings toggle what you see (avatars, badges, pronouns, timestamps, platform icons, moderation controls). These are your personal monitor preferences and don't change the OBS overlay.
Moderate your chat
With Moderation controls on in the monitor, hover a message to Delete it, or open a chatter to Timeout, Ban or Unban them — applied on the source platform: Twitch and Discord do delete, timeout, ban and unban; Kick does timeout, ban and unban (no single-message delete); YouTube is ban-only; TikTok has no moderation API.
The first time, use Enable moderation & chat sending to grant the extra permissions (for Discord you re-invite the bot). Moderating from your overlay is a Premium feature.
Polls, predictions & points
All-Chat has its own polls, predictions and viewer points that work across every connected platform, not just Twitch.
- Turn them on in the editor's Engagement section: Enable viewer points, set your Points name, and choose how points are earned (per bit, per sub, per gifted sub, and so on).
- Run rounds live from the monitor's Engagement panel: Start poll / Close poll, and Start prediction / Lock wagers / pay out or Cancel & refund.
- Viewers join from chat (e.g.
!vote 2,!predict 1 500) or on the Viewer participation page. - Add the OBS poll widget and OBS prediction widget as their own browser sources so results show on stream — copy their URLs from the Engagement section.
Events & credit roll
Your overlay shows events too — subs, resubs, gift subs, bits/cheers, raids, Super Chats, memberships and follows. Use Event Settings in the editor to choose exactly which events appear, per platform.
For the end of a stream, open Credits to set up a Credit Roll— a scrolling thank-you of your top subscribers, gifters, cheerers, raiders and new followers. It's its own browser source (Copy Credits OBS URL).
Pick a theme
All-Chat ships with 16 built-in themes — from Modern Dark and Minimal to Trading Card, Comic Speech, Sticky Notes, Vaporwave, Cyberpunk and more. Applying one takes a click and needs no CSS at all.
- Open your overlay in the dashboard to edit it.
- In the Theme section, browse the themes and apply one. The preview updates instantly.
- Save. Your OBS browser source picks up the new look on its next refresh.
You can also preview every theme live on the home page before you sign in.
Make it your own
A theme is a starting point — most of the time you can get exactly the look you want without writing any code. In the overlay editor's Appearance panel you can adjust, with sliders, toggles and color pickers:
- Font family, text size, weight, line height and letter spacing
- Spacing, padding and message-bubble corners
- Avatar and badge size
- What to show or hide — avatars, badges, timestamps, usernames
- Colors, including a name color per platform
- How events like subs, raids and super chats appear
Start from the theme closest to what you want, then tweak these until it feels like yours. If you need something the panel doesn't cover, drop down to CSS below.
Go further with CSS
For full control, enable Custom CSS in the overlay editor's Expert section and write your own styles. A few things worth knowing:
- Your CSS only affects your overlay — nothing else.
- It loads after the theme, so you can start from a built-in theme and override just the parts you want.
- There's a live preview right next to the editor, so you see changes as you type.
Quick wins: style variables
The easiest lever needs no knowledge of class names. Set any of these variables on :root and the overlay picks them up:
| Variable | Default | What it changes |
|---|---|---|
| --chat-font-size | 1rem | Message text size. |
| --chat-font-family | inherit | Message text font. |
| --chat-message-color | #ffffff | Message text color. |
| --chat-message-gap | 0.75rem | Vertical space between messages. |
| --chat-bubble-border-radius | 0.5rem | Roundness of the message bubble. |
| --chat-bubble-padding | 0.75rem | Padding inside each message. |
| --chat-avatar-size | 2.5rem | Avatar width and height. |
| --chat-username-font-size | 0.875rem | Username size. |
| --chat-emote-scale | 1 | Emote size multiplier. |
| --chat-show-avatars | block | Set to none to hide avatars. |
| --chat-show-badges | flex | Set to none to hide badges. |
| --chat-show-timestamps | block | Set to none to hide timestamps. |
:root {
--chat-font-size: 20px;
--chat-message-gap: 12px;
--chat-show-timestamps: none; /* hide timestamps */
}Finer control: target the chat parts
For anything the variables don't cover, style the overlay's elements directly. These class names and data attributes are stable and safe to target:
| Selector | Kind | Targets |
|---|---|---|
| .overlay-live-body | class | The whole message list container. |
| .chat-message | class | One chat message bubble. |
| .chat-username | class | The author name. |
| .platform-badge | class | The platform tag/icon next to the name. |
| .event-message | class | A sub / raid / super chat / gift alert. |
| [data-platform="twitch"] | attribute | Messages from a platform (twitch, youtube, kick, tiktok, discord). |
| [data-username="…"] | attribute | Messages from a specific user. |
Example — give each platform its own accent stripe:
.chat-message[data-platform="twitch"] { border-left: 4px solid #9146FF; }
.chat-message[data-platform="youtube"] { border-left: 4px solid #FF0000; }
.chat-message[data-platform="kick"] { border-left: 4px solid #53FC18; }
/* Make raid alerts pop */
.event-message[class*="raid"] { transform: scale(1.1); }Custom fonts
You can pull in a Google Font with a normal @import, then use it anywhere in your CSS. To protect your viewers' privacy, fonts are served through All-Chat rather than directly from Google, so only these families are available:
Barlow, Barlow Condensed, Bebas Neue, Exo 2, Inter, Monoton, Montserrat, Nunito, Open Sans, Orbitron, Oswald, Poppins, Press Start 2P, Rajdhani, Roboto, Share Tech Mono, Source Code Pro, Space Grotesk, VT323.
@import url('https://fonts.googleapis.com/css2?family=Press+Start+2P&display=swap');
:root { --chat-font-family: 'Press Start 2P', monospace; }Requesting a family that isn't on the list simply won't load — pick another or leave the default.