snowy-twitch-bot
Local-first Twitch bot

Your chat speaks
three languages.

It translates your Twitch chat, reads it aloud in the right voice for each language, and answers your viewers' language questions — all on your own machine.

Runs on your PC Free by default Your keys stay yours
¥0Default running cost
3Command prefixes, zero collisions
100%Local language detection
Commands

Three prefixes that don't fight the bot you already run

Nightbot, StreamElements and Sery_Bot all own !. This one doesn't — so it can sit in a channel without answering someone else's commands, and nobody gets two replies. Full-width ^ ! : from a Japanese IME are normalized before matching, so no one switches keyboards mid-sentence.

ja: Anyone

Language shortcut

Name a language, then say the thing. Nothing to learn, and it's the syntax twitchTransFreeNext viewers already know.

ja: good luck today
^ Anyone

Tool commands

One character, one keystroke, and almost unused by mainstream bots. Translation, dictionary, and the AI helper all live here.

^a 一期一会
^^ Streamer & mods

Control commands

Doubling the character is both the privilege marker and something you won't hit by accident mid-sentence.

^^kaomoji subtle
Language shortcut Any viewer
  • ja: <text>Force this line into the language you name — any of 75, not just the two your channel is set to.Shipped
Tool commands Any viewer
  • ^t <text>Translate one line, without changing anything for the rest of chat.Shipped
  • ^t en <text>Same, but pick the target language yourself.Shipped
  • ^T <text>Translate and have it read aloud.Next
  • ^a <word>Ask the AI what a word or phrase means.Shipped
  • ^g <sentence>Have a sentence checked for grammar.Shipped
  • ^n <word>Ask what something really implies — tone, register, when not to say it.Shipped
  • ^ai <question>Ask anything, answered short enough to read while you're live.Shipped
  • ^e <word>Look a word up in an English dictionary.Next
  • ^j <単語>Look a word up in a Japanese dictionary.Next
  • ^s <文>Break a Japanese sentence into words, with readings.Next
  • ^helpList what this channel has switched on.Next
Control commands Streamer & mods only
  • ^^trans on|offStop or resume translating, without stopping the bot.Shipped
  • ^^style <name>Switch register mid-stream: faithful, natural, kawaii, or formal.Shipped
  • ^^kaomoji <mode>How much personality the posted lines carry: off, subtle, or expressive.Shipped
  • ^^skipCut the line being read aloud right now, keep the rest.Next
  • ^^clearCut it and drop everything waiting, when chat has run away from you.Next
  • ^^tts on|offSilence the reading without touching translation.Next
  • ^^voice <user> <voice>Give a regular the voice they asked for, and keep it.Next
  • ^^mute <user>Never read this viewer aloud — while still translating them.Next
  • ^^so <user>Shout someone out.Next
Shippedbuilt and tested Nextthe syntax is fixed and understood; the behaviour is being wired up
If your chat expects !

Aliases you turn on one at a time

!en, !dict and friends exist, but every one of them is off until you enable it — so nothing is claimed out from under a bot you already run.

Quiet by design

A typo doesn't become chat spam

An unknown ^x, a malformed argument, or a viewer reaching for a mod command gets no reply at all. Every prefix is remappable if these collide with your channel's habits.

Translation

Built for how chat is actually written

Real chat is short, mixes languages mid-sentence, and is full of noise. Most bots quietly drop exactly those messages.

what does 一期一会 mean?

Read as an English question quoting a Japanese term, so it travels outward to your audience instead of being translated back into English. Four kanji don't outvote a whole English sentence.

この clip 最高

Stays Japanese. One borrowed English word doesn't flip the direction.

hello

Five letters is enough. Short greetings are the most common message in chat, and the one most bots fail on.

gg wp

Recognised as shorthand and skipped. No API call, no nonsense translation.

Never silent

Nothing disappears

When local detection can't name a language, the engine's own detection decides — and can correct the route afterwards.

Cost

Cached and layered

Repeats come from a local cache. Engines are tried in order, so one provider going down doesn't stop your stream.

Voice

Read aloud — in the right voice for each language

One message is often bilingual. Reading it with a single voice mangles half of it.

ありがとう thanks a lot

Split into a Japanese run and an English run, each spoken by its own voice.

  • Every viewer keeps their own voice. Assigned from their name, so the same person sounds the same tomorrow and on another machine. You start recognising regulars by ear.
  • Names are said, not spelled. A login is read as words, and the announcement is spoken in the language being read — not always in English.
  • A pronunciation dictionary fixes names and in-jokes the engine gets wrong. It changes only what is spoken, never what your viewers see.
  • Built for a busy chat. Your commands never queue behind backlog, repeated spam is spoken once, long messages are trimmed at a word boundary, and stale ones are dropped rather than read minutes late.
  • Stop instantly. Skip the current line or clear everything waiting, without stopping the bot.
AI helper

What the four AI commands actually say back

Answered briefly enough to read while you're live.

^a

Explain a word

“Ichigo ichie means every encounter is unique and will never happen again.”

^g

Check grammar

“I have a pen. The subject ‘I’ takes ‘have’, not ‘has’.”

^n

Explain nuance

“Yabai is versatile casual slang — terrible or amazing, depending on tone.”

^ai

Ask anything

Short and direct, and says so when it doesn't know.

Cost control

Built for strangers

Every AI call is triggered by a viewer and costs money. A per-viewer cooldown, a channel-wide ceiling, and a concurrency cap are part of the design — not options you must remember to switch on.

Fairness

Outages are on us

If a request never reaches a provider, the viewer gets their cooldown back instead of being charged for a failure that wasn't theirs.

Beside your stream

Made to sit next to a live broadcast

Workspace

A focused chat window

A second window with just chat and translations. Adjustable reading size and background transparency, optional always-on-top, hideable title bar.

Setup

Three minutes, not three hours

Authorize Twitch once, pick two languages, choose private or public translations. Everything else has a sensible default.

Languages

Trilingual interface

The app and its guide are written in English, Japanese, and Traditional Chinese.

Personality

Not a machine printout

Kaomoji, mood detection, and translation style presets, so the bot sounds like part of your channel.

Privacy

Your machine, your keys

Credentials are encrypted by the operating system, never left in plain config files. Local voices mean chat audio never leaves your PC.

Pricing

Free by default

Paid providers are upgrades, never requirements.

JobFree optionOptional upgrade
TranslationGoogle AI Studio free tierGoogle Cloud Translation
VoiceVOICEVOX / AivisSpeech — localCloud voices
AI helperGoogle AI Studio free tierAny OpenAI-compatible provider
Language detectionLocal, no API call
Status

What's here, and what's next

An honest list. Shipped means shipped and tested.

  • Chat translation with mixed-language routing, caching, and failover
  • Text-to-speech with per-language and per-viewer voices, and a pronunciation dictionary
  • AI explain / grammar / nuance / ask, with built-in spending limits
  • Streamer chat window, trilingual dashboard, profile transfer
  • Audio output-device selection, for routing voice into OBS
  • Dictionary lookups across multiple Japanese and English sources
  • Viewer profiles, greetings, and stream overlays
Requirements

What you need

Windows

A desktop app that lives in the system tray.

A Twitch account

Authorize once. A separate bot account is supported, and recommended if you post translations publicly.

Optional — a voice engine

VOICEVOX or AivisSpeech, both free, if you want chat read aloud.

Optional — an API key

A free-tier key improves translation quality and enables the AI commands.