About
discord.js is a powerful Node.js module that allows you to easily interact with the Discord API.
Object-oriented
Predictable abstractions
Performant
100% coverage of the Discord API
Installation
Node.js 22.12.0 or newer is required.
npm install discord.js
yarn add discord.js
pnpm add discord.js
bun add discord.jsOptional packages
zlib-sync for WebSocket data compression and inflation (
npm install zlib-sync)bufferutil for a much faster WebSocket connection (
npm install bufferutil)@discordjs/voice for interacting with the Discord Voice API (
npm install @discordjs/voice)
Example usage
Install discord.js:
npm install discord.js
yarn add discord.js
pnpm add discord.js
bun add discord.jsThese examples use ES modules.
Register a slash command against the Discord API:
import { REST, Routes } from 'discord.js';
const commands = [
{
name: 'ping',
description: 'Replies with Pong!',
},
];
const rest = new REST({ version: '10' }).setToken(TOKEN);
try {
console.log('Started refreshing application (/) commands.');
await rest.put(Routes.applicationCommands(CLIENT_ID), { body: commands });
console.log('Successfully reloaded application (/) commands.');
} catch (error) {
console.error(error);
}Afterwards we can create a quite simple example bot:
import { Client, Events, GatewayIntentBits } from 'discord.js';
const client = new Client({ intents: [GatewayIntentBits.Guilds] });
client.on(Events.ClientReady, readyClient => {
console.log(`Logged in as ${readyClient.user.tag}!`);
});
client.on(Events.InteractionCreate, async interaction => {
if (!interaction.isChatInputCommand()) return;
if (interaction.commandName === 'ping') {
await interaction.reply('Pong!');
}
});
client.login(TOKEN);Links
Guide (source) Also see the v13 to v14 Update Guide, which includes updated and removed items from the library.
Extensions
Contributing
Before creating an issue, please ensure that it hasn't already been reported/suggested, and double-check the
documentation.
See the contribution guide if you'd like to submit a PR.
Help
If you don't understand something in the documentation, you are experiencing problems, or you just need a gentle nudge in the right direction, please don't hesitate to join our official discord.js Server.