Един бърз writeup как да си подкарате безспорно (безпорно?) мегаудобството aws cli completition (тоест като напишете aws s3 l да ви покаже всички коменди в този namespace) под macos. Как да го инсталирате можете да прочетете тук.
В документацията на aws го има описано в повече детайли, но meat-а е само да добавите в .zshrc следните редове:

# Path to aws_completer
export PATH=/usr/local/bin/:$PATH

autoload bashcompinit && bashcompinit
autoload -Uz compinit && compinit
complete -C '/opt/homebrew/bin/aws_completer' aws

След това за да избегнем стъпката с logout или рестарт можем просто да презаредим файла наново (един хубав плюс е и това, че ако нещо не сме paste-нали правилно или пътят към aws_completer-а е грешен ще получим и съответното съобщение и ще ни спести малко време вместо да рестартираме при всяка промяна да речем):

source ~/.zshrc

Сега е време за тест, да опитаме да изкараме списък с всички ec2 instances (без значение от state-а им):

aws ec2 describe-instances --output json | jq

Малко е трудно да направя демо на това, но като напишете aws ec2 des[TAB] и ще ви покаже всички възможни опции. След като изберете нещо конкретно можете да продължите със следващия параметър, в случая –output. Неудобното е, че не suggest-ва и опциите по параметрите (в случая те са json, table, yaml-stream, text, yaml), което приемам за неудобство, но и разбирам, че не би работило това навсякъде (представете си autocomplete-а да прави requests към вашите ресурси (дай всички ec2 инстанции, после дай всички тагове и т.н.). Би било епично, но не виждам това да бъде възможно скоро време. Та ако имате инсталиран jq бихте видели output с всички параметри по EC2 инстанцията (които са десетки). За по-лесна визуализация можете да използвате –query параметъра и да изкарате нещо подобно:

aws ec2 describe-instances \
--query "Reservations[*].{ \
OwnerID:OwnerId, \
IP:Instances[0].PublicIpAddress, \
InstanceID:Instances[0].InstanceId, \
AvailabilityZone:Instances[0].Placement.AvailabilityZone, \
InstanceState:Instances[0].State.Name, \
KEY:Instances[0].KeyName, \
VPC:Instances[0].VpcId, \
InstanceType:Instances[0].InstanceType \
}" --output json | jq

И съответния output:

[
{
"OwnerID": "255875099999",
"IP": null,
"InstanceID": "i-074db48e5a4a4a4a4",
"AvailabilityZone": "eu-west-1a",
"InstanceState": "stopped",
"KEY": "nedko",
"VPC": "vpc-0cb7fb97b97b97b97",
"InstanceType": "t3.micro"
}
]

–query е мощно средство ако искате да автоматизирате през aws cli или искате да дебъгвате нещо определено и по ред причини не използвате AWS CloudWatch да речем. Аз например имам един gistс няколко craft-нати spell-а за различни кейсове, които са ми били нужни през годините и когато имате 20-30-40 инстанции (или ресурса, тук пиша в контекста на EC2, но cli console-а може да се използва практически навсякъде) може да ви улесни живота с много.