At re:Invent 2015, Amazon Web Services Command Line Interface (CLI) engineer James Saryerwinnie announced that Supercharged AWS CLI (SAWS) features were going to be combined into aws-shell to provide a new level of ease of use and productivity when automating AWS workflows. Today, aws-shell has been made available on GitHub as a developer preview.
AWS CLI is a unified tool to manage AWS services through the command line and automate recurrent task by means of shell scripts. Yet, as SAWS
’s author Donne Martin explains, it can be hard to remember the usage of all supported commands and their countless options. This is why Martin originally wrote SAWS, which aims to make AWS CLI easier to use and thus improve productivity by providing a features such as auto-completion of commands, subcommands, and options; auto-completion of resources like bucket names, instance ids and instance tags; command history, contextual help, and more.
According to Saryerwinnie, SAWS provides useful high-level abstractions on top of AWS CLI and matched some of AWS CLI team’s own goals, hence the decision to join forces. AWS CLI already allows to automate operations such as deleting an S3 bucket and all of its content, recursively copy a directory to an S3 bucket, list all instances that are stopped at a given moment and the reason for the stop, etc. SAWS/aws-shell can further help streamline service management processes, Saryerwinnie says.
In an interview, Martin, who is currently maintainer of the aws-shell
project, told InfoQ that he believes
the main benefit is the joint development on very similar products. It seems SAWS was launched around the same time AWS had been working on a very similar solution with the aws-shell. With the collaboration we can focus on building a quality app together rather than working independently on very similar solutions.
Martin also pointed to a GitHub ticket detailing the work he did to port SAWS’s features to aws-shell
, in particular:
Finally, a new feature called Lexer is in the workings to enable syntax coloring of commands components.
aws-shell
is written in Python and supports Python 2.6 up to 3.4, as well as pypy. It can be installed on Linux, OS X, and Windows by running pip install aws-shell
. Source code is available on GitHub.