Docs
From invite to a configured server in a few minutes.
Invite
Add Keroku to a server where you hold Manage Server. Slash commands appear at once. The invite asks for these 11 permissions and nothing more.
| Permission | Used by |
|---|---|
| View Channels | Reading channels it posts to or cleans up |
| Send Messages | Modlog and log posts |
| Embed Links | Every post is an embed |
| Read Message History | /purge |
| Manage Messages | /purge, automod deletions |
| Manage Channels | /slowmode |
| Manage Roles | /lock, /unlock, /lockdown |
| Kick Members | /kick, escalation, raid protection |
| Ban Members | /ban, /unban, escalation, raid protection |
| Timeout Members | /timeout, /untimeout, escalation, automod |
| Manage Server | Discord AutoMod rules for mentions and invites |
Role position
Keroku can only act on members whose top role is below its own. Drag the Keroku role above every role it should moderate in Server Settings, Roles. It still refuses to act on the owner, on itself and on anyone above the person running the command.
Modlog and logs
Run /config modlog channel:#mod-log. Every case and cleanup entry is posted there. Keroku checks it can view the channel, send messages and embed links before it saves.
/config logs channel:#logs sets a second channel for message edits and deletes and member joins and leaves. Without it, none of those are posted. Message text in those posts needs the Message Content intent, which the bot operator turns on.
Warn escalation
A step runs an action when a member reaches an exact number of warnings. For example /config escalation add warnings:3 action:timeout duration:1d, then /config escalation add warnings:5 action:ban. Up to 10 steps, at 1 to 50 warnings. Timeouts need a duration, bans take an optional one, kicks take none. Escalation actions run the same checks as manual ones and create their own case.
Automod
Every rule is off until you turn it on. Members with Manage Messages, administrators and the owner are never checked, and bots are ignored.
| Rule | Command | Default |
|---|---|---|
| Spam | /config automod spam | 6 messages in 5 seconds |
| Duplicates | /config automod duplicates | 3 times in 30 seconds |
| Links | /config automod links | Allowlist, up to 50 domains |
| Mentions | /config automod mentions | Off. Discord AutoMod rule |
| Invites | /config automod invites | Off. Discord AutoMod rule |
With /config automod timeout duration:10m, a member who trips a rule is also timed out, which creates a case. The two Discord AutoMod rules are named Keroku mention spam and Keroku invite links. Keroku edits only rules it created.
Raid protection
/config raid set enabled:true joins:10 seconds:10 minage:1d action:kick. When the join limit is reached inside the window, Keroku posts Raid detected to the modlog. With kick or ban it removes every member who joined in the window and every member who joins while the burst lasts, one case each. With lockdown it locks the server for the lockdown length, 15 minutes by default. With a minimum age set, younger accounts are kicked on join, or banned when the action is ban.
Durations
Units w, d, h, m and s, largest first, like 1d4h or 30m. At least 1 minute where a duration is an action length. Timeouts and temporary bans go up to 365 days.
Dashboard
The dashboard edits the same settings as /config, lists cases with their edit history, and shows pending timed actions. A temporary ban, a timed lock or a timed lockdown can be ended early from there; Keroku runs it within seconds, exactly as if it had expired. Changes reach the bot at once. Access needs Manage Server in the server, checked against Discord on every request.
When something fails
If Discord refuses or does not answer, nothing is recorded and the reply says so. If Discord applied the action but the case could not be saved, Keroku reverts the ban, unban or timeout and says it did. Kicks cannot be reverted; the reply says the kick happened without a case and gives a reference id.
What is stored
| Data | Kept |
|---|---|
| Cases: server, number, action, member id, moderator id, reason, duration, time | Forever |
| Reason edits: editor id, old and new reason, time | Forever |
| Settings: channel ids, escalation, automod and raid settings | Until changed |
| Pending timed actions | 30 days after they finish |
| Servers Keroku is in: id, name, icon, owner id, member count | While Keroku is in the server |
| Dashboard logins: your Discord profile and server list | Until the login expires, at most 7 days |
| Dashboard activity: who changed which setting | 180 days |
Message content is never written to the database. More in the privacy policy.