Skip to main content

Awesome CLI

Awesome CLI is a simple command line tool to give you a fancy command line interface to dive into Awesome lists.


The CLI starts with the root repository sindresorhus/awesome and guides to to the final repo according to your choices. It fetches Readme files of the repositories and parses them to create the select lists. So, the CLI needs a working network :). It also uses file caches to cache the Readme file contents. You can find the cache folder with name ".awesomecache" under your home folder.

How To Use

Interactive Mode

In order to use awesome-cli interactively, just execute it without giving any option. You will walk through the categories and repositories by using "↓ ↑ → ←" buttons. Your choices will be saved to use them in surprise mode.

> $ awesome-cli
Use the arrow keys to navigate: ↓ ↑ → ←
? Select from 'Awesome' list:
▸ Platforms
Programming Languages
Front-End Development
Back-End Development
Computer Science
Big Data
↓ Gaming

Random Mode

You can use "random" option to go a random awesome repository under a random category.

> $ awesome-cli random
aweome-cli Version 0.3.0
✔ Programming Languages
✔ Eta
✔ Community

Surprise Mode

When you use "surprise" option, awesome-cli will use your previous selections in interactive mode to find a random repository for you.

> $ awesome-cli surprise
aweome-cli Version 0.3.0
✔ Back-End Development
✔ Docker
✔ Videos
✔ From Local Docker Development to Production Deployments

How To Install


Follow the steps;

> $ git clone [email protected]:umutphp/awesome-cli.git
> $ cd awesome-cli
> $ go run main.go

Build as binary

Follow the steps;

> $ git clone [email protected]:umutphp/awesome-cli.git
> $ cd awesome-cli
> $ sudo go build -o /usr/local/bin/awesome-cli .
> $ awesome-cli

Download and use official binary

Visit the latest release page and download the binary correspondingly.

> $ wget -O /usr/local/bin/awesome-cli https://latest-binary-url
> $ awesome-cli

CLI Options

The CLI works in interactive mode without any given option. But, It can be also called some options described below;

> $ awesome-cli help
awesome-cli Version 0.6.0

Options of awesome-cli:
help To print this screen.
random To go to a random awesome content.
surprise To go to a surprise awesome content according to your previos choices.
profile To see your previous choices.
reset To clean your choices to start from the beginning.
update Update awesome-cli to the latest version.

Sample Execution

> $ awesome-cli random
aweome-cli Version 0.2.0
✔ Platforms
✔ Linux
✔ Applications
✔ Gedit

How To Contribute

Please follow the instructions in CONTRIBUTING file and beware of CODE_OF_CONDUCT.

Contribute to this list: