yukoe
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
1Command prefix, zero legacy syntax
100%Local language detection
Commands

One prefix, with short commands where speed matters

Every yukoe command starts with ^, leaving ! to Nightbot and other channel bots. Only four compact pairs use case: lowercase returns text, while uppercase adds a short reading. Full-word settings ignore case, and a Japanese IME's full-width is normalized before matching.

^t / ^T Anyone

Text or text + voice

The uppercase partner performs the same task and adds only the useful reading — never a whole wall of explanation.

^T ja good luck today
^ Live control

Short when it is urgent

Stopping speech during a busy stream should never require a namespace or a long command.

^skip
^ Streamer & mods

Readable settings

Things changed occasionally can use a clear full word, and the same setting remains available in the app.

^kaomoji subtle
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 read the translation aloud — not both full messages.Shipped
  • ^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 / ^E <word>Look up an English word; uppercase also speaks its concise pronunciation.Next
  • ^j / ^J <単語>Look up Japanese text; uppercase also speaks its reading.Next
  • ^s / ^S <文>Split a Japanese sentence; uppercase also reads the source sentence.Next
  • ^helpPost this channel's yukoe command-guide link.Shipped
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.Shipped
  • ^clearCut it and drop everything waiting, when chat has run away from you.Shipped
  • ^tts on|offSilence the reading without touching translation.Shipped
Shippedbuilt and tested Nextthe syntax is fixed and understood; the behaviour is being wired up
One grammar

No compatibility syntax to remember

Bare language labels stay ordinary chat, and ! remains available to the other bots in your channel. If it is a yukoe command, it starts with ^.

Case has one job

Uppercase means a short reading

Only t/T, e/E, j/J, and s/S form pairs. Full-word commands ignore case, so the distinction never has to be guessed.

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.

  • Consistent voice pools, without viewer records. If you enable a pool, a login deterministically receives the same voice tomorrow and on another machine — no viewer database required.
  • 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
VoiceEdge / VOICEVOX / AivisSpeechPremium 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 local voice engine

Edge works without an API key. Add free VOICEVOX or AivisSpeech for local Japanese voices.

Optional — an API key

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