aws-cli icon indicating copy to clipboard operation
aws-cli copied to clipboard

aws_completer does not auto complete command aliases, even though aliases are displayed as valid choices in error message

Open isleshocky77 opened this issue 8 months ago • 2 comments

Describe the feature

Currently, if you were to type an invalid subcommand, you get back a list of valid subcommands

$ aws ec2 in

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

aws: error: argument operation: Invalid choice, valid choices are:

accept-address-transfer                  | accept-reserved-instances-exchange-quote
accept-transit-gateway-multicast-domain-associations | accept-transit-gateway-peering-attachment 
[...]

This list actually includes custom aliases defined in ~/.aws/cli/alias

$ aws ec2 in

usage: aws [options] <command> <subcommand> [<subcommand> ...] [parameters]
To see help text, you can run:

  aws help
  aws <command> help
  aws <command> <subcommand> help

aws: error: argument operation: Invalid choice, valid choices are:

accept-address-transfer                  | accept-reserved-instances-exchange-quote
accept-transit-gateway-multicast-domain-associations | accept-transit-gateway-peering-attachment
accept-transit-gateway-vpc-attachment    | accept-vpc-endpoint-connections         
[....]
withdraw-byoip-cidr                      | wait                                    
instances-running-table                  | instances-stopped-table                 
instances-status                         | help                                    

$ 

However, aws_autocomplete does not seem to have available the aliases to be auto completed. The below command does not display any of the instances-* commands as shown in the error message above.

$ aws ec2 in<tab>

The aws_completer command doesn't include the alias in it's results

$ COMP_LINE="aws ec2 i" aws_completer 
import-client-vpn-client-certificate-revocation-list
import-image
import-key-pair
import-snapshot
$

Use Case

It is much faster to use autocomplete to complete long commands as well as to remind oneself of what commands exist based on a known prefix. This should include custom aliases which are created in the ~/.aws/cli/alias file.

Proposed Solution

Make sure the same method of building the list of available subcommands in error messages is used by aws_completer to build available command and subcommand choices including aliases from ~/.aws/cli/alias.

Other Information

No response

Acknowledgements

  • [ ] I may be able to implement this feature request
  • [ ] This feature might incur a breaking change

CLI version used

aws-cli/2.17.32 Python/3.11.9 Linux/6.11.0-21-generic exe/x86_64.ubuntu.24

Environment details (OS name and version, etc.)

Ubuntu 24.04.2 LTS

isleshocky77 avatar Apr 16 '25 15:04 isleshocky77

Hello @isleshocky77, thank you for reaching out. I will provide to the team about this feature request if feasible where to have a completer where it follows the alias. I will update you as soon as I get updates. If you have any questions, please do let me know. Thanks.

adev-code avatar Jun 10 '25 15:06 adev-code

Hello @isleshocky77, the team has decided to plan for this feature request. Moving forward and to track updates, please ensure to check our CLI changelog : https://raw.githubusercontent.com/aws/aws-cli/v2/CHANGELOG.rst Thank you

adev-code avatar Jun 17 '25 21:06 adev-code