Germans

Twitch chat bot

Ask it something, get a real answer.

germans watches chat for 40 commands and replies with live data โ€” last night's scores, someone's Letterboxd diary, their last chess game, or three reels of a slot machine. No dashboard to learn, no points to farm. Type the command, read the reply.

Stream chat
vet: -nfl
ModeratorChat BotGermanyGermans: DET 31 - 41 BUF (Final) | CAR 34 - 3 ATL (Final) | MIN 9 - 3 CHI (Final)
vet: -spin
ModeratorChat BotGermanyGermans: ๐Ÿ’ฅ JACKPOT! @vet spun ๐Ÿ’Ž | ๐Ÿ’Ž | ๐Ÿ’Ž and hit the ๐Ÿ’Ž jackpot! That's their 2nd ๐Ÿ’Ž jackpot.
vet: -chess hikaru
ModeratorChat BotGermanyGermans: โ™Ÿ๏ธ hikaru won as White vs Baag4Life (3079) by resignation โ€” blitz, now 3463, 11m ago
Send a message
Chat

Sports

Scores without leaving chat

Five sports and eight soccer leagues, read straight off ESPN's scoreboards and cached for thirty seconds so a busy chat doesn't hammer them. Live games are listed first. Save your team once and the bare command shows only them โ€” and pings you when they kick off.

See the score commands โ†’
Stream chat
vet: -setteam nfl Seahawks
ModeratorChat BotGermanyGermans: @vet your default NFL team is now "Seahawks" โ€” just type -nfl from now on.
vet: -next Seahawks
ModeratorChat BotGermanyGermans: Next: SEA vs SF โ€” Sun, Oct 4, 4:05 PM EDT
Send a message
Chat

Games

Two ways to lose a bet

Duels put a timeout on the line: challenge someone, agree how long the loser sits out, and the bot handles the timeout and keeps the records. The slot machine is simple odds, seven emojis and no currency โ€” ๐Ÿ’ lands about one spin in 46, ๐Ÿ’Ž about one in 4,630. Both keep a leaderboard per channel.

See the duel and spin commands โ†’
Stream chat
vet: -duel @9ynee 60
ModeratorChat BotGermanyGermans: โš”๏ธ @vet challenged @9ynee to a duel! Loser gets timed out for 60s! ๐Ÿฉธ
9ynee: -accept
ModeratorChat BotGermanyGermans: ๐Ÿ—ก๏ธ @9ynee outsmarted @vet and won the duel! @vet is timed out for 60s! โณ
Send a message
Chat

Profiles

What they've been watching and playing

Letterboxd diaries, Chess.com games and AniList progress, all read from public profiles โ€” no logins, no tokens, nothing stored but the username you choose to save. Twelve Letterboxd commands alone, down to comparing two people's diaries and finding the film they disagree about most.

See the profile commands โ†’
Stream chat
vet: -lbcompare dave davidehrlich
ModeratorChat BotGermanyGermans: ๐ŸŽฌ dave vs davidehrlich โ€” 3 films in common: Heat: โ˜…โ˜…โ˜…โ˜…ยฝ vs โ˜…โ˜…โ˜… | biggest split: Cats (โ˜… vs โ˜…โ˜…โ˜…โ˜…)
vet: -animestats panumbra
ModeratorChat BotGermanyGermans: ๐Ÿ“บ panumbra: 312 anime, 5104 episodes (86.4 days watched), mean score 74
Send a message
Chat

It also talks without being asked

Four things run in the background and post on their own. Any of them can be switched off per channel, so a chat that doesn't want them never sees them.

New Twitch badges

The global badge list is checked every few minutes and anything new is announced with a link to the image. Those links open on this site, because Twitch's own CDN labels badge images as a download rather than a picture.

  • New twitch global badge: Wolf Medallion โ€” โ€ฆ

New 7TV cosmetics

Paints and badges as they appear on 7TV. Paints are usually CSS gradients with no image file at all, so those link to a page that can actually render them.

  • (7TV) New 7TV paint: Refractive oA โ€” โ€ฆ

Your team's game

Anyone who saved a team with -setteam gets a ping in the channel when that team kicks off, and again at the final whistle. No one has to watch the clock.

Streamers going live

A watch list, announced in the channels you pick โ€” never in the streamer's own chat, where everybody already knows.

  • ๐Ÿ”ด {streamer} just went live playing {game}

Three ways to run it in your channel

Nothing here needs a control panel. Every group of commands has a switch that any moderator can flip from chat, and it only ever affects the channel it was typed in.

Default

Everything on

All seven groups answer anyone, plus the badge and 7TV announcements. This is how a channel starts out.

Picked

Only what suits the chat

Switch off what doesn't fit and keep the rest โ€” a film channel that wants Letterboxd but no slot machine, say.

  • -toggle spin off
  • -toggle letterboxd on
Quiet

Commands only

Turn off the two announcement groups and the bot never speaks unless somebody asks it something.

  • -toggle badges off
  • -toggle 7tv off

The unglamorous half

Most of this exists because something went wrong once.

Cooldowns

Ten seconds per person on lookups, five on duels, four on the save commands. Moderators and the broadcaster are exempt, so one viewer holding a key down can't flood a chat.

What it won't say

Film titles, badge names and profile text all come from other people's data, so every outgoing message is checked against a word list first. Anything that trips it is dropped rather than posted โ€” that has already caught a film title it shouldn't have repeated.

Your saved data

Saved teams and linked Letterboxd, Chess.com and AniList names sit on the machine running the bot and nowhere else. -setlb clear and -unset all delete them whenever you want.

Where it runs

One PC, not a rented server. That's honest about what it is: if the machine is off, the bot is quiet. It reconnects by itself and carries on.

Badges and paints

Announcement links point at germans.pages.dev, which passes you straight to the real image on Twitch's or 7TV's servers. Nothing is hosted here and nothing is tracked.

Found a bug?

If a command answers wrongly or the bot goes quiet in your channel, say so rather than waiting for it to right itself. Here's how to reach me.

Want it in your chat?

Ask, mod it once it joins, and that's the setup finished. It's free, and there's nothing to sign in to.

Message me on Discord