Context Menu Commands

How to make context menu commands with Pycord - detailed explanation with examples.

What are User Commands and Message Commands?

Preview of User commands and Message commands - click to expand

When you right click a message, you may see a option called "Apps". Hover over it and you can see commands a bot can run with that message. These are called message commands.

When you right click a message in the user list, you can once again see an option called "Apps". Hover over it and you can see commands a bot can run with that message. These are called user commands.

How to create User Commands

Docs: https://pycord.readthedocs.io/en/master/api.html#discord.Bot.user_command

Very Simple!

@bot.user_command(guild_ids=[...])  # create a user command for the supplied guilds
async def mention(ctx, member: discord.Member):  # user commands return the member
    await ctx.respond(f"{ctx.author.name} just mentioned {member.mention}!")

If you want to make the command global, remove guild_ids. Note that global application commands can take up to an hour to register.

How to create Message Commands

Docs: https://pycord.readthedocs.io/en/master/api.html#discord.Bot.message_command

Similar to user commands,

@bot.message_command(name="Show ID")  # creates a global message command. use guild_ids=[] to create guild-specific commands.
async def show_id(ctx, message: discord.Message):  # message commands return the message
    await ctx.respond(f"{ctx.author.name}, here's the message id: {message.id}!")

Last updated

Was this helpful?