yukoe
Start here · Setup
Local-first Twitch bot

English and Japanese,
together in your chat.

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
<GPick a voice before the message
100%Local language detection
Commands

Clear commands, plus instant voice selectors

Tools and controls use ^, leaving ! to Nightbot and other channel bots. Every paired command keeps one rule: lowercase returns the result; uppercase performs the same task and asks for concise TTS.

<G Anyone

Choose the voice first

Put the selector before the message. For viewers it follows the Live TTS switches; the older G< spelling remains an equal alias.

<G good luck today
^ Streamer & mods only

Short when it is urgent

Control commands are consumed silently for everyone else. Permission belongs to the command, not its punctuation.

^skip
^ Any viewer

The fastest word lookup

Type the caret, one space, and one word. The space is what makes ^ the command.

^ hello
Translate & ask Any viewer
  • ^t [lang] <text>
    ^T [lang] <text>
    Translate one line. The target language is optional; uppercase adds one concise reading of the translation.Shipped
  • ^ja <text> · ^JA <text>Use any supported language code as a shortcut. Lowercase returns text; an all-uppercase code also reads it aloud.Shipped
  • ^ai / ^AI [lang] <question>
    ^a / ^A [lang] <question>
    Talk with AI; ^a is the compact alias and the optional language chooses the reply language. Uppercase reads the answer exactly once.Shipped
  • ^g / ^G <sentence>Have a sentence checked for grammar. Uppercase also requests one concise reading.Shipped
  • ^helpPost the public yukoe command-guide link in chat.Shipped
Look up words Any viewer
  • ^e / ^E <word>Look up an English word; uppercase also speaks its concise pronunciation.Shipped
  • ^j / ^J <単語>Look up Japanese text; uppercase also speaks its reading.Shipped
  • ^ <word>Type ^, one space, and one word. English opens the English card; Japanese or Han text opens the Japanese card. The space is required.Shipped
One-message voices Any viewer
  • <G <text> · <F … · <M …
    <W … · <WF … · <R …
    Choose cute, female, male, whisper, female-whisper, or random TTS for one message. The older G<-style forms remain aliases.Shipped
Live safety Streamer & mods only
  • ^trans on|offStop or resume translating, without stopping the bot.Shipped
  • ^tts on|offSilence the reading without touching translation.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
Posting style Streamer & mods only
  • ^style <name>Switch register mid-stream: faithful, natural, kawaii, or formal.Shipped
  • ^kaomoji <mode>Choose how often the bot adds text faces to its own posted replies: off, subtle, or expressive. It never changes viewer messages or enters TTS.Shipped
Shippedbuilt and tested
Useful aliases

One feature can have more than one good input

The guide leads with <G because the selector reads naturally before the message. G< remains an equal alias; both reach the same tested feature.

Case has one job

Uppercase means a short reading

For viewers, uppercase and voice selectors still obey the master and EN/JA TTS switches. Broadcasters and moderators can force one bounded reading; only they can use controls and settings.

Word cards

One word becomes something you can study

Every ^E, ^J, or instant lookup such as ^ hello or ^ 猫 appears in yukoe as a card — not only as a line sent back to chat.

一期一会いちごいちえ↻ repeat on

once-in-a-lifetime encounter · JMdict

snow/snəʊ/↻ repeat on

frozen precipitation · Free Dictionary API

  • 1The card keeps the headword, IPA or Japanese reading, definitions, and source together.
  • 2The pronunciation switch sits immediately beside the reading. Turn it on to repeat sequentially; turn it off to stop after the current pronunciation.
  • 3Card playback is a local operator action, so it can be used for study even while viewer TTS is muted.
Automatic lookup speech

A complete explanation, or quiet

Automatic lookup speech reads only one complete concise explanation. If it exceeds the speech budget, the card remains visible and speech is skipped instead of cutting the definition in half.

Local audio cache

Repeat without waiting

Repeated pronunciations and viewer action cues use a bounded local audio cache. Ordinary chat, translations, definitions, and AI answers are never cached as audio.

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.

今日は happy ですよ

Render every Japanese and English run from left to right, then join them into one uninterrupted reading.

  • 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.
  • Visual chat stays visual. Official Twitch emotes, 7TV/BTTV/FFZ names, Unicode emoji, and kaomoji never enter TTS.
AI helper

Talk with AI while you're live

Answered briefly enough to read while you're live.

^ai/^AI · ^a/^A

Talk with AI

Ask anything. The answer stays short enough to read during a stream.

^g / ^G

Check grammar

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

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

One window, focused when you need it

The main app switches in place to just chat and translations. Keep the movable Windows title bar, tune reading size, collapse controls, and pin only when useful.

Setup

One app, one calm path

Open yukoe.exe, enter Twitch details in its secure local form, and start with free translation or your own key. The app saves and restarts for OAuth.

Language focus

English + Japanese first

Translation, reading, and dictionary tools are designed around real English/Japanese streams.

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 conversation and grammar help, with built-in spending limits
  • In-place focused chat view, an EN/JA-first dashboard, and profile transfer
  • Audio output-device selection, for routing voice into OBS
  • Offline Japanese and cached English dictionary lookups, with a local study notebook
  • 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

Not required to start. Add or replace your own Google/Gemini key later in the same local form.