Privacy & Cookies
Last updated: 12 October 2026
In short: we only store what's needed to run the bot and dashboard. We don't use analytics, advertising, or tracking cookies, and we don't record or store your Discord or Twitch chat messages or voice audio.
This site sets a single cookie, connect.sid. It keeps you signed in between page
loads. It does not track you across other sites, and we don't use it for analytics or
advertising.
This cookie is strictly necessary: it's only set once you start signing in (with Discord or a passkey), and it only exists to complete and keep your login session and to protect against cross-site request forgery (CSRF). That's why you won't see a cookie consent banner here.
- Expires automatically after 24 hours
- Marked
HttpOnly, so page scripts can't access it - Sent over HTTPS only
We don't use any analytics, advertising, or third-party tracking cookies anywhere on this site.
- When you sign in with Discord: your Discord ID, display name, and avatar, plus the access level assigned to you in each Discord server the bot is added to.
- If your Twitch channel is linked to your account: your Twitch channel name, so the Twitch chat bot can join your channel and run your commands and timers there.
- If you connect Twitch for stream notifications: your Twitch user ID and the OAuth access/refresh tokens needed to receive that data. These tokens are encrypted at rest and are never stored in plain text.
- If you add a passkey (fingerprint, face, or device PIN sign-in): the passkey's public key and credential ID, the device name you give it, and when it was added and last used. Your fingerprint, face, or PIN never leave your device and we never receive them. Before adding a passkey, the bot DMs you a one-time code on Discord; we only store a one-way hash of that code, and it expires after 5 minutes.
- If you generate a Streamdeck API key: only a one-way hash of it, never the key itself.
- If you request a companion app token: only a one-way hash of it, never the token itself.
- If a connected Twitch channel gets a follow, subscription, resub, gift sub, raid, or channel-point redemption: the event type, the viewer's Twitch display name, and a short detail (for example a raid's viewer count, or a redeemed reward's name). This is shown on the dashboard's live "Recent Events" feed. If you have an active companion app token, the same events for your own channel are also delivered live to your companion app; a redemption's live push additionally includes the reward ID, the redeemer's Twitch login, and any text they entered, none of which we store. Your companion app can also fetch a short history of recent follow/sub/resub/giftsub/raid activity (not redemptions) to catch up after reconnecting, drawn from the same "Recent Events" data described above.
- Loyalty Points is an opt-in feature a streamer turns on for their own channel (it's off by default, and only available once their Twitch account is linked, the Twitch chat bot is enabled, and they're set up as a monitored streamer). Once enabled, we store each viewer's Twitch login and their Loyalty Points balance on that channel, earned by chatting and from subs, resubs, and gift subs. This is a separate, bot-run virtual currency from Twitch's own Channel Points, has no real-world monetary value, and isn't redeemable for cash or goods.
The Recent Events feed and Loyalty Points balances above are the only data we store about Twitch viewers who aren't signed-in users of this site.
We do not record or transcribe voice channel audio, and we do not store the content of Discord
messages or Twitch chat. The bot reads messages to spot its own commands and, on a channel
where the streamer has enabled Loyalty Points, to award chat-earn — neither process stores
the message itself.
Commands like !followage look up the requested information from Twitch at the time
and don't store it. The most recent bot command in each channel is kept in memory for moderators
to see on the dashboard, but it isn't written to a database and is lost on restart.
To provide the service we exchange data with:
- Discord, for login, avatars, the bot itself, and passkey confirmation DMs.
- Twitch, for the Twitch chat bot, chat commands, and stream notifications you opt into.
- OpenAI, only when the bot owner uses the optional "suggest a description" tool for a sound effect. That sends up to 5 of the sound effect's audio clips and its trigger command to OpenAI to draft a description. No account details are sent, but the clips and trigger command themselves may contain personal data, such as a recorded voice or spoken words, since OpenAI is asked to transcribe any recognisable speech.
We don't share your data with any analytics, advertising, or marketing services. We don't use any.
- Login sessions expire 24 hours after being issued.
- Server logs are kept for 14 days, then deleted.
- If your account is removed from the system, your stored Discord/Twitch data is deleted with it, including any encrypted Twitch tokens, passkeys, and your companion app token.
- You can disconnect Twitch stream notifications at any time from User Settings, which deletes your stored Twitch tokens.
- You can remove your own passkeys at any time from User Settings.
- You can revoke your own Streamdeck API key or companion app token at any time from the dashboard. A server administrator can also revoke a Streamdeck key.
- Recent-events activity (follows, subs, raids, redemptions) is capped at the 200 most recent events per connected Twitch channel. Older events are deleted automatically as new ones come in, so this data is never kept indefinitely. It's deleted immediately, in full, if the channel is removed from stream monitoring or its owner's account is removed.
To request deletion of your data, contact a server administrator.