Welcome to ScurryPy¶

ScurryPy is a fully extensible foundation for Discord bots and frameworks. Build anything from a simple bot to a complete custom framework, with the architecture entirely up to you.
Features¶
ScurryPy is designed to be small, predictable, and transparent:
- Lightweight core
- Rate limit handling
- Automatic session & gateway management
- Automatic sharding
- Predictable event models and resource classes
Why ScurryPy?¶
ScurryPy is built on one idea: ✨clarity over magic ✨
- Every operation is explicit
- No hidden behavior or black boxes
- Components do one job and do it predictably
This philosophy ensures that you can extend, compose, and control every part of your bot without hidden surprises.
If you want to understand your bot rather than fight it, you're in the right place.
For a more in-depth explanation, see the manifesto!
Extending ScurryPy¶
ScurryPy is intentionally minimal. You can build helpers, routers, command systems, and even entire frameworks on top of it.
However, certain core systems cannot be modified:
- Gateway behavior
- REST internals
- Discord-enforced specifications
- Event model definitions
These remain stable to ensure compliance with the Discord API.
Helpful Links¶
- FAQ - answers to some burning questions
- Getting Started - set up your first bot
- API - full function and class documentation
- Events - event objects and signatures
- Resources - REST resource helpers
- Models - objects returned by endpoints
- Parameters - typed dicts for specifying options related to objects
- Doc Notes - footnotes that appear throughout the docs
- Coverage - coverage status for Discord's API docs
- Internals - how ScurryPy works internally