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.
- < 10 ms
- from event to your script
- ~60 ms
- Board tap to OBS scene switch
- 0
- polling, everything is pushed
Medians measured in production
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.
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.
1import { log, module } from "rawtoh"23// A mod tapped "BRB" on the board4await 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})1415log("BRB scene is live")
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.
BRB scene is live
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.
Plug in what you use.
A module connects Rawtoh to one of your tools: what happens there comes in as events, and your automations act on it. Twitch and the Board install with your Rawtoh account. OBS stays on your PC: one open browser tab links it to Rawtoh with nothing to install, or the local OBS module, a small program that reconnects on its own.
| Module | Instance name | Status |
|---|---|---|
| Twitch | main-bot | 38ms |
| OBS Studio | studio | 12ms |
| Board | main | 25ms |
| MIDI | x-touch | 9ms |
Twitch
Chat, subs, raids, bits, channel points, polls and predictions as events — and methods to talk, moderate and run your channel.
OBS Studio
Scenes, inputs, audio, streaming, recording, filters and transitions — both as events and as methods your actions can call.
Discord
Messages, reactions, members joining and slash commands as events — and methods to post, react, hand out roles, DM and answer a command.
Cron
Named schedules in any timezone that fire an event on time: a daily recap, an hourly reminder, a cleanup at midnight.
Board
The control panel your crew operates from a browser: a grid of buttons that fire automations and show what your scripts push to it.
Your own
Anything that can open a WebSocket can be a module. SDKs for TypeScript and Rust handle enrollment and reconnection.
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.
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.
Stop running the show alone
Your crew is already there. Put them to work.
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.