djs-commands
Modern Discord.js command handler — TypeScript-first, Components V2 native, with pluggable persistence.
djs-commands is a modern command framework for Discord.js built around three ideas:
- TypeScript-first. Commands are plain objects with strongly-typed handlers. No magic decorators, no runtime reflection.
- Components V2 native. First-class support for the new Discord component model, so building rich, interactive responses is the default path — not an afterthought.
- Pluggable persistence. Cooldowns, guild prefixes, and user state plug into adapters you control: in-memory for dev, your own database in production.
v2.0 shipped. Packages are live on npm under @djs-commands/*. The legacy v1 package (@d3oxy/djs-commands) is preserved at the v1-final-commit tag and is no longer maintained — see the v1 → v2 migration guide to upgrade.
Quick start
npx create-djs-commands my-bot
cd my-bot
cp .env.example .env # add DISCORD_TOKEN
bun run devOr scaffold by hand from Getting Started.
Where to start
Getting Started
Install the package, write your first command, and get a bot online in under five minutes.
Concepts
The mental model: commands, validators, cooldowns, plugins, storage, Components V2.
API Reference
The full surface area of `@djs-commands/core` and friends — generated from the source.
Recipes
Copy-paste solutions for common bot patterns: pagination, modals, role gates, and more.
Coming from v1?
If you have a bot built on @d3oxy/djs-commands, the Migration from v1 guide walks you through every API that moved or was dropped, with side-by-side examples.
Useful links
- GitHub — source, issues, discussions
- npm org —
@djs-commands/*packages - Discord support — get help from the maintainers and community