Cookiebot
The Telegram group bot for furry community chats — what it does, and how to run it in your group
Cookiebot keeps a Telegram group habitable. It screens people at the door,
greets the ones who get in, holds the group's rules, keeps sticker floods and
drive-by image spam under control, and carries about forty commands the group
actually uses — from /rules to /battle.
It speaks English, Portuguese and Spanish, every command works in all three, and Telegram is the entire interface: no account, no dashboard.
Set it up in five minutes
Add the bot, promote it, set a language, a welcome and the rules.
Every command
The full list, generated from the parser, with each Portuguese and Spanish spelling.
What it does
🛡️ Guards the chat. A captcha on join with five attempts and an admin override, three block lists checked at the door, a per-group sticker-flood limit, and a media hold on brand-new accounts. Raids stop at the door instead of in the moderators' notifications. → Moderation
👋 Runs the room. Welcome messages with nine placeholder spellings, the rules, three languages picked up automatically from whoever added the bot, and per-event skins so a convention can run its own bot on the same core. → Welcome, rules and language
🎲 Is fun to have around. Dice, ships, battles decided by a poll, memes built from profile pictures, distorted stickers, fortunes, resurfaced old messages — and the bot answering in character when you talk to it. → Fun
🧰 Does the chores. Birthdays (including an unprompted daily post), calling the admins with one confirmed press, pinging everyone, YouTube search, and rewriting X / TikTok / Bluesky links into a form Telegram will preview. → Everyday utilities
🤖 Talks, listens and looks things up. Conversational replies, voice notes transcribed and answered, music recognised from a voice note, reverse image search, and any unknown command turned into an image search — each with its own limits, and a per-group switch. → AI features
🎁 Runs the community's events. Raffles drawn in the group with entry buttons and an admin-only end, countdown posters for the partnered conventions, and a publisher that carries approved posts between partnered groups. → Giveaways and events · Cross-posting
Being rebuilt in the open
Cookiebot has run in furry community groups for years under several names — Cookiebot, Bombot, Pawsy, Tarinbot. v2 is a rewrite that has to earn every switch-over: a feature moves only once its behaviour is captured as an executable scenario and that scenario passes. Groups keep running on the current release until then.
Offline suite at generation time: 2 failed, 3445 passed, 44 skipped, 232 deselected, 2 warnings in 32.19s. Measured from commit 1aa8c83 on 2026-08-30.
Progress board
Milestones, the scenario ledger, and where the spec and reality disagree.
Features
One page per feature: what it does, what must not change, whether it has moved.
Architecture
Four services, Citus, the compiled hot path — and why.
Development
Setup, the task runner, the test pyramid, the gates.
How this site is built
Two kinds of page, and it is worth knowing which one you are reading.
Measured — the progress board, the header on every feature page, and the
command tables under Commands — are generated from the bot's own spec, alias
table and a real test run (python scripts/cb.py docs-sync). Nothing on them
is an opinion: a feature that claims to be done without a passing scenario is
reported as a finding, on the page, in amber.
Written — everything else. Intent, behaviour that must not change, and the traps. The generator never touches it.