Manage a Discord server through natural language. Describe what you want, and the bot handles the rest — creating channels, assigning roles, moderating members. Powered by Google Gemini with automatic failover to Groq.
- Java 25 or later
- A Discord bot token with the
botandapplications.commandsscopes enabled - A Google Gemini API key (a Groq API key is optional but recommended for failover)
git clone <repository-url>
cd orchCopy the environment template and fill in your credentials:
cp src/main/resources/.env.example .envBuild and run:
./gradlew build
./gradlew runThe bot will print an invite URL on its first start. Open that URL in your browser to add the bot to a server.
DISCORD_TOKEN — Your Discord bot token. Required.
GOOGLE_API_KEY — Your Google Gemini API key. Required.
MONGO_URI — A MongoDB connection string. When set, the bot persists server profiles and pending actions across restarts. When unset, everything lives in memory. Optional.
GROQ_API_KEY — A Groq API key. When set, the bot falls back to Groq whenever Gemini is unavailable or rate-limited. Optional.
GEMINI_MODEL — The Gemini model to use. Defaults to gemini-2.5-flash-lite. Optional.
LLM_PROVIDER - Forces a specific AI provider. Accepts gemini or groq. When unset, the bot picks automatically. Optional.
Every administrative command requires the ADMINISTRATOR permission on the server.
/prompt — Execute any action through natural language. The core of the bot.
/sessao start and /sessao end — Create or close a dedicated private channel for an ongoing conversation.
/channel create and /channel delete — Create a text channel or soft-delete an existing one (messages are preserved inside _trash).
/category create and /category delete — Create or delete a category.
/role create and /role color — Create a role or change its colour.
/voice — Create and manage private voice channels. Subcommands: create, invite, kick, lock, unlock, limit, name, disband.
/trash list, /trash restore, /trash purge — View, restore, or permanently delete hidden channels.
/idioma — Switch between pt-BR and English for this server.
/config lobby — Set the voice channel lobby for private voice channels.
This project is distributed under the MIT License. See LICENSE for the full text.