Privacy Policy
WesUtil enhances chat, moderation, and playback behavior on kick.com and dashboard.kick.com, and, if you turn it on, on twitch.tv.
Twitch and Spotify access (host permissions, and the cookies permission used to send to Kick from twitch.tv) are requested as optional permissions — the extension installs without them, and only asks for them the moment you turn on a feature that needs them (Twitch clip previews, Twitch chat mirror, WesUtil on twitch.tv, or Spotify link titles). Once granted, the permission stays granted even if you turn the feature back off, so re-enabling it later doesn't require going through the grant prompt again; you can still remove it yourself at any time from about:addons.
Data the extension handles
• Local extension settings stored in the browser's local extension storage (appearance, highlights, moderation, playback, and audio preferences)
• Per-channel preferences such as volume, quality, mute state, highlights, pinned emotes, and audio-normalizer profiles
• Website content — chat-related page content already visible to the signed-in user on Kick (messages, usernames, badges, moderation events), read locally to render emotes, highlights, and moderation tools
• Authentication information — your own Kick session_token cookie and bearer token, read locally in the page and used only to call Kick's own API on your behalf for the daily-reward claim and "followed channels currently live" features. This token is used exclusively to talk to kick.com/web.kick.com on your behalf — it is never sent to the extension developer or any other third party.
• Spotify, Twitch, YouTube and X (Twitter) URLs that appear in chat when link-preview/title features are enabled
• A Twitch username you provide for the Kick/Twitch VOD sync feature, used to look up that channel's archived Twitch VODs via Twitch's own API
• A Twitch channel name you provide for the Twitch chat mirror feature, used to open an anonymous Twitch IRC connection and read that channel's public chat messages, which are then displayed alongside Kick chat locally in your browser
• Twitch account authorization (optional) — if you choose to connect a Twitch account for the Twitch chat mirror feature, the extension requests an OAuth access token from Twitch (via Firefox's built-in identity sign-in flow) with permission to read/send chat messages and, for channels where that account is a moderator, to time out, ban, delete messages, and reverse those actions via Twitch's own Helix API. The resulting token, your Twitch login, user ID, and chat color are stored in the browser's local extension storage and used only to call Twitch's own API (id.twitch.tv, api.twitch.tv) on your behalf — never sent to the extension developer or any other third party. Disconnecting the account in settings deletes this data immediately.
• WesUtil on twitch.tv (optional, off by default) — runs only after you turn on "Enable WesUtil on twitch.tv" and grant the twitch.tv permission. It then handles:
◦ Website content — twitch.tv chat already visible to you (messages, usernames, badges, chat user IDs) and the text you type in Twitch's chat box, read locally in the page to render emotes, name colors, highlights, and emote autocomplete
◦ Authentication information — twitch.tv's own auth-token cookie, read locally in the page and sent only to Twitch's own API (gql.twitch.tv), the same way Twitch's site sends it, to list the Twitch emotes your account can use and whether you moderate the channel you're watching. It is never sent to the extension developer or any other third party. twitch.tv's login cookie (your username) is read locally to highlight messages that mention you and is not sent anywhere
◦ Stored locally only (in the browser's local extension storage): pinned emotes, the last 50 messages you sent in each channel (for arrow-up recall), Twitch user IDs of chatters seen in each channel during the current stream (with that stream's ID) and ever (up to 20,000 per channel), for the first-message highlights, hidden channels and categories, and per-channel quality, mute, and audio-normalizer preferences
◦ Sent to third-party emote services — the Twitch user ID of the channel you're watching goes to 7TV, BetterTTV, and FrankerFaceZ to load that channel's emotes and to 7TV's event service to receive chatters' 7TV personal emotes and paint/badge changes, and the Twitch user IDs of chatters go to 7TV to load their name paints and badges
◦ Sent to Twitch's API without your session — channel and chatter usernames go to gql.twitch.tv (anonymously, with Twitch's public web client ID) to look up user IDs and stream start times for the sidebar uptime
◦ Kick chat mirror (optional, off by default) — the matching Kick channel name goes to kick.com to find its chatroom, and that chatroom's public chat is read over Kick's public chat service (ws-us2.pusher.com) without your Kick session; chatters' Kick user IDs go to 7TV for their paints and badges
◦ Sending to Kick from twitch.tv (optional, off by default) — turning on "Send messages to Kick too" asks for the optional cookies permission. When you send a message to Kick or use a Kick moderator action (delete, timeout, ban, unban), and every few minutes to check whether your Kick account moderates the mirrored channel, the extension's background script reads your kick.com session_token and XSRF-TOKEN cookies and uses them only for that request to kick.com. They are never stored by the extension or sent anywhere else, and you can remove the permission at any time from about:addons
◦ Links in Twitch chat — Kick clip links are looked up on kick.com (as Kick clip previews are on Kick), YouTube links on youtube.com when YouTube link previews are on, X links are looked up on publish.x.com (and shown with X's own embed from platform.twitter.com when you expand one) when X link previews are on, and Spotify links are resolved as described below when that setting is on
What the extension does not do
• It does not require an account with the extension developer
• It does not send settings, chat history, your Kick session/bearer token, or your Twitch auth-token cookie to a developer-owned backend
• It does not sell user data
• It does not use data for advertising
Network requests
The extension makes requests only to the services needed for its visible features:
• kick.com, web.kick.com, dashboard.kick.com, live.kick.com, assets.kick.com, and files.kick.com for Kick chat, moderation, daily rewards, following, badges, and player features
• .playlist.live-video.net and .playback.live-video.net for stream/VOD video delivery (Kick's video CDN)
• ws-us2.pusher.com for Kick's public chat feed, used by the Kick chat mirror on twitch.tv when enabled
• 7tv.io and events.7tv.io for 7TV emote data, live emote-set updates, and 7TV name paints and badges
• api.betterttv.net and cdn.betterttv.net for BetterTTV emote data, when applicable
• api.frankerfacez.com and cdn.frankerfacez.com for FrankerFaceZ emote data on twitch.tv
• cdn.jsdelivr.net for auxiliary static assets used by the emote engine
• open.spotify.com and spotify.link for Spotify link title resolution
• clips.twitch.tv, www.twitch.tv, m.twitch.tv, and twitch.tv for Twitch clip previews
• www.youtube.com (oEmbed, for the video title and channel name) and i.ytimg.com (thumbnails) for YouTube link previews, when enabled (off by default)
• publish.x.com (X's public oEmbed, for the post's author, text and date; only the post URL is sent, without your X session) for X link previews, and platform.twitter.com (X's own post embed, loaded in a frame with X's do-not-track option) when you click a preview to expand it, when enabled (off by default)
• gql.twitch.tv for Twitch VOD sync (looking up a Twitch channel's archived VODs, using Twitch's public web client ID, when you use the VOD sync feature), and for WesUtil on twitch.tv as described above
• www.twitch.tv itself, where WesUtil on twitch.tv runs when you turn it on
• irc-ws.chat.twitch.tv (anonymous IRC-over-WebSocket) and static-cdn.jtvnw.net (Twitch's public badge/emote CDN) for the Twitch chat mirror feature, when enabled
• id.twitch.tv (OAuth sign-in) and api.twitch.tv (Helix API — sending messages and, for channels you moderate on Twitch, timeout/ban/delete/reverse actions) when you connect a Twitch account to the chat mirror feature
Storage
Settings and feature state are stored locally in the browser's local extension storage. Nothing is stored on a remote server controlled by the developer.
Data sharing
The extension does not intentionally transfer personal data, chat content, or your Kick session/bearer token to the developer's own servers or any third party other than the services listed above, each of which only receives the requests needed to render that specific feature (e.g. 7TV only sees emote-set lookups, Spotify only sees the link you're previewing).
Data categories
In summary, this extension handles:
• Website content — yes, as described above (rendered locally, never transmitted to the developer)
• Authentication information — yes, as described above (used only to call Kick's or Twitch's own API, never transmitted to the developer)
• Personally identifiable info, health info, financial/payment info, personal communications, location, web history, and user activity — no
Contact
For privacy questions or support requests, contact infowesutil@gmail.com.