A modern, feature-packed, AI-powered Discord bot built with Python 3.10+, discord.py 2.7+, Supabase, and Google Gemini 3.1 Flash. Designed for community servers with multimodal AI chat, arXiv paper lookup, PIL welcome cards, counting games, and smart moderation.
Dexel is an all-in-one Discord bot built for modern community servers. Powered by an asynchronous, cog-based modular extension architecture in discord.py 2.7+, Dexel combines conversational AI, research tools, dynamic image generation, interactive games, and automated channel moderation.
With Supabase (PostgreSQL) as its primary database, Dexel maintains per-channel AI configurations, server pre-prompts, slowmode schedules, user profiles, and counting game scores using async connection pooling.
| Category | Command | Description | Permissions |
|---|---|---|---|
| 🧠 AI | /ai chat <prompt> | Interact with Google Gemini (3.1 Flash / Flash-lite). Supports text & image attachments for multimodal prompts. | Everyone |
| 🧠 AI | /ai setup [channel] [pre_prompt] | Configure designated channels where Dexel automatically responds to all incoming messages with custom server pre-prompts. | Manage Server |
| 🧠 AI | /ai summarize <channel> [limit] [topic] | Generate an AI summary of recent channel conversation history filtered by limit or specific topic. | Everyone |
| 🧠 AI | /paper <query> | Search and explore research papers from arXiv with interactive pagination, key takeaways, and direct links. | Everyone |
| 🛠️ Utility | /leetcode <username> | Display real-time LeetCode problem-solving statistics. | Everyone |
| 🏠 Server | /greeting set_join <channel> [message] | Automatically generate custom welcome image cards with member avatars, usernames, and custom templates. | Manage Server |
| 🏠 Server | /greeting set_leave <channel> [message] | Automatically generate custom farewell image graphics with member avatars and server branding. | Manage Server |
| 🎮 Games | /counting setup <channel> | Configure a real-time mathematical counting game supporting safe arithmetic expression evaluation (+, -, *, /). | Manage Server |
| 🎮 Games | /counting reset | Reset the server counting score back to 0. | Manage Server |
| 🔨 Moderation | /slowmode [duration] [channel] | Set channel slowmode with human-readable duration strings (e.g. 30s, 5m, 1h) & background task auto-removal. | Manage Channels |
| 🛠️ Utility | /profile [user] | Display detailed user profile cards featuring join dates, roles, and avatar displays. | Everyone |
| 🛠️ Utility | /help [command] | Interactive category-based select menu for exploring all available bot commands. | Everyone |
Conversational queries execute via Google Gemini (3.1 Flash / Flash-lite) via an async GenAI wrapper (utils/llm.py), featuring sliding window context management (utils/memory_manager.py) and multimodal image attachment parsing.
Async database pool and CRUD operations (utils/db.py) powered by Supabase (PostgreSQL) maintain channel auto-responder configurations, slowmode timers, counting game state, and user settings.
Features are split into modular extension cogs (cogs/) — meta, games, moderation, premium, server, and utility — dynamically loaded by the entrypoint (bot.py).
Dynamic welcome and farewell image cards rendered on-the-fly (utils/image_generator.py) with Pillow, custom font typography, avatar composition, and dynamic placeholders ({mention}, {username}, {server}, {member_count}).