Template tags, a reactive expression engine, and pipe formatters wired into the HTML and CSS you already write.
Pull live Twitch data with [[[tag]]].
Derive state with c.wins / (c.wins + c.losses) * 100.
React to follows, raids, and donations from Ko-fi, Streamlabs, StreamElements, Buy Me A Coffee, FourthWall and Throne. Update anything from your dashboard and watch the overlay catch up in milliseconds.
No drag-and-drop editor. No proprietary file format. No lock-in. Overlabels is the reactive substrate - your overlay is just a webpage it keeps alive.
Use a simple tag format to pull in live Twitch data. It works in HTML, in CSS, and inside show/hide rules. Easy to read, easy to scan.
Tags cover your channel, followers, subs, goals, and more. Browse all template tags →
Dynamic widths, generated content, colour values driven by data — anything a CSS value can express, a tag can provide.
Event tags are merged with your static overlay data at render time. All static tags remain available inside alert templates. You're encouraged to mix them freely.
Controls are named, typed values you define per template and update from your dashboard while the overlay is live in OBS. Change a value and your overlay re-renders the new data near-instantly. All without page reloads, of course!
Reference any control with [[[c:key]]]
— in HTML,
in CSS, and in conditional blocks.
Full controls reference →
Strings up to 1000 chars. HTML stripped on save.
Numeric values. Safely coerced, defaults to 0.
Integer counter. Increment or decrement from the dashboard.
Countup or countdown at 250ms resolution. State broadcast over WebSocket.
ISO 8601 datetime. For scheduled events, stream start times.
Stores "1" or "0". Toggle overlay sections live from your dashboard.
The timer ticks at 250ms resolution. The danger
class applies
automatically when the countdown reaches 10 seconds. Flip the boolean from the dashboard to show or hide the
block, with near-live updates.
Any tag (Twitch data, control value, or event payload) can drive a conditional block. Evaluated
client-side in the overlay with no
server round-trips and no eval(). Nesting supported up
to 10 levels deep.
Full syntax reference →
=
Equal
!=
Not equal
>
Greater than
<
Less than
>=
Greater than or equal
<=
Less than or equal
Numeric comparisons are numeric. Truthy check treats "0",
"false", and empty string as false.
Assign an alert template to any EventSub event. When the event fires, Overlabels renders the template with the payload merged into the tag context, broadcasts the compiled alert to your overlay over WebSocket, and displays it with a configured transition and duration — all without any interaction from you.
Connect your Ko-fi, Fourthwall, Buy Me a Coffee, StreamElements, Streamlabs or NEW: Throne account and Overlabels automatically tracks every donation in real time. Counters update, alerts fire, and your overlay stays current - all without touching a single line of code after setup.
Donations, subscriptions, shop orders
Paste your Ko-fi verification token, set your webhook URL, done. Every Ko-fi event flows through the same alert pipeline as Twitch events.
Six auto-provisioned controls, identical shape across every service:
Donations
Authenticate your Overlabels account with Fourthwall through 2 clicks on the integration page, done. Every Fourthwall donation event flows through the same alert pipeline as Twitch events.
Six auto-provisioned controls, identical shape across every service:
Donations, Commision Orders, Extras, Membership, Monthly Support, Wishlist Payments
Paste your Buy Me a Coffee verification token, set your webhook URL, done. Every Buy Me a Coffee event flows through the same alert pipeline as Twitch events.
Six auto-provisioned controls, identical shape across every service:
Live donation tracking via OAuth
One click to authenticate. Overlabels listens for donations in real time and auto-provisions six controls the moment you connect.
Six auto-provisioned controls, identical shape across every service:
Live donation tracking via JWT
Paste your JWT token to authenticate. Overlabels listens for donations in real time and auto-provisions six controls the moment you connect.
Six auto-provisioned controls, identical shape across every service:
Gifts, contributions, crowdfunded gifts
Connect Throne and copy your webhook URL into Throne, done. Throne signs every webhook with its own key, so there is no token to paste - and every gift and contribution flows through the same alert pipeline as Twitch events.
Six auto-provisioned controls, identical shape across every service:
Ko-fi, Fourthwall, Buy Me a Coffee, StreamElements, Streamlabs and Throne expose the same normalized event tags. Write your donation alert once and it works for
all of them - [[[event.source]]]
tells your overlay which platform it came from.
latest().
Every other overlay tool on the market is owned by a donation platform. Streamlabs' overlays show Streamlabs donations. StreamElements' overlays show StreamElements donations. Ko-fi's overlays show Ko-fi donations. That's not a bug, it's the business model.
Overlabels doesn't sell donation ingest, so we don't care which service the money came through. Pass all six donation services plus Twitch bits into a single latest() function and you get the actual most-recent supporter across any of your connected revenue streams. One name, one amount, six pipes.
latest() takes pairs of (timestamp, label) arguments, picks the highest timestamp, and returns its paired label. Every control in Overlabels automatically exposes an _at companion holding its last-update time in seconds - every timestamp on the platform is normalized that way - so the same pattern works for totals, counters, or anything else you want to rank by recency. Reactive, so your overlay catches up the instant a new donation lands on any pipe.
A reverse subathon is the evil twin of the classic. The clock starts at some big number and every donation subtracts time. When it hits zero, the stream ends. It is the chaos engine of audience-participation streaming, and it's three controls and one expression in Overlabels.
Create three number controls: c.donathon_timer (starting seconds), c.deduction_per_donation (seconds to strip per donation), and c.total_donations (a counter your alert template increments on every donation across every service). Then a single expression control does the rest:
clamp() keeps the result between zero and the original timer so the clock can't go negative or somehow inflate. Pipe it through |duration:hh:mm:ss and you have a broadcast-ready countdown that reacts the instant any donation lands on any service.
Btw: if you want a classic subathon that adds time on every donation, just swap the - for a +. That's it. You're welcome <3
Any public template or kit can be copied. One click, one copy, fully yours to modify, extend, or break. An Overlay Kit is a collection of templates - a static overlay, a follower alert, a subscription alert, a raid alert - designed as a cohesive visual system. Copy the kit, get everything at once - including all Controls and their values.
Every public template is a starting point. Copy it, own it, ship it. The original is always untouched.
Collections of templates sharing a visual language. Copy the kit, get the whole system. No assembly required.
Copying a template with controls opens the Import Wizard. Pick which controls come with the copy.
After signing up, the system will trigger an onboarding wizard which will set you up with the defaults you need to make Overlabels work for you: One overlay, a bunch of alerts and your secret token is generated and applied to the URL you need to add to your OBS. We also generate your personal template tags that match the level of your Twitch account. This so you don't end up with affiliate level capabilities if you're a Twitch partner and vice versa.
The /testing page generates ready-to-run Twitch CLI commands for your account.
Trigger events locally and verify your overlay without going live.
Example: simulate a new follower event
You'll need to have Twitch CLI installed for this to work.
No paywalls. No tiers. No artificial limits. Everything you create is yours. The whole thing is open source.
Connect with Twitch to log in to Overlabels. Revoke access anytime from your Twitch settings.