Skip to content

Command Groups

Command groups are a way to create subcommands for your commands. For example, !afk set or !afk remove.

Syntax

Creating a command group is very simple.

Command Groups Example
import discord
from discord.ext import commands

bot = commands.Bot(command_prefix="!")


@bot.group()
async def afk():
    pass


@afk.command()
async def set(): ...


@afk.command()
async def remove(): ...


# Another command group


@bot.group(
    invoke_without_command=True
)  # Indicates if the group callback should begin parsing and invocation only if no subcommand was found.
async def math(ctx):
    await ctx.send("Subcommand not found")


@math.command()
async def add(ctx, a: int, b: int): ...


@math.command()
async def subtract(ctx, a: int, b: int): ...

To create a command group, the command's decorator must be @bot.group. Once you have a command with that decorator, you can use @function.command(), such as @math.command(). Now, you have subcommand groups!

Related Topics