MCPcopy Index your code
hub / github.com/bwmarrin/discordgo

github.com/bwmarrin/discordgo @v0.29.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.29.0 ↗
1,154 symbols 2,361 edges 46 files 1,029 documented · 89% 6 cross-repo links
README

DiscordGo

Go Reference Go Report Card CI Discord Gophers Discord API

DiscordGo logo

DiscordGo is a Go package that provides low level bindings to the Discord chat client API. DiscordGo has nearly complete support for all of the Discord API endpoints, websocket interface, and voice interface.

If you would like to help the DiscordGo package please use this link to add the official DiscordGo test bot dgo to your server. This provides indispensable help to this project.

  • See dgVoice package for an example of additional voice helper functions and features for DiscordGo.

  • See dca for an experimental stand alone tool that wraps ffmpeg to create opus encoded audio appropriate for use with Discord (and DiscordGo).

For help with this package or general Go discussion, please join the Discord Gophers chat server.

Getting Started

Installing

This assumes you already have a working Go environment, if not please see this page first.

go get will always pull the latest tagged release from the master branch.

go get github.com/bwmarrin/discordgo

Usage

Import the package into your project.

import "github.com/bwmarrin/discordgo"

Construct a new Discord client which can be used to access the variety of Discord API functions and to set callback functions for Discord events.

discord, err := discordgo.New("Bot " + "authentication token")

See Documentation and Examples below for more detailed information.

Documentation

NOTICE: This library and the Discord API are unfinished. Because of that there may be major changes to library in the future.

The DiscordGo code is fairly well documented at this point and is currently the only documentation available. Go reference (below) presents that information in a nice format.

  • Go Reference
  • Hand crafted documentation coming eventually.

Examples

Below is a list of examples and other projects using DiscordGo. Please submit an issue if you would like your project added or removed from this list.

Troubleshooting

For help with common problems please reference the Troubleshooting section of the project wiki.

Contributing

Contributions are very welcomed, however please follow the below guidelines.

  • First open an issue describing the bug or enhancement so it can be discussed.
  • Try to match current naming conventions as closely as possible.
  • This package is intended to be a low level direct mapping of the Discord API, so please avoid adding enhancements outside of that scope without first discussing it.
  • Create a Pull Request with your changes against the master branch.

List of Discord APIs

See this chart for a feature comparison and list of other Discord API libraries.

Special Thanks

Chris Rhodes - For the DiscordGo logo and tons of PRs.

Extension points exported contracts — how you extend this code

MessageComponent (Interface)
MessageComponent is a base interface for all message components. [14 implementers]
components.go
InteractionData (Interface)
InteractionData is a common interface for all types of interaction data. [14 implementers]
interactions.go
EventHandler (Interface)
EventHandler is an interface for Discord events.
event.go
VoiceSpeakingUpdateHandler (FuncType)
VoiceSpeakingUpdateHandler type provides a function definition for the VoiceSpeakingUpdate event
voice.go
RequestOption (FuncType)
RequestOption is a function which mutates request configuration. It can be supplied as an argument to any REST method.
restapi.go
EventInterfaceProvider (Interface)
EventInterfaceProvider is an interface for providing empty interfaces for Discord events.
event.go

Core symbols most depended-on inside this repo

RequestWithBucketID
called by 176
restapi.go
unmarshal
called by 121
restapi.go
registerInterfaceProvider
called by 69
event.go
log
called by 59
logging.go
log
called by 53
logging.go
String
called by 42
user.go
Close
called by 30
wsapi.go
InteractionRespond
called by 30
restapi.go

Shape

Method 618
Struct 252
Function 117
TypeAlias 86
FuncType 77
Interface 4

Languages

Go100%

Modules by API surface

eventhandlers.go290 symbols
restapi.go222 symbols
structs.go153 symbols
events.go77 symbols
components.go65 symbols
interactions.go48 symbols
message.go41 symbols
state.go39 symbols
wsapi.go36 symbols
voice.go29 symbols
event.go21 symbols
restapi_test.go15 symbols

Dependencies from manifests, versioned

github.com/pion/randutilv0.1.0 · 1×
github.com/pion/rtpv1.6.0 · 1×
github.com/pion/webrtc/v3v3.0.0-2020072106005 · 1×
golang.org/x/cryptov0.0.0-2021042117064 · 1×
golang.org/x/oauth2v0.3.0 · 1×
golang.org/x/sysv0.0.0-2020111910281 · 1×

For agents

$ claude mcp add discordgo \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact