Appearance
Permissions and intents
Kaveh asks Discord for as little as it needs. This page says what each permission and "intent" is for, so you can judge whether it's reasonable for your server. Kaveh never asks for Administrator when you add it.
Permissions requested when you add Kaveh
| Permission | Why Kaveh needs it |
|---|---|
| View Channels, Read Message History | To see the channels it works in and read messages for automod, leveling and chat |
| Send Messages, Send Messages in Threads, Embed Links, Attach Files | To reply, post logs and show cards, transcripts and images |
| Add Reactions, Use External Emojis | Starboard and suggestion votes, and nicer messages |
| Manage Messages | Automod deletes spam, blocked terms and invite links |
| Kick Members, Ban Members, Moderate Members (timeout) | The moderation commands and the strike ladder |
| Manage Channels | /setup creates log and modmail channels; modmail creates one private channel per conversation |
| Manage Roles | /setup creates the Moderator and Admin roles; leveling grants reward roles |
| Manage Webhooks | Modmail shows a member's messages with their name and avatar |
| Manage Threads, Create Public Threads | Thread-based features and keeping modmail tidy |
| Connect, Speak, Use Voice Activity, Set Voice Channel Status | Music playback and the "now playing" status |
You can remove any of these. The matching feature will tell you what is missing instead of failing silently. /setup status verify:true lists anything absent.
Kaveh can only give a role permissions it has itself. Because it doesn't hold Administrator, the Admin role that setup creates is a plain marker role: it unlocks Kaveh's admin commands but gives no extra Discord permissions.
Privileged intents
Discord requires bots to justify two "privileged intents". Kaveh uses both, for these features and nothing else.
Message Content
Discord stops bots from reading what is in a server message unless this intent is on. Kaveh reads message text only to:
- Automod: check messages against your rules (blocked terms, invite and link limits, caps, repeats, mention spam). Message text is checked and discarded; it is not stored. If a message is removed, the first part of it can appear in your own mod-log channel.
- AI chat: answer people who message the chat feature in the channel you choose, or who mention the bot. Those messages are kept for 30 days (see the Privacy Policy).
- Starboard: copy the text of a popular message into your starboard channel.
- Leveling: only the length of a message is checked (to ignore very short ones); the text is not stored.
- Economy: the same, only the length of a message is checked before it earns coins. While a word game that an admin started is running, messages in that game's channel are also compared with the answer. The text is not stored.
- Logging: if a server admin turns on "include message content", edited and deleted messages are written to that server's own log channel. It's off unless they choose it.
- Modmail: read your staff's messages in a conversation channel to keep staff-only chat in the transcript and to relay replies. Members' direct messages to the bot don't need this intent.
Kaveh does not read messages to build profiles, advertise, or train AI models.
Server Members
This lets the bot see who is in a server and be told when members join, leave or change. Kaveh uses it to:
- Welcome members, assign an auto-role, and thank boosters.
- Verification: see who joins, give the Member role to people who pass the check, and notice a raid (many joins in a short time).
- Log joins, leaves, nickname and role changes to the server's log channels.
- Check roles and permissions: apply "ignore staff" in automod, and let moderators and admins use commands.
- Moderation and leveling lookups: find a member to warn, time out or reward, and give or remove level reward roles.
- Booster perks: give boosters the booster role and chat permissions the server turned on.
- Modmail: work out which shared servers a member can contact, and check that staff are really in the server.
Kaveh does not collect member lists or export them. Data it keeps about members is described in the Privacy Policy.
OAuth scopes (dashboard sign-in)
Signing in to the dashboard uses Discord OAuth with two scopes: identify (your name and avatar) and guilds (the servers you're in, used to show only the ones you manage). Kaveh never asks for your email or the ability to act as you.