Aethel Bot OSS repository! aethel.xyz
bot fun ai discord discord-bot aethel
TypeScript 97.3%
JavaScript 1.3%
CSS 0.4%
Dockerfile 0.3%
PLpgSQL 0.3%
HTML 0.2%
Other 0.1%
343 2 0

Clone this repository

https://tangled.org/scanash.com/aethel
git@tangled.org:scanash.com/aethel

For self-hosted knots, clone URLs may differ based on your setup.

README.md

Aethel Monorepo#

This monorepo includes both the frontend and backend of the Aethel Discord bot.

Node.js

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.


Features#

  • AI Chat: /ai command with custom API key support (OpenRouter, OpenAI, Grok)
  • Reminders: /remind command 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

Getting Started#

1. Clone & Install#

git clone https://github.com/aethel-labs/aethel.git
cd bot
bun i

2. Environment Variables#

Copy .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)

3. Database Migrations#

Run all SQL migrations:

bun run scripts/run-migrations.js # or node scripts/run-migrations.js

Usage#

  • Start the bot: bun start
  • Add the bot to your account and use /ai, /remind, etc.
  • Use /ai use_custom_api:true to set your own API key (encrypted)

Privacy & Security#

  • 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

Contributing#

  • PRs welcome! Open issues for bugs/feature requests.
  • Follow code style (ESLint, Prettier).
  • Add tests for new features.

License#

This project is licensed under the MIT License.

See LICENSE for details.

Usage#

  • Use /ai for AI chat, with optional custom API key for private usage
  • Use /remind to schedule reminders
  • Use utility commands: /weather, /wiki, /joke, /cat, /dog, /8ball, /whois
  • Sensitive commands use ephemeral replies for privacy
  • Use /ai use_custom_api:true to set your own (encrypted) API key

Requirements#

  • Node.js 16.9.0 or higher
  • Discord.js 14.11.0

🌐 Translations & Localization#

Aethel supports multiple languages! You can help improve or add new translations for the bot.

Supported Languages#

  • English (en-US) English translation status
  • Spanish (es-ES) Spanish translation status
  • Spanish (Latin America) (es-419) Spanish (Latin America) translation status
  • German (de-DE) German translation status
  • French (fr-FR) French translation status
  • Portuguese (Brazil) (pt-BR) Portuguese (Brazil) translation status
  • Japanese (ja) Japanese translation status

Contribute a Translation#

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!

Translation status