Appearance
Privacy Policy
Effective date: 19 October 2026
This policy explains what Kaveh ("the bot", "Kaveh", "we") collects, why, how long it is kept and what choices you have. Kaveh is a Discord bot made and run by an independent developer. It is written to be read, not skimmed past, so it is short on legalese.
The short version:
- Kaveh stores only what its features need, and only for the features a server has turned on.
- Message text is read to run automod, chat and a few other features; it is not stored, except where a feature is about keeping messages (modmail conversations, AI chat for 30 days, suggestions).
- Kaveh doesn't sell data, show ads, or train AI models on your messages.
- You can see and delete your personal data with
/privacy exportand/privacy delete. - When Kaveh is removed from a server, that server's data is deleted after 30 days.
Who is responsible
The developer who runs Kaveh is the controller of the data described here. For moderation records, modmail conversations and other things a server's staff create about their own community, the server's owner and staff decide what to record and are responsible for using Kaveh lawfully in their server (for example, telling members that modmail and logging are on). Kaveh stores that data on the server's behalf.
How to reach the developer is in Contact.
What Kaveh collects
From the servers where it is used
| Data | What it is | Why |
|---|---|---|
| Server settings | Channel and role IDs, language, message templates, feature switches | To work as configured |
| Moderation records | Cases (action, reason, moderator and member IDs, time), notes, strikes, appeals, blocked terms and allowed domains | To run moderation, strikes, automod and appeals |
| Modmail | The member's ID and name, messages in the conversation, staff-only notes, files that were sent (copied to Kaveh's storage), tags, priority, who closed it, and a transcript | To relay messages between members and staff and keep a record for the server's staff |
| Leveling (if enabled) | Per member and server: XP, level, message count, reputation, last active time, voice minutes; reward roles; badges earned (which badge, when, and whether staff gave it). Not the text of messages | To rank members, grant reward roles and show badges |
| Economy (if enabled) | Per member and server: coin balance, total coins earned, the day of the last daily reward and the daily streak. Shop items a server's staff create (name, price, role). Not a record of what members bought beyond the role they now hold | To run the coins, daily reward and shop |
| Starboard and suggestions (if enabled) | Message and channel IDs and star counts; suggestion text, author ID, votes and staff notes | To run those features |
| Embed assets | Images a server's staff upload in the dashboard | To use them in embeds |
From members who use Kaveh directly
| Data | What it is | Why | Kept |
|---|---|---|---|
| AI chat | What you write to Kaveh's chat feature, its replies, and your tone and length preferences | To hold a conversation | 30 days, or until you run /chat clear or /privacy delete |
| Optional profile | A bio, pronouns, timezone, country, short title, card theme and background image you choose to set, which badges you pinned, and whether you asked to be left off public leaderboards | To show on your profile card and to honour your choice | Until you change it or delete it |
| Commands you run | The command arguments are processed to answer you; most are not stored | To answer | Not stored, apart from the features above |
From your member page and public leaderboards
Anyone with a Discord account can sign in to their own page ("My profile") with Discord OAuth using only the identify scope. Kaveh sees your Discord ID, name and avatar, and nothing else: not your server list, not your email, and it can't act on your behalf. The access token isn't kept. The page shows your own levels, rank and profile for servers where you have activity, and lets you change your profile title, card theme, pinned badges and leaderboard choice.
A server's admins can switch on a public leaderboard for their server. Anyone with the link can then see, for people who haven't chosen to stay off it, their Discord display name, avatar, level and XP. Kaveh doesn't publish Discord IDs there. The names and avatars are read from Discord when the page is opened and cached for up to an hour; they aren't copied into Kaveh's database. You can leave every public leaderboard at any time with /profile leaderboard or on your page. Your XP and level keep counting either way.
You can also take part in the global ranks, a list of members ranked across servers. It is off until you switch it on. If you do, your Discord display name and avatar are shown on the global ranks page next to a score worked out from your XP in the servers where Kaveh counts levels, and how many servers counted. Server admins can leave their server out of it. Switching it off removes you from the list straight away, and it never shows your Discord ID.
You can also switch on a public profile page. It is off until you do, and it can only be reached through a random link that you can replace or delete. It shows your Discord display name, avatar, profile title and, for the servers you choose (and only those whose admins have switched on a public leaderboard), your level, rank and pinned badges. It does not show your Discord ID and it is kept out of search engines, but anyone you or others share the link with can open it, so share it with care. Deleting the page forgets its link and your choices, and /privacy delete removes it too.
Other ways to sign in
Your Kaveh account is your Discord account, and Discord is always required: you create the account by signing in with Discord, and Discord can't be removed from it. From My profile you can also link a Google account, a GitHub account, an email address or a passkey, and then use any of them to sign in to your member pages. Linking only works straight after a Discord sign-in. A linked method opens your member pages; it does not open the admin dashboard, which needs Discord's own permission check.
For each method Kaveh stores the provider's own identifier for you (a Google or GitHub account ID, your email address, or a passkey's public key and use counter), a label you can see (an email address, a username or a device name) and when it was linked and last used. Google and GitHub are asked only for the basics needed to recognise you (an account ID, plus a verified email from Google or a username from GitHub); no password is ever seen or stored, and no Discord data is sent to them. A passkey's private key never leaves your device. If you ask for a sign-in link by email, the address is used only to send that link, which works once and expires after 15 minutes, through the mail service the server is set up with.
You can remove any linked method on My profile, and /privacy delete removes them all. They are included in /privacy export.
From the dashboard
Signing in uses Discord OAuth with the scopes identify and guilds. Kaveh sees your Discord ID, name and avatar and the list of servers you are in, and uses the list only to show the servers you manage. It never sees your password or email. Access tokens are held in the server's memory for your session and are not written to the database. A signed session cookie and an anti-forgery token keep you signed in.
Like any website, the dashboard's server can log technical details such as your IP address, the page requested and the time. These logs are used for troubleshooting and security, rotate automatically and are not shared.
From logs and diagnostics
Kaveh writes operational logs (errors, command usage, health). They can include Discord IDs and the name of the command that failed. They are used to find and fix bugs, rotate automatically and are not shared.
What Kaveh does not collect
Kaveh does not record voice audio, does not read your direct messages except messages you send to it for modmail or chat, does not track you across other sites and does not build advertising profiles.
Message content
Kaveh uses Discord's Message Content intent. Messages in servers are read to run automod, chat, leveling, economy, modmail and starboard, as described on Permissions and intents. Text is checked and discarded unless a feature exists to keep it:
- Modmail conversations are kept for the server's staff.
- AI chat messages are kept for 30 days.
- Suggestions are kept as the suggestion text.
- If a server admin turns on "include message content" in logging, edited and deleted messages are written to that server's own log channel. Those logs live in Discord, in the server, not in Kaveh's database.
Who else sees data
Kaveh doesn't sell or rent personal data. It is shared only as follows:
Discord, because the bot runs on Discord, and Discord's own terms and privacy policy apply to messages sent there.
Google and GitHub, only if you choose to link or sign in with them: they learn that you signed in to Kaveh, as with any site that offers their sign-in.
The email service, only if you ask for a sign-in link by email: it handles that one message.
Cloudflare, which provides the secure tunnel to the dashboard and website; web requests (including IP addresses) pass through it.
Services that answer a command. If you use a command that looks something up, the text you typed is sent to the service that answers it:
/info translatesends the text to MyMemory (translated.net)/info weathersends the place name to Open-Meteo/info currencyuses open.er-api.com/info dictionaryuses dictionaryapi.dev, and/info wikiuses Wikipedia- music searches and links go to YouTube and, for links, Spotify's oEmbed and Apple Music pages
/funimage commands fetch pictures from public animal-image services
Their own privacy policies apply to what they do with it. None of these receive your Discord ID.
AI chat is processed on a model that Kaveh's developer hosts, not by an external AI provider.
Legal reasons: if the law requires it, or to protect people from serious harm.
How long data is kept
| Data | Kept |
|---|---|
| AI chat history | 30 days, then deleted automatically |
| A server's data (all of the above for that server) | Until the server's staff remove it or Kaveh is removed from the server, then 30 days, then deleted automatically. If Kaveh is added back within 30 days nothing is lost |
Personal data you erase with /privacy delete | Removed immediately, apart from backups (see below) |
| Backups | Kaveh is backed up daily, and the most recent copies (about two weeks) are kept. Deleted data disappears from backups as they roll over |
| Logs | Rotated automatically; kept only briefly |
Moderation and modmail records are kept as long as the server wants them, because they are the server's own record. Server staff can delete them (for example with the dashboard and /mod case remove).
Your choices and rights
- See your data:
/privacy exportsends you your personal data as a file. - Delete your data:
/privacy deleteerases your AI chat history and preferences, your profile, your leveling progress and your badges in every server. It does not remove records that a server's staff keep about their own community (moderation cases, modmail conversations, suggestions). Ask that server's moderators about those, or contact the developer if you need help. - Clear AI chat only:
/chat clear. - Stop leveling data: ask the server's admins to turn leveling off, or use
/privacy delete. - Object, correct, restrict, or complain: depending on where you live (for example under the EU/UK GDPR) you may have more rights. Contact the developer and they will help. You can also complain to your local data protection authority.
Children
Discord requires users to be at least 13 (or the older age required in their country). Kaveh isn't directed at children and doesn't knowingly collect data from anyone under that age. If you think a child's data is stored, contact the developer and it will be removed.
Security
Kaveh limits access to what's needed: the database only accepts connections from the machine it runs on, dashboard access requires signing in with Discord and being a manager of that server, secrets are kept out of the source code, and connections to the dashboard are encrypted. No system is perfectly secure; if there is a breach that affects you, Kaveh will tell the affected servers and take the steps the law requires.
Where data is stored
Kaveh runs on servers operated by its developer. Data may be processed in the country where those servers are, which may differ from where you live. Where transfers across borders need safeguards, they are used.
Changes
If this policy changes in a meaningful way, the date at the top changes and, for significant changes, Kaveh will say so in its documentation or to server owners. Continuing to use Kaveh after a change means you accept it.
Contact
Join the Kaveh support server and message a moderator to say you have a privacy request. They will arrange a private conversation with the developer. Please don't post private details in public channels.