Reacts in milliseconds. Built for live shows and their crews

Automate your show. Hand your crew the controls.

Subs, raids, a button on the board: Rawtoh reacts for you. Your crew runs the rest with real buttons, from their browser.

Free while in beta.

When…
Then…
twitchchat.say
Thank them in chat
boardelement.update_text
Bump the sub counter on the board
< 10 ms
from event to your script
~60 ms
Board tap to OBS scene switch
0
polling, everything is pushed

Medians measured in production

The Board

Give your crew real buttons.

The Board is a control panel your crew opens in a browser. Design the grid once, wire each button to an automation, and your crew runs the show with you — without touching the machine that runs it.

  • Your grid, your layout — Buttons of any size and colour, with images or video behind them. Link several boards together with switches.
  • Any device — The board fills the screen of a phone, a tablet or a laptop. If it has a browser, it's a control panel.
  • Every tap is an event — A press sends board.click to Rawtoh, with who pressed it. Wire it to any automation you have scripted.
  • Live from your scripts — Automations can change a button's text, colour or image. Every open board updates on the spot.
  • Signed in, not shared — Each operator signs in with their own Rawtoh account. Owners design the boards; the crew runs them.
Script editor

Triggers decide when. Actions decide what.

Automations are real TypeScript, written in a full editor. Event payloads and module methods are typed from the modules you have installed, so autocompletion knows your stack.

ModuleemitsEventmatchesTriggerrunsAction
brb
board:board.click
1import { log, module } from "rawtoh"
2
3// A mod tapped "BRB" on the board
4await module("obs").request("scene.set_current", {
5 sceneName: "BRB",
6})
7await module("obs").request("input.set_mute", {
8 inputName: "Mic",
9 inputMuted: true,
10})
11await module("twitch").request("chat.say", {
12 message: "Be right back!",
13})
14
15log("BRB scene is live")
Activity

See exactly what ran.

Every run is a process: the event that started it, the trigger that matched, each call your action made to a module with its timing, your logs, and the error if it failed. All of it next to the code, in the editor.

Recent events
twitch›main-botchat.message
board›mainboard.clickby Alex
twitch›main-botchat.sub
obs›studioscene.current_changed
twitch›main-boteventsub.channel_follow
board›mainboard.clickby Sam
Recent processes
board:board.click184ms
EventLogs (4)
Module calls
requestobs›studioscene.set_current41ms
requestobs›studioinput.set_mute38ms
requesttwitch›main-botchat.say96ms
Logs
BRB scene is live
twitch:chat.sub131ms
twitch:eventsub.channel_raid57ms
AI

Or just ask the Companion.

A chat assistant in your sidebar. Say what should happen and when: it picks the events to listen to and the module methods to call, writes the triggers and actions, and opens them for you. It can also act on your tools right away: create an OBS scene, add a button to the Board, mute a source.

  • It knows your stack — The Companion reads the modules you have connected — their events and methods — and your whole explorer, instead of guessing.
  • It drives your tools — Ask for an OBS scene, a new button on the Board or a muted source: it calls the module directly, no script needed, and tells you before it changes anything live.
  • It's still your code — What comes out is plain TypeScript in the explorer, next to what you wrote by hand. Open it, edit it, debug it like any other script.
  • Review every change — Ask for a change to the script you are looking at: it shows up as a diff. Accept and save, or reject and say what to fix.
  • Your model, your key — Bring your own key for Anthropic, OpenAI, Google or Mistral — or point it at a self-hosted model.

How the Companion works →

Platform

Everything around the code

The parts you would otherwise have to build yourself.

Organizations & roles

Invite your team as owner, member or viewer. Owners write the automations; everyone else gets the access their role allows.

Runs server-side

Your scripts run on Rawtoh, not on the streaming PC. They keep reacting whether or not the editor is open.

Storage

A key-value store your scripts read, write and update atomically — counters, cooldown state, anything that must survive a run.

Cooldowns

Throttle or debounce any trigger so a burst of events fires your action once, not fifty times.

Shared scripts

Put common code in one place and import it from any trigger or action, with autocompletion on the path.

AI on your terms

Use the platform model or your own provider and key, per organization. Add a custom system prompt for your conventions.

Reliability

Built to survive a bad night.

Rawtoh is hosted. So here is exactly what happens when something fails, on our side or on yours.

  • No event is dropped — Every event is queued and acknowledged only once your scripts have run against it. If a runtime restarts mid-burst, the queue replays what it missed.
  • If Rawtoh is down — Triggers and the Board pause. Nothing else does: OBS keeps streaming, your chat keeps running, your scripts are untouched, and everything resumes when we are back.
  • OBS without a browser tab — For a live show, run the local OBS module next to OBS instead of a tab. It survives a closed browser, retries every 5 seconds and reconnects on its own.
  • Each script in its own sandbox — Scripts run in an isolated JavaScript sandbox with memory, stack and time limits. A script that hangs or crashes is killed and its sandbox thrown away; no other automation notices.

Security & reliability in detail →

Your crew

Stop running the show alone

Your crew is already there. Put them to work.

BeforeMods asking "anything I can do?" mid-stream
With RawtohThey switch scenes and fire automations themselves, from their phone
BeforeBeing the only person allowed to touch the setup
With RawtohThe whole crew works from the same online board
BeforeBuying a hardware deck for every operator — or going without
With RawtohEvery teammate already owns the control panel: their browser
Solo

No crew? Still worth it.

Most streamers run alone. Rawtoh still gives you what a local tool can't.

  • Typed from your stack — Autocompletion knows the events and methods of the modules you installed. No guessing payload fields from a forum post.
  • Runs while your PC doesn't — Scripts run server-side. A sub at 3 am still gets its thank-you, and a Cron recap fires without OBS open.
  • Every run is explained — When a trigger doesn't fire, the Activity shows the event, the condition's result, each module call and the error. No log file to dig through.
  • Your phone is the deck — A browser on any device is a control panel. No hardware to buy.

Your show is a team sport.

Connect your stack, script your rules — or describe them — and hand the board to your crew.