Slash commands manager for discordgo

Go Reference


go get github.com/ethanent/discordgo-scm


SCM is based around the concept of a Feature. It’s meant
to be a somewhat futureproof way to handle all kinds of Discord interactions.

You may create Features for a number of different interaction types, including ApplicationCommand,
ApplicationCommandAutocomplete, and MessageComponent.

Interaction Type Relevant Feature Properties
discordgo.InteractionApplicationCommand Type, Handler, ApplicationCommand
discordgo.InteractionApplicationCommandAutocomplete Type, Handler, ApplicationCommand
discordgo.InteractionMessageComponent Type, Handler, CustomID

Now, to actually use the library, you must create an SCM and add Features.

Create an SCM:

m := scm.NewSCM()

Add a Feature to your SCM:


Have your SCM handle interactions with a bot:


Register ApplicationCommands with your bot:

// Where s is your discordgo session

err := m.CreateCommands(s, "")
// Please handle your errors :)

Delete ApplicationCommands once bot shuts down:

m.DeleteCommands(s, "")

See the godoc for full details.


View Github