Skip to main content

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:
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
Built-in WebSocket support for real-time events:
  • Automatic reconnection and resume
  • Gateway intents configuration
  • Event-driven architecture
  • Built-in rate limiting
Scale your bot across multiple shards:
  • Automatic shard management
  • Load balancing across shards
  • Per-shard event handling
  • Shard-aware guild routing
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
Connect to voice channels and stream audio:
  • Voice channel connections
  • Audio sending and receiving
  • End-to-end encryption (DAVE protocol)
  • Opus codec support
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

Ready to get started?

Jump into the quickstart guide to build your first bot, or learn about core concepts to understand how DisGo works under the hood.