{"id":13491373,"url":"https://github.com/achiku/jungle","last_synced_at":"2025-05-16T08:04:43.363Z","repository":{"id":54490938,"uuid":"39247174","full_name":"achiku/jungle","owner":"achiku","description":"AWS operations by cli should be simpler","archived":false,"fork":false,"pushed_at":"2018-04-17T07:27:09.000Z","size":143,"stargazers_count":844,"open_issues_count":6,"forks_count":39,"subscribers_count":21,"default_branch":"master","last_synced_at":"2025-05-10T22:03:09.586Z","etag":null,"topics":["aws","cli","ec2"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/achiku.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2015-07-17T09:47:41.000Z","updated_at":"2024-11-06T06:34:11.000Z","dependencies_parsed_at":"2022-08-13T17:40:17.280Z","dependency_job_id":null,"html_url":"https://github.com/achiku/jungle","commit_stats":null,"previous_names":[],"tags_count":25,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achiku%2Fjungle","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achiku%2Fjungle/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achiku%2Fjungle/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/achiku%2Fjungle/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/achiku","download_url":"https://codeload.github.com/achiku/jungle/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254493378,"owners_count":22080126,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","cli","ec2"],"created_at":"2024-07-31T19:00:56.283Z","updated_at":"2025-05-16T08:04:40.263Z","avatar_url":"https://github.com/achiku.png","language":"Python","funding_links":[],"categories":["Python","Tools","Open Source Repos"],"sub_categories":["Python","CLI"],"readme":"# jungle\n\n[![PyPI version](https://img.shields.io/pypi/v/jungle.svg)](https://pypi.python.org/pypi/jungle)\n[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://raw.githubusercontent.com/achiku/jungle/master/LICENSE)\n[![Build Status](https://travis-ci.org/achiku/jungle.svg)](https://travis-ci.org/achiku/jungle)\n[![codecov.io](http://codecov.io/github/achiku/jungle/coverage.svg?branch=master)](http://codecov.io/github/achiku/jungle?branch=master)\n\n\n## Description\n\njungle makes AWS operations from terminal simpler and more intuitive.\n\n\n## Why created\n\nawscli 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.\n\n## Installation\n\n```\npip install jungle\n```\n\n\n## Usage\n\n\n### EC2\n\nI would highly recommend to use `ssh-agent` to manage your ssh keys and pass phrases. If you `ssh-add` your keys, `ssh-agent` automatically select appropriate key when you try to login to a box. This makes it much easier to use `jungle ec2 ssh`, or `ssh` command in general, since you don't have to specify `--key-file /path/to/key.pem` for each EC2 instance.\n\nListing all EC2 instances (each attribute is separated by a tab)\n\n```\njungle ec2 ls\n```\n\nListing all EC2 instances in formatted output(each attribute is separated with space and is aligned)\n\n```\njungle ec2 ls -l\n```\n\nFiltering EC2 instances by Name tag\n\n```\njungle ec2 ls blog-web-server-01\n```\n\nFiltering EC2 instances by Name tag using wildcard\n\n```\njungle ec2 ls '*web*'\n```\n\nStarting instance\n\n```\njungle ec2 up -i i-xxxxxx\n```\n\nStopping instance\n\n```\njungle ec2 down -i i-xxxxxx\n```\n\nSSH login to instance specified by instance id\n\n```\njungle ec2 ssh -i i-xxxxxx --key-file /path/to/key.pem --port 1234\n```\n\nSSH login to instance specified by Tag Name\n\n```\njungle ec2 ssh -n blog-web-server-01 --key-file /path/to/key.pem\n```\n\nSSH login to instance specified by Tag Name with wildcard (you'll be prompted to choose which server to log in)\n\n```\njungle ec2 ssh -n 'blog-web-server-*' --key-file /path/to/key.pem\n```\n\nSSH login to instance specified by Tag Name through gateway instance\n\n```\njungle ec2 ssh -n blog-web-server-01 --key-file /path/to/key.pem -g i-xxxxxx\n```\n\nSSH login to instance specified by Tag Name using auto ssh key discovery\n\n```\njungle ec2 ssh -n blog-web-server-01\n```\n\nSSH login to instance gateway instance, specifying username for each instance,\nwhile disabling known_hosts prompt.\n\n```\njungle ec2 ssh -i i-xxxxxx -u ec2-user -k /path/to/key.pem -s \"-o UserKnownHostsFile=/dev/null\" -g i-xxxxxx -x core\n```\n\n`--dry-run` gives you ssh command and exits.\n\n```\njungle ec2 ssh -n blog-web-server-01 -u ec2-user --dry-run\nssh xxx.xxx.xxx.xxx@ec2-user\n```\n\n`-P/--profile-name` specify AWS profile name.\n\n```\njungle ec2 -P myprofile ssh -n blog-web-server-01 -u ec2-user\n```\n\n### ELB\n\nListing all ELB instances\n\n```\njungle elb ls\n```\n\nListing a ELB instance\n\n```\njungle elb ls production-blog-elb\n```\n\nListing ELB attached EC2 instances\n\n```\njungle elb ls -l production-blog-elb\n```\n\n\n### EMR\n\n```\njungle emr ls\n```\n\n```\njungle emr ssh -k /path/to/key.pem -i j-xxxxxxx\n```\n\n```\njungle emr rm -i j-xxxxxxx\n```\n\n### AutoScaling\n\n```\njungle asg ls\n```\n\n### RDS\n\n```\njungle rds ls\n```\n\n\n## Autocompletion (currently only supports bash)\n\nExecuging the following command prints bash autocompletion script. Copy and past or redirect to your favorite file (e.g. `/etc/bash_completion.d/jungle`, `~/.bashrc`). This is a function of [click](http://click.pocoo.org/5/), which internally used by `jungle`.\n\n```\n$ _JUNGLE_COMPLETE=source jungle\n```\n\n\n## Configuration\n\nYou can create the credential file yourself. By default, its location is at ```~/.aws/credentials```\n\n```\n[default]\naws_access_key_id = YOUR_ACCESS_KEY\naws_secret_access_key = YOUR_SECRET_KEY\n```\n\n\nYou may also want to set a default region. This can be done in the configuration file. By default, its location is at ```~/.aws/config```\n\n```\n[default]\nregion = us-east-1\n```\n\nMore detailed configurations can be found in the boto3 documentation.\n\n[Boto3 Doc - Configuration](http://boto3.readthedocs.org/en/latest/guide/configuration.html#guide-configuration)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachiku%2Fjungle","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fachiku%2Fjungle","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fachiku%2Fjungle/lists"}