This is Dis-Snek
, a python API wrapper for Discord.
Snek is intended to be fast, easy to use, and easily modified to suit your needs.
- ✅ 100% coverage of the application commands API
- ✅ Dynamic cache with TTL support
- ✅ Modern and Pythonic API
- ✅ Proper rate-limit handling
- ✅ Feature parity with most other Discord API wrappers
While this library shares features and some stylistic choices with discord.py
, it is completely separate from them. We think discord.py
is a fantastic library, but we disagree with the direction and design decisions that were made by it.
Here is a basic example:
from dis_snek import Snake, Button, ButtonStyles, CommandTypes, context_menu, message_command, listen
bot = Snake(sync_interactions=True)
@listen()
async def on_startup():
print("Ready")
print(f"This bot is owned by {bot.owner}")
@message_command()
async def test_button(ctx):
await ctx.send("Blurple button example!", components=Button(ButtonStyles.BLURPLE, "Click me"))
@context_menu(name="User menu", context_type=CommandTypes.USER, scopes=[931832853770149918])
async def user_context(ctx):
await ctx.send("Context menu example!", ephemeral=True)
bot.start("TOKEN")
For more examples check out our examples repo or the docs. You also can explore projects with the dis-snek topic.
If you get stuck join our Discord server.
Of course, we welcome all contributions to this library. Just ensure you follow our requirements. If youre stuck for things to contribute, check out our GitHub Projects for inspiration.
- Support Server: https://discord.gg/dis-snek
- Documentation: https://dis-snek.rtfd.io/
- GitHub Projects: https://github.com/orgs/Discord-Snake-Pit/projects/1