This monorepo includes both the frontend and backend of the Aethel Discord bot.
A privacy-conscious, production-ready Discord user-installed bot with AI chat, reminders, and utility commands. Built with Node.js, Discord.js v14, PostgreSQL, and robust security best practices.
- AI Chat:
/aicommand with custom API key support (OpenRouter, OpenAI, Grok) - Reminders:
/remindcommand for scheduling reminders - Utilities:
/weather,/wiki,/joke,/cat,/dog,/8ball,/whois - Ephemeral Replies for sensitive commands
- Encrypted API Key Storage (AES-256-GCM)
- Rate Limiting & Logging
- Express Status Endpoint for monitoring
git clone https://github.com/aethel-labs/aethel.git
cd bot
bun iCopy .env.example to .env and fill in the required values:
DISCORD_TOKEN(your bot token)DATABASE_URL(Postgres connection string)OPENROUTER_API_KEY(optional, default AI key)API_KEY_ENCRYPTION_SECRET(32+ char secret)STATUS_API_KEY(for status endpoint)ALLOWED_ORIGINS,NODE_ENV, etc.CLIENT_ID(your discord bot id, copy it from the dashboard)
Run all SQL migrations:
bun run scripts/run-migrations.js # or node scripts/run-migrations.js- Start the bot:
bun start - Add the bot to your account and use
/ai,/remind, etc. - Use
/ai use_custom_api:trueto set your own API key (encrypted)
- No plaintext API keys stored or logged
- User data is encrypted and can be deleted by user command
- No data sold or shared with third parties
- See https://aethel.xyz/legal/privacy for full policy
- PRs welcome! Open issues for bugs/feature requests.
- Follow code style (ESLint, Prettier).
- Add tests for new features.
This project is licensed under the MIT License.
See LICENSE for details.
- Use
/aifor AI chat, with optional custom API key for private usage - Use
/remindto schedule reminders - Use utility commands:
/weather,/wiki,/joke,/cat,/dog,/8ball,/whois - Sensitive commands use ephemeral replies for privacy
- Use
/ai use_custom_api:trueto set your own (encrypted) API key
- Node.js 16.9.0 or higher
- Discord.js 14.11.0
Aethel supports multiple languages! You can help improve or add new translations for the bot.
- English (en-US)
- Spanish (es-ES)
- Spanish (Latin America) (es-419)
- German (de-DE)
- French (fr-FR)
- Portuguese (Brazil) (pt-BR)
- Japanese (ja)
We use Weblate for collaborative translation. Anyone can contribute:
- Visit the Aethel Weblate project
- Sign in or register (free)
- Pick your language and start translating or reviewing existing translations
Your help makes Aethel accessible to more people around the world!