AWS Developer Blog

Super-Charge Your AWS Command-Line Experience with aws-shell

by Peter Moon | on | in AWS CLI | Permalink | Comments |  Share
When we first started developing the AWS Command Line Interface (CLI) nearly three years ago, we had to figure out how to deliver a consistent command-line experience to the ever-expanding surface area of AWS APIs. We decided to auto-generate commands and options from the underlying models that describe AWS APIs. This strategy has enabled us to deliver timely support for new AWS services and API updates with a consistent style of commands.
We believe consistency and timeliness help our customers be productive on AWS. We also understand it is difficult to get familiar with and effectively use the thousands of commands and options available in the CLI. We are always looking for solutions to make the CLI as easy as possible to learn and use.
This search for better usability led us to create aws-shell, which we’re making public today at https://github.com/awslabs/aws-shell. The project, along with our plans to collaborate with Donne Martin, the author of SAWS, were announced during this year’s re:Invent talk, Automating AWS with the AWS CLI. Donne has made amazing progress in providing a great command line UI for AWS CLI users. It’s been a pleasant surprise and a validation of our feature ideas to see a community project take off and gain so much popularity in a short amount of time. We are excited and grateful to join forces with Donne and bring him on board as one of the maintainers of the aws-shell project.
Now let’s take a look at some of the key features available in aws-shell:
Interactive, fuzzy auto-completion of commands and options
Dynamic in-line documentation of commands and options
Auto-completion of resource identifiers (for example, Amazon EC2 instance IDs, Amazon SQS queue URLs, Amazon SNS topic names, and more)
Execute regular shell commands by piping or prefixing shell commands with ‘!’
Export all commands executed in the current session to your text editor (.edit special command)
Running the “.edit” command after executing some commands gives you all the commands in your default text editor

We’re excited to get aws-shell into your hands, and we look forward to your feedback. As always, you can find us in GitHub. Please share any questions and issues you have!