Wash

Have you ever had to:

List all your AWS EC2 instances or Kubernetes pods?
aws ec2 describe-instances --profile foo --query 'Reservations[].Instances[].InstanceId' --output text
kubectl get pods --all-namespaces`
Read/cat a GCP Compute instance's console output, or an AWS S3 object's content?
gcloud compute instances get-serial-port-output foo
aws s3api get-object content.txt --profile foo --bucket bar --key baz && cat content.txt && rm content.txt
Exec a command on a Kubernetes pod or GCP Compute Instance?
kubectl exec foo uname
gcloud compute ssh foo --command uname
Find all AWS EC2 instances with a particular tag, or Docker container with a specific label?
aws ec2 describe-instances --profile foo --query 'Reservations[].Instances[].InstanceId' --filters Name=tag-key,Values=owner --output text
docker ps --filter “label=owner”

If not, then try clicking on the arrows to see the recommended way of doing those tasks. Does it bother you that each of those is a bespoke, cryptic incantation of various vendor-specific tools? It’s a lot of commands you have to use, applications you need to install, and DSLs you have to learn just to do some pretty basic tasks. In Wash, these basic tasks are simple. You’ll find that

Listing stuff is as easy as ls
ls aws/foo/resources/ec2/instances
ls kubernetes/foo/bar/pods
Reading stuff is as easy as cat'ing a file
cat gcp/foo/compute/bar/console.out
cat aws/foo/resources/s3/bar/baz
Execing a command is as easy as wexec
wexec kubernetes/foo/bar/pods/baz uname
wexec gcp/foo/compute/bar uname
Finding stuff is as easy as find
find aws/foo -k '*ec2*instance' -meta '.tags[?].key' owner
find docker -k '*container' -meta '.labels.owner' -exists

And this is only scratching the surface of Wash’s capabilities. Check out the screencast below

and the tutorials to learn more.