Aegisbot

[!CAUTION]
This project is under active development and is not yet ready for production use.
I strongly advise not using it until a stable release is published.
Contributions (especially the creation of rules) and feedback are welcome and appreciated once the core is complete.
🛡️ CEL-based Discord defense
Aegisbot is a novel Discord bot with CEL-based auto-moderation - not just yet another "auto-mod" clone.
It allows for fine-grained detection of malicious, spammy, or unwanted behavior using customizable matching rules written in a simple and common syntax such as YAML, rather than static keyword lists or simplistic triggers.
Huge thanks to @evilsocket for giving this bot idea.
Getting Started
Installation
🚧 Installation instructions will be added once the bot reaches a usable development milestone.
For now, feel free to watch the repository or join the Discord server to stay updated.
Prerequisites
- Go ≥ 1.26.4
- A Discord bot token
Run Locally
git clone https://github.com/kkrypt0nn/aegisbot
cd aegisbot
make run
Features
Coming soon!
TODOs
Aegisbot will (hopefully) support:
Soonish
- Pre-defined matches, like those weird and spammy characters
- Rule tags
Long-term
- Scanning of messages, user profiles, rate of messages, etc.
- A GUI
- To add, remove, deactivate and edit the rules
- To run the bot super easily for local development
Rule example
Currently a rule may look like
- rule:
name: "CryptoScamPictures"
meta:
event: "message_create"
ignoreBots: true
actions:
- type: "timeout"
duration: "6h"
expression: |
message.getLinks().size() == 4 &&
message.getLinks().all(l,
(
l.startsWith("https://cdn.discordapp.com/attachments/") ||
l.startsWith("https://media.discordapp.net/attachments/")
) &&
l.matches(".*\\.(png|jpg|jpeg|gif|webp)(\\?.*)?$")
)
Documentation
The documentation is available at https://aegisbot.krypton.ninja
Troubleshooting
The project is not meant to be used in production at the moment.
In the meantime, feel free to join the Discord Community to follow development updates or ask questions.
Contributing
Contributions are more than welcome, but please wait until a v1 is released.
When it's time, please follow:
License
This bot was made with 💜 by Krypton and is under the AGPLv3 License.