

Jungle – Simple CLI for AWS operations - achiku
https://github.com/achiku/jungle

======
achiku
awscli is by far the most comprehensive CLI tool manipulating various AWS
services, and I really like its flexible options and up-to-date release cycle.
However, day-to-day AWS operations from my terminal don't need that much
flexibility and that many services. Rather, I wanted just small set of UNIX-
like commands which are easy to use and remember. So I wrote this small Python
package.

If you are interested, please let me hear what you think!

~~~
willejs
I really like this, i use the AWS cli daily, and its syntax and options are
very comprehensive, but not so user friendly.

~~~
achiku
Thanks! Let me hear how it fits to your daily operation!

------
rem7
As most people have already said awscli is awesome and very complete; and I
like awscli. The commands can get pretty long and when you have to look at the
help doc every time to see what arguments you're missing it can get tedious.
So Thanks for creating this!

~~~
mdaniel
If you aren't already aware, the recent versions of awscli have started
accepting the full JSON payloads, which I realize seems like it's worse but in
my experience one usually interacts with a few common cases and leaving the
JSON around for editing is both a great reminder and saves a bunch of
keystrokes.

[http://docs.aws.amazon.com/cli/latest/userguide/generate-
cli...](http://docs.aws.amazon.com/cli/latest/userguide/generate-cli-
skeleton.html)

~~~
achiku
I know awscli is trying to use skelton JSON to save keystrokes, and it
certainly helps a lot of adhoc operations to be done quickly without spending
precious cognitive load. I use JSON parameter template in my shell script, but
feel like it is not for "command line tool". It is just my feeling, but still
hard to neglect since I'm really used to UNIX-like command line tool.

~~~
mdaniel
Oh, yes, I hope my comment didn't come across as "you can replace jungle with
a ton of JSON"; I was trying to speak to the comment by @rem7 about trying to
remember all the crazy syntax of the command line.

I haven't tried jungle yet, but I am glad it exists and I thank you for open
sourcing it to improve our aws experience, too.

~~~
achiku
Thanks! reporting issues and pr are all welcomed!

------
aexaey
Thanks for introducing me to boto3. Being able to write compact and powerful
stuff like:

print [i.console_output()['Output'] for i in
boto3.resource('ec2').instances.filter(Filters=[{'Name': 'tag:Name', 'Values':
['frontend17']}])][0]

...is pretty awsesome!

~~~
achiku
I love boto, but when I filed the issue and received the answer from a
committer, I decided to move to boto3. I can understand the situation but,
boto seems to be be strictly backward compatible. So let's move on to boto3
and have nice Resource API with all AWS services.

[https://github.com/boto/boto/pull/3186](https://github.com/boto/boto/pull/3186)

------
douglasss
It's like you knew what I wanted before I wanted it. This is great. I hated
saving long "commands" for every operation I wanted to do. I will definitely
check this out and use this!

Thanks!

~~~
achiku
Thanks for the comment! Yeah, I hear you. awscli is really awesome tool, but
when it comes to day-to-day/adhoc operations, it doesn't do well like Unix
tools. And that is exactly why I wrote this!

~~~
duggan
I wrote a similar tool for Digital Ocean a couple of years ago, for the same
reasons! Improving CLI UX is shooting fish in a barrel, few designers seem to
care about the non-web experience.

~~~
achiku
Yeah, right. Quick and dirty CLI experience is a bit different from fancy GUI!

------
nzoschke
Great idea and great execution. SSH by instance ID is a tool I need right now
but never found the time to build. I'll give jungle a spin!

~~~
achiku
Thank you for your comment! It really helps me to keep moving on! If you find
any issue or space for improvement, please let me know, since the software is
just borned a couple days ago!

------
dostick
Couldn't this or 90% of this be done using bash aliases? Is there project like
that out there? So you don't have to install all the dependencies, etc.

~~~
achiku
Yeah, you are right. It is perfectly possible to wrap awscli by shell script
and do exactly the same thing with what this tool does. However, generally
speaking, it will be more and more difficult to test and maintain as a tool
becomes large, especially if it's written in shell script. Python has awesome
testing library (I love py.test), and the most importantly, has really cool
AWS mock library moto
([https://github.com/spulec/moto](https://github.com/spulec/moto)). These are
pretty much why I picked Python, rather than bash alias or shell script for
this tool.

------
reddit_clone
Nice! Can it use profiles from credentials file or just the default?

~~~
achiku
Thanks! I thinks you can use profile since all the settings related to
credential are based on boto3.

[http://boto3.readthedocs.org/en/latest/guide/quickstart.html...](http://boto3.readthedocs.org/en/latest/guide/quickstart.html#configuration)

------
8maki
good job!

~~~
achiku
Thanks, Mr. CEO!

