Modern command handler for Discord.js — TypeScript-first, Components V2 native, with pluggable persistence.
Docs · Quick start · v1 → v3 migration · NPM
The v1 package is preserved at the v1-final-commit tag and stays on npm under @d3oxy/djs-commands@1.4.x. To upgrade to v3, follow the Migration from v1 guide — every v1 API has a v3 equivalent (with side-by-side examples).
npx create-djs-commands my-bot
cd my-bot
cp .env.example .env # add DISCORD_TOKEN
bun run devOr scaffold by hand from the Getting Started guide.
| Package | Description |
|---|---|
@djs-commands/core |
Command dispatcher, definitions, validators, plugins, fs-autoloader |
@djs-commands/jsx |
Components V2 JSX runtime (opt-in) |
create-djs-commands |
npx create-djs-commands scaffolding tool |
@djs-commands/adapter-drizzle |
Drizzle/Postgres Storage adapter |
@djs-commands/adapter-prisma |
Prisma Storage adapter |
@djs-commands/adapter-mongoose |
Mongoose Storage adapter (v1 continuity path) |
@djs-commands/adapter-redis |
Redis CacheAdapter for distributed cooldowns |
bun install
bun run ci # check + typecheck + knip + test
bun run dev # watch mode across packages
bun run check # biome lint+format checkMIT

