an entirely vibecoded discord bot platform! im planning on keeping this updated and adding new features at the moment there is no plugin marketplace but its very early days all contributions welcome and appreciated (especially gui imrovements lol)
OpenLLM — a powerful Discord assistant platform powered by Large Language Models with a modern web dashboard and extensive customization options.
- 🧠 Multi-LLM Support: Google Gemini (recommended), OpenAI, Anthropic, OpenRouter, Ollama, LM Studio, Custom OpenAI-compatible endpoints
- 🎨 Modern Web Dashboard: Dark-mode, mobile-friendly web interface for configuration and monitoring
- 🔑 Provider Management: Configure API keys and endpoints directly from the dashboard
- 🌐 Web Setup Wizard: Browser-based setup experience with guided configuration
- 🔧 Highly Customizable: Plugin system and MCP server integration
- 🔍 Web Search: Built-in web search tool with multiple providers
- 🛡️ Content Moderation: Optional message policy screening
- 📊 Analytics: Usage statistics and cost tracking
- 🔌 Plugin Marketplace: Browse and install community extensions
- 🪟 Windows Support: One-click setup with
setup.bat - 📱 Mobile Friendly: Access dashboard from your phone with responsive design
- 🐧 Unix Quick Start:
start.sh(Linux) andstart_macos.sh(macOS) available for one-step setup/start
- Python 3.10 or higher
- Discord Bot Token (Create one here)
- API keys for your chosen LLM provider(s)
New! Download the all-in-one Windows installer (no Python required):
- Download
OpenLLM-Setup-Standalone.exefrom releases (run as administrator) - Run the installer (includes Python 3.11.9 - no prerequisites!)
- Launch OpenLLM from Start Menu or Desktop
Alternative: If you already have Python installed, download OpenLLM-Setup.exe instead (smaller download)
The installer includes everything you need to run OpenLLM - no separate Python installation required for the standalone version!
To build the installer yourself, see BUILD_INSTALLER.md.
-
Download/Clone the repository
git clone <repository-url> cd openllm
-
Run the setup script
# Double-click setup.bat or run from command prompt setup.batThis will:
- Create a virtual environment
- Install all dependencies
- Launch the web setup wizard in your browser
-
Clone the repository
git clone <repository-url> cd openllm
-
Create a virtual environment
python -m venv venv source venv/bin/activate # Linux/Mac # or venv\Scripts\activate # Windows (alternative)
-
Install dependencies
pip install -r requirements.txt
-
Verify installation (optional)
python check_install.py
-
Run web setup wizard
python main.py --setup
The setup wizard will open in your browser and guide you through:
- Discord bot configuration
- LLM provider selection (Gemini recommended for best value)
- Tool configuration
- API key setup
-
Start the bot
python main.py
Alternatively, the repo includes quick-start scripts to automate these steps:
-
Linux (all-in-one):
chmod +x ./start.sh ./start.sh
-
macOS (Terminal.app):
chmod +x ./start_macos.sh ./start_macos.sh
These scripts will create/activate the virtual environment, install dependencies if needed, run the setup wizard (if configuration is missing), start the bot in a new terminal window, and open the dashboard in your browser.
For the easiest deployment, use Docker:
-
Quick start with docker-compose (recommended)
# Clone the repository git clone <repository-url> cd openllm # Start the container docker-compose up -d
-
Complete web-based setup
On first run, the container will start the web setup wizard:
- Open
http://localhost:5050/setupin your browser - Or from another device:
http://<your-server-ip>:5050/setup - Follow the guided setup to configure:
- Discord bot token
- LLM provider and API keys
- Optional tools and features
After setup completes, the bot starts automatically!
- Open
-
Access the dashboard
- Dashboard:
http://localhost:5000 - Or from network:
http://<your-server-ip>:5000
- Dashboard:
Docker Features:
- ✅ Web Setup Wizard: Browser-based configuration on first run
- ✅ Network Accessible: Setup from any device on your network
- ✅ Persistent data: Configuration and database saved in
./datavolume - ✅ Health checks: Built-in container health monitoring
- ✅ Easy updates: Pull new image and restart
- ✅ Unraid ready: Compatible with Unraid Community Applications
Alternative: Manual Docker run
docker run -d \
--name discord-llm-bot \
-p 5000:5000 \
-p 5050:5050 \
-v $(pwd)/data:/app/data \
your-image-nameThen visit http://localhost:5050/setup to configure.
Optional Environment Variables: You can still pre-configure using environment variables (they will auto-populate in the setup wizard):
BOT_TOKEN- Your Discord bot tokenOPENAI_API_KEY- OpenAI API keyGEMINI_API_KEY- Google Gemini API keyANTHROPIC_API_KEY- Anthropic/Claude API keyOPENROUTER_API_KEY- OpenRouter API keyLMSTUDIO_BASE_URL- LM Studio endpointCUSTOM_LLM_BASE_URL- Custom OpenAI-compatible endpointCUSTOM_LLM_API_KEY- API key for custom endpoint
For Unraid users:
- Map
/mnt/user/appdata/openllmto/app/datafor persistence - Expose ports 5000 (dashboard) and 5050 (setup wizard)
- On first start, access setup wizard at
http://<unraid-ip>:5050/setup - After setup, access dashboard at
http://<unraid-ip>:5000
On first launch or when using --setup, a modern web-based wizard will guide you through:
- Discord bot token configuration
- Selecting your preferred LLM provider (Gemini recommended)
- Entering API keys
- Configuring enabled tools (web search, etc.)
- Setting up content moderation (optional)
The wizard saves everything to .env and config.yaml automatically.
Access the web dashboard at: http://localhost:5000
From your local network, find the IP address displayed when the bot starts:
Dashboard running at http://192.168.1.100:5000
From the dashboard you can:
- Edit Configuration: Click "Edit Settings" to modify LLM provider, model, temperature, and system prompt
- AI-Enhanced Prompts: Use AI to help craft better system prompts
- Provider Management: Configure API keys and custom endpoints for all supported providers
- Local LLM Support: Configure LM Studio, Ollama, or custom OpenAI-compatible endpoints
- View connected servers and bot status
- Manage plugins and extensions
- View usage statistics and costs
- Monitor real-time activity
- Google Gemini (Recommended) - Best value, high quality
- OpenAI - GPT-4, GPT-4o, GPT-3.5
- Anthropic - Claude models
- OpenRouter - Access to many models through one API
- Ollama - Run models locally (llama2, mistral, etc.)
- LM Studio - Local inference server with GUI
- Custom Provider - Any OpenAI-compatible API endpoint
Configure providers from the Provider Management section in the dashboard.
Create custom plugins to extend the bot's functionality.
plugins/
my_plugin/
manifest.json
__init__.py
plugin.py
{
"name": "My Custom Plugin",
"version": "1.0.0",
"author": "Your Name",
"description": "A custom plugin example",
"permissions": ["network", "storage"],
"tools": [
{
"name": "my_tool",
"description": "Does something cool",
"parameters": {
"query": "string"
}
}
]
}See Plugin Development Guide for details.
Searches the web for real-time information using your configured provider.
# Available providers:
- Google Custom Search
- DuckDuckGo
- Brave Search
- SearxNG# Normal start
python main.py
# Run setup wizard
python main.py --setup
# Reset configuration (for testing/development)
python main.py --reset
# Start without dashboard
python main.py --no-dashboard@BotName what's the weather like today?
@BotName search for the latest news about AI
The bot maintains context within a conversation thread.
During development, you can reset all configuration files:
python main.py --resetThis will:
- Delete
.envfile - Delete
config.yaml - Clear database (
data/directory) - Clear Python cache
- Launch the setup wizard for fresh configuration
Perfect for testing the setup process or starting fresh!
- API keys stored securely in environment variables
- Plugin sandboxing for safety
- Optional content moderation
- Per-server permission controls
Contributions are welcome! Please read CONTRIBUTING.md for details.
This project is licensed under the MIT License - see LICENSE for details.
- Discord.py team
- All LLM provider communities
- Contributors and plugin developers