disagreement/docs/slash_commands.md
2025-06-10 20:50:23 -06:00

1.1 KiB

Using Slash Commands

The library provides a slash command framework via the ext.app_commands package. Define commands with decorators and register them with Discord.

from disagreement.ext.app_commands import AppCommandGroup

bot_commands = AppCommandGroup("bot", "Bot commands")

@bot_commands.command(name="ping")
async def ping(ctx):
    await ctx.respond("Pong!")

Use AppCommandGroup to group related commands. See the components guide for building interactive responses.

Next Steps

Command Persistence

AppCommandHandler.sync_commands can persist registered command IDs in .disagreement_commands.json. When enabled, subsequent syncs compare the stored IDs to the commands defined in code and only create, edit or delete commands when changes are detected.

Call AppCommandHandler.clear_stored_registrations() if you need to wipe the stored IDs or migrate them elsewhere with AppCommandHandler.migrate_stored_registrations().