JohnnyBot does all of the stuff Discord bizarrely won't let you do! Designed to automate tons of server management and enforce some rules while you're at it. It provides features such as mass role management, message moderation, permissions cloning, and event feed integration to ensure a smooth server experience. Most commands are limited to users with the MODERATOR_ROLE_NAME, however the PetBot commands can be leveraged by all users.
For complete documentation, installation guides, and command references, visit the JohnnyBot Wiki.
- Wiki Home - Project overview and features
- Setup Guide - Complete installation and configuration
- Commands Reference - All available commands with examples
- Command-based Moderation - Slash commands for kicking, timing out, purging messages (by count, string match, or webhook), and archiving user messages
- Permissions Management - Clone, clear, and sync permissions across categories, channels, and roles
- Role Management - Mass assign/remove roles, list users without roles
- Voice Channel Chaperone - Automatic safety monitoring for voice channels with configurable adult/child role detection
- Reminder System - Recurring reminders with persistent scheduling
- Event Feed Integration - Subscribe to iCal and RSS feeds (including Meetup.com); auto-detect feed type; configurable display of description, location, and link; automatic Discord Event creation with duplicate detection; weekly Monday 10am CT feed checks; feeds persist across restarts
- Event Announcements - Independent
/event_announcecommand posts this week's Discord Events to a channel every Mon & Thu at 10am CT; works with or without feeds - Autoreply System - Automatic message replies based on configurable trigger strings with case sensitivity options
- Message Archive - User message dumps with temporary download links hosted via built-in web server
- Channel Write Protection - Enforce read-only channels for non-moderators
- Update Checking - Automatic daily check for new commits on GitHub with moderator notifications
- Dashboard - Display all available commands grouped by category with double-confirmation
- PetBot Interactions - Fun bot interactions (mood check, petting, favorites) for all users
-
Clone and Install:
git clone https://github.com/burbsec/johnnybot.git cd johnnybot pip install -r requirements.txt -
Configure: Edit
config.pywith your server settings -
Set Token: Add your Discord bot token as environment variable:
export DISCORD_BOT_TOKEN="your_bot_token_here"
-
Run:
python bot.py
Need help? Check the Setup Guide for detailed instructions.
- Python 3.8+ (tested up to 3.13)
- Dependencies: Listed in
requirements.txt - Network: TCP port access for message archive hosting (auto-selects a free port)
Contributions are welcome! If you encounter any bugs or have suggestions, feel free to open an issue or submit a pull request.
For detailed development information, see the Wiki.
This project is licensed under the GNU General Public License v3.0.
Attribution: Bot interaction functionality adapted from PetBot under MIT License.