Documentation Index
Fetch the complete documentation index at: https://mintlify.com/disgoorg/disgo/llms.txt
Use this file to discover all available pages before exploring further.
Welcome to DisGo
DisGo is a comprehensive Discord API wrapper written in Golang that provides a consistent, modular, and customizable foundation for building Discord bots. Built with a higher-level abstraction than other wrappers, DisGo simplifies bot development while giving you full control over Discord’s features. Whether you’re building a simple ping-pong bot or a complex application with sharding, voice capabilities, and HTTP interactions, DisGo provides all the tools you need in a clean, Go-idiomatic interface.Quickstart
Build your first bot in minutes
Basic concepts
Learn the fundamentals of DisGo
Installation
Set up DisGo in your project
Examples
Explore working examples
Key features
DisGo provides comprehensive coverage of Discord’s API with a focus on developer experience:Complete REST API coverage
Complete REST API coverage
Full support for all Discord REST API endpoints, including:
- Guilds, channels, and messages
- Users, roles, and permissions
- Application commands and interactions
- Webhooks, invites, and OAuth2
- Guild templates, stickers, and emojis
- Auto moderation and scheduled events
Real-time Gateway connection
Real-time Gateway connection
Built-in WebSocket support for real-time events:
- Automatic reconnection and resume
- Gateway intents configuration
- Event-driven architecture
- Built-in rate limiting
Scalability with sharding
Scalability with sharding
Scale your bot across multiple shards:
- Automatic shard management
- Load balancing across shards
- Per-shard event handling
- Shard-aware guild routing
Advanced interactions
Advanced interactions
Full support for modern Discord interactions:
- Slash commands, user commands, and message commands
- Interactive message components (buttons, select menus)
- Modal dialogs for user input
- HTTP-based interaction handling
- Autocomplete support
Voice and audio
Voice and audio
Connect to voice channels and stream audio:
- Voice channel connections
- Audio sending and receiving
- End-to-end encryption (DAVE protocol)
- Opus codec support
Type-safe and modular
Type-safe and modular
Go-native design with flexibility:
- Fully typed structs and interfaces
- Modular components you can swap out
- Customizable caching strategies
- Structured logging with slog
Architecture highlights
DisGo is designed with modularity in mind. The library is organized into clear, focused packages:- bot - High-level client that combines all components
- gateway - WebSocket connection for real-time events
- rest - HTTP client for API requests
- events - Type-safe event handling system
- cache - Configurable caching layer
- sharding - Automatic shard management
- voice - Voice connection handling
- httpserver - HTTP-based interaction handling
DisGo requires Go 1.24.0 or higher. The library uses modern Go features including generics for type-safe event handling.
Community and support
DisGo is actively maintained with a growing community:- Discord Server: Join the official Discord for help and discussions
- GitHub: Report issues and contribute on GitHub
- Documentation: API reference available at pkg.go.dev
Bot template
Start with a production-ready template
DisGolink
Add music capabilities with Lavalink