rembrembdocs

Skip to main content

Bun home pagelight logodark logo

[Runtime

](../../../index.md)[Package Manager

](../../../pm/cli/install/index.md)[Bundler

](../../../bundler/index.md)[Test Runner

](../../../test/index.md)[Guides

](../../index.md)[Reference

](https://bun.com/reference)[Blog

](https://bun.com/blog)[Feedback

](../../../feedback/index.md)

Discord.js works out of the box with Bun. Let’s write a bot. First create a directory and initialize it with bun init.

terminal

mkdir my-bot
cd my-bot
bun init

Now install Discord.js.

terminal

bun add discord.js

Before we go further, we need to go to the Discord developer portal, login/signup, create a new Application, then create a new Bot within that application. Follow the official guide for step-by-step instructions.


Once complete, you’ll be presented with your bot’s private key. Let’s add this to a file called .env.local. Bun automatically reads this file and loads it into process.env.

This is an example token that has already been invalidated.

.env.local

DISCORD_TOKEN=YOUR_BOT_TOKEN_HERE

Be sure to add .env.local to your .gitignore! It is dangerous to check your bot’s private key into version control.

.gitignore

node_modules
.env.local

Now let’s actually write our bot in a new file called bot.ts.

https://mintcdn.com/bun-1dd33a4e/JUhaF6Mf68z_zHyy/icons/typescript.svg?fit=max&auto=format&n=JUhaF6Mf68z_zHyy&q=85&s=7ac549adaea8d5487d8fbd58cc3ea35bbot.ts

// import discord.js
import { Client, Events, GatewayIntentBits } from "discord.js";

// create a new Client instance
const client = new Client({ intents: [GatewayIntentBits.Guilds] });

// listen for the client to be ready
client.once(Events.ClientReady, c => {
  console.log(`Ready! Logged in as ${c.user.tag}`);
});

// login with the token from .env.local
client.login(process.env.DISCORD_TOKEN);

Now we can run our bot with bun run. It may take a several seconds for the client to initialize the first time you run the file.

terminal

bun run bot.ts
Ready! Logged in as my-bot#1234

You’re up and running with a bare-bones Discord.js bot! This is a basic guide to setting up your bot with Bun; we recommend the official discord.js docs for complete information on the discord.js API.

Was this page helpful?

Suggest editsRaise issue

[

Build an app with Astro and Bun

Previous

](../astro/index.md)[

Containerize a Bun application with Docker

Next

](../docker/index.md)