Developers
Bot libraries
Grumble speaks Discord's API version 10, so bots made with these libraries run on it with their address changed. Each is tested with the everyday things bots do, directly and in encrypted servers.
How each did
Our latest bot sweep, on 13 November 2026. Each library's bot does what bots do, then a person in the app reads its messages, uses its command and presses its button. Directly is the bot talking to Grumble. Bridge is the same bot in an encrypted server, through the Grumble bridge.
| Library | Version | Change | Directly | Bridge |
|---|---|---|---|---|
| discord.jsJavaScript and TypeScript | 14.28.1 | one line | 57 of 572 not possible | 59 of 59 |
| discord.pyPython | 2.7.1 | two lines | 57 of 572 not possible | 59 of 59 |
| serenityRust | 0.12.5 | two settings | 58 of 582 not possible | 60 of 60 |
| JDAJava and Kotlin | 6.7.0 | two settings | 56 of 562 not possible | 58 of 58 |
| Discord.NetC# and .NET | 3.20.2 | one setting | 57 of 572 not possible | 59 of 59 |
"Not possible": Grumble's direct messages are end-to-end encrypted, so a bot talking to Grumble directly can't send one. Through the bridge it can.
What the sweep does
- Connecting: logs in and connects to the gateway, gets Grumble's gateway address from the API, reads its own account, sees its server and channels.
- Messages: sends a message, sends an embed, sends a file, edits its message, fetches a message, reads a channel's history, shows it's typing, reads a person's message, replies to it, hears the person edit it, hears the person delete it, sends several in a row, deletes several at once, deletes its message.
- Reactions and pins: reacts, lists who reacted, takes its reaction back, hears the person react, pins a message, lists pins, unpins.
- Threads: starts a thread from a message, posts in it, archives it, starts a thread on its own.
- Channels: makes a channel, renames it, sets a permission on it, deletes it.
- Roles and members: makes a role, edits it, gives it to someone, takes it back, deletes it, fetches a member, lists members, asks the gateway for members, sets its nickname, fetches a user.
- Direct messages: messages someone directly.
- Webhooks: makes a webhook, posts through it, deletes it.
- Commands and buttons: registers its slash commands, gets a slash command, answers it, sends a button, hears it pressed and answers.
- What a person sees in the app: its reply, its slash command, offered, its answer to the command, its answer to the button, its embed, its file, its webhook's message, its direct message.
Other libraries
Any library written for Discord's API version 10 should work. Change its API address to Grumble's, and its gateway address too if it has one written in rather than asking the server (GET /gateway/bot). The docs say where Grumble is different. If yours needs something more, ask in Grumble Developers, our server for people building on Grumble, or on the feedback page.
Library names belong to their authors. Grumble isn't affiliated with Discord Inc., and Discord is a trademark of Discord Inc.