purge command discord.py
You can treat single argument callables (like int) like converters for the purpose of declaring arguments. I also changed your permissions check to be handled automatically by a commands.check @bot.command(pass_context=True) @commands.has_permissions(administrator=True) async def clean(ctx, limit: int): await ctx.channel.purge(limit=limit) await ctx.send('Cleared by {}'.format(ctx.author.mention)) await ctx.message.delete() @clean.error async def clear_error(ctx, error): if isinstance(error, commands.MissingPermissions): await ctx.send("You cant do that!")