Skip to content

Warden

The opinionated Discord bot framework for TypeScript

Decorator-driven commands

Define slash commands, context menus, and autocomplete with clean TypeScript decorators. No boilerplate, no manual registration.

Auto-discovery

Commands, events, and components are automatically discovered and loaded from your project structure. Just create a file and it works.

Plugin ecosystem

First-party plugins for databases (Drizzle), caching, jobs, permissions, i18n, and more. Or build your own in minutes.

Dependency injection

Built-in DI container lets you inject services, repositories, and config into any command or event handler.

Built for testing

Test commands and events in isolation with the included test utilities. Mock Discord interactions without a running bot.

Middleware pipeline

Flexible middleware system for cooldowns, permissions, logging, and custom logic that runs before and after every command.