On GitHub, wallix/awless has picked up 5.0k stars, Developer Tools, Go. A Mighty CLI for AWS
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
awless is a powerful, innovative and small surface command line interface (CLI) to manage Amazon Web Services.
Twitter | Wiki | Changelog
Why awless
awless stands out by having the following characteristics:
small and hierarchical set of commands
a simple/powerful text templating language to create and revert fully-fledged infrastructures
wrapping/composing AWS API calls when necessary to enrich behaviour. Ex: ensure smart defaults, security best practices, etc.
local log of all your cloud modifications done through awless to list/revert past actions
sync to a local graph storage of your cloud representation
exploration of your cloud infrastructure and resources interrelations, even offline using the local graph storage
clearer and flexible terminal output's with: numerous formats (machine/human friendly), enriched resources's properties/relations when feasible
connect easily using awless' smart SSH to your private & public instances
For more read our FAQ below (how awless compares to other tools, etc.)
Install
Choose one of the following options:
On macOS, use homebrew: brew tap wallix/awless; brew install awless
With curl (macOS/Linux), run: curl https://raw.githubusercontent.com/wallix/awless/master/getawless.sh | bash
Download the latest awless binaries (Windows/Linux/macOS) from Github
If you have Golang already installed, install from the source with: go get -u github.com/wallix/awless
If you have previously used the AWS CLI or aws-shell, you don't need to configure anything! Your config will be automatically loaded (i.e. ~/.aws/{credentials,config}) and awless will prompt for any missing info (more at our getting started).
Main features
Note that the video above is in APNG and requires a recent browser.
Aliasing of resources through their natural name so you don't have to always use cryptic ids that are impossible to remember
awless show : Explore the properties, relations, dependencies of a specific resource (even offline thanks to the sync) given only a name (or id/arn).
$ awless show jsmith --local
awless list : Clear and easy listing of multi-region cloud resources (subnets, instances, users, buckets, records, etc.) on AWS EC2, IAM, S3, RDS, AutoScaling, SNS, SQS, Route53, CloudWatch, CloudFormation, Lambda, etc. Listing filters via resources properties or resources tags.
$ awless list instances --sort uptime --local
$ awless list users --format csv --columns name,created
$ awless list volumes --filter state=use --filter type=gp2
$ awless list volumes --tag-value Purchased
$ awless ls vpcs --tag-key Dept --tag-key Internal --format tsv
$ awless ls instances --tag Env=Production,Dept=Marketing
$ awless ls instances --filter state=running,type=micro --format json
$ awless ls s3objects --filter bucket=pdf-bucket -r us-west-2
$ ...
(see awless ls -h)
awless run : Create, update and delete complex infrastructures with smart defaults and sound auto-complete through awless templates.
$ awless run ~/templates/my-infra.aws
$ awless run https://raw.githubusercontent.com/wallix/awless-templates/master/linux_bastion.aws
etc.
Hundreds of powerful CRUD CLI one-liners integrated in the awless templating engine:
awless log : Detailled and easy reporting of all the CLI template executions
awless revert : Revert of executed templates and resources creation
Create instances straight from a distro name. No need to know the region or AMI ;) (free tier community bare distro only, see awless create instance -h)
awless transparently syncs cloud resources locally to a graph representation in order for the CLI to leverage data and their relations in other awless commands and in an offline manner (more on the sync)
awless sync : Explicit and manual command to fetch & store resources locally. Then query & inspect your cloud offline
Output listing formats either human (default display is Markdown-compatible tables) or machine readable (csv, tsv, json, ...): --format
awless inspect : Leverage experimental and community inspectors which are interface implementation utilities to run analysis on your cloud resources graphs
$ awless inspect -i bucket_sizer
(see awless inspect -h)
awless completion : CLI autocompletion for Unix/Linux's bash and zsh
Getting started
Take the tour at Getting Started (wiki) or read the introductory blog post about awless.
More articles:
Simplified Multi-Factor Authentication for AWS
Simplified user management for AWS
InfoWorld: Production-grade deployment of WordPress
Easy create & tear down of a multi-AZ CockroachDB cluster
Deploy Vuls.io to an AWS instance and scan for vulnerabilities
Awards
Top 50 Developer Tools of 2017
InfoWorld Bossie Awards 2017
FAQ
Here is a compilation of the question we often answer (thanks for asking them so that we can make things clearer!):
There are already some AWS CLIs. What is awless unique approach?
Three things that differentiates awless from other AWS CLIs:
It has its own compiled and very simple templating language to build AWS infrastructures.
Commands are made of VERB + ENTITY [+ param=value] and are actually valid lines of the template language.
It transparently syncs to a local graph a representation of the cloud resources and their relations.
Leveraging and combining the points above, awless lays some strong foundations for plenty of current/future features/characteristic such as:
Wrapping AWS API calls to enrich them with before/after behaviour when interacting with the cloud
Having a small and hierarchical set of commands to intuitively interact with AWS
Enriching listing of resources using the local model and relations that are not calculated with other CLIs
Referencing and finding resources quickly avoiding cryptic IDs in favor of names, etc.
Exposing in the terminal relation between resources: lineage, siblings, etc.
Performing local analysis of your cloud
Having a smart SSH to easily connect to instances
etc.
How do you create infrastructure with awless?
You build infrastructure using template files or command one-liners that get compiled and run through awless builtin engine. See what the templating language looks like. Learn more about the way templates work
Note that all your actions against the cloud are logged. Templates are revertible/rollbackable.
How does awless compares to aws-shell or saws?
(Points above should also help answering this question)
aws-shell and saws are directly mapped to the official AWS CLI. Their only objective is to make you productive and help you manage exhaustively the sheer number of AWS services, options, etc.
awless addresses this UI/productivity concern differently: small and hierarchical set of commands; favoring enriched listing with relations showing over AWS exhaustive outputting of properties; more useful human/machine formats.
The main point is that the UI/productivity concern is just a feature of awless and not its primary or only one, so there is much more to the tool.
Also aws-shell and saws are exhaustive in their support of AWS services. awless is so far more infrastructure centric, with an emphasis on enriching the information about your real infrastructure. awless is able to add any new AWS service quickly if that fits and make sense (see wiki on how to add a new AWS service).
How does awless compares to Terraform?
Terraform is a great product! awless is much younger than Terraform and Terraform is much broader in scope.
The approach is different though. When creating insfrastructure awless:
favors simplicity with a straight forward, compiled and simple deployment language
employs an all-or-nothing deployment: do not keep state, etc.
awless does provide a rollback on any ran template.
Does awless handles state when creating infrastructure (i.e. keep track of the changes)?
Quoting from a logz.io/blog entry: "Terraform is an amazing tool but a major challenge is managing the state file. Whenever you apply changes to your infrastructure, the entire managed body of code and created objects are tracked in the Terraform State file (.tfstate), which can reach hundreds of thousands of lines and must be managed carefully lest you incur large merge conflicts or unwanted resource changes", Ofer Velich.
As for now with awless, we have taken a different path: awless does not keep state of your cloud; it is more of an all-or-nothing deployment solution.
Note that awless logs (through rich and revertable logs) all your actions against the cloud and that you can revert any template ran.
About
awless is an open source project created by Henri Binsztok, Quentin Bourgerie, Simon Caplette and François-Xavier Aguessy at WALLIX.
awless is released under the Apache License and sponsored by Wallix.
Disclaimer: Awless allows for easy resource creation with your cloud provider;
we will not be responsible for any cloud costs incurred (even if you create a
million instances using awless templates).
Contributors are welcome! Please head to Contributing (wiki) to learn more.
Note that awless uses triplestore another project developped at WALLIX.
The most recent commit recorded on wallix/awless was 4.1 years ago, based on the GitHub push timestamp. The repository has 259 forks — one of the better signals of community interest.
How many stars does wallix/awless have?
wallix/awless has 5.0k GitHub stars — refresh the page for the live number, or check github.com/wallix/awless. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
Is wallix/awless open source?
Yes — wallix/awless ships under the Apache-2.0 license, which makes its source code freely readable (and, depending on license terms, forkable and reusable). Source: github.com/wallix/awless.
What else is in the Developer Tools space?
wallix/awless is tracked by TopGit under the Developer Tools category, alongside 9 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What topics is wallix/awless associated with?
GitHub's repository topics for wallix/awless: "awless", "aws", "aws-cli", "cli", "cloud", "cloud-management", "devops", "devops-tools", "golang". TopGit's editorial category is Developer Tools.
Where can I see wallix/awless in action?
The project maintains a homepage at http://awless.io/. The README tab on this page also usually contains screenshots and a quickstart.
Where do I read more about wallix/awless?
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/wallix/awless is the definitive source.
Read full README in the tab above.
Is awless worth your time?
ChatGPT, Claude and Perplexity can all read this page. Ask one of them what it makes of awless.