Install
$ agentstack add skill-jarle-bun-skills-bun-guides-ecosystem-discordjs ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ● Environment & secrets Used
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Create a Discord bot
Discord.js works out of the box with Bun. Let's write a simple bot. First create a directory and initialize it with bun init.
```sh terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}} mkdir my-bot cd my-bot bun init
***
Now install Discord.js.
```sh terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
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.
```ini .env.local icon="settings" theme={"theme":{"light":"github-light","dark":"dracula"}} DISCORDTOKEN=YOURBOTTOKENHERE
***
Be sure to add `.env.local` to your `.gitignore`! It is dangerous to check your bot's private key into version control.
```txt .gitignore icon="file-code" theme={"theme":{"light":"github-light","dark":"dracula"}}
node_modules
.env.local
Now let's actually write our bot in a new file called bot.ts.
```ts bot.ts icon="https://mintcdn.com/bun-1dd33a4e/nIz6GtMH5K-dfXeV/icons/typescript.svg?fit=max&auto=format&n=nIz6GtMH5K-dfXeV&q=85&s=5d73d76daf7eb7b158469d8c30d349b0" theme={"theme":{"light":"github-light","dark":"dracula"}} // 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.
```sh terminal icon="terminal" theme={"theme":{"light":"github-light","dark":"dracula"}}
bun run bot.ts
```txt theme={"theme":{"light":"github-light","dark":"dracula"}} 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](https://discordjs.guide/) for complete information on the `discord.js` API.
## Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- **Author:** [jarle](https://github.com/jarle)
- **Source:** [jarle/bun-skills](https://github.com/jarle/bun-skills)
- **License:** MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.