I ended up getting around the problems by using brief='x_command' as an thing to recognize the commands category
@bot.command(usage="test [command]", description="get help")
async def test2(ctx, args=None):
dude = ''
if args is None:
for i,x in enumerate(bot.commands):
if x.brief == 'image_command':
dude += (f'{PREFIX}{x.usage} ? {x.description}
')
await ctx.send(f'```{dude}```')
so the commands look like this
@bot.command(brief='image_command',usage="avatar <user>", description="send users avatar to chat")
async def avatar(icy, user:discord.User):
await icy.message.delete()
await icy.send(user.avatar_url)
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…