Home

Awesome

<h1 align="center"> <br> <img width="150" height="150" src="gh-s-logo.png"> <br> </h1> <h2 align="center"> <a href="#" onclick="return false;"> <img alt="PR" src="https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat"/> </a> <a href="https://golang.org/"> <img alt="Go" src="https://img.shields.io/badge/go-%2300ADD8.svg?&style=flat&logo=go&logoColor=white"/> </a> <a href="https://github.com/gennaro-tedesco/gh-s/releases"> <img alt="releases" src="https://img.shields.io/github/release/gennaro-tedesco/gh-s"/> </a> </h2> <h4 align="center">search github repositories interactively</h4> <h3 align="center"> <a href="#Installation">Installation</a> • <a href="#Usage">Usage</a> • <a href="#Feedback">Feedback</a> </h3>

Search GitHub repositories interactively from the command line. Start the prompt and browse the results! The name of that repository 🤔? Written in rust, a list of awesome projects...

...well say no more:

gh s -l rust -d list
<img alt="example_image" src="https://user-images.githubusercontent.com/15387611/151635859-4a8a2200-b000-4e03-888a-2dc8ddcef009.png">

Installation

gh extension install gennaro-tedesco/gh-s

This being a gh extension, you of course need gh cli as prerequisite.

Usage

Get started!

gh s

demo

...or do you prefer a full YouTube video on the topic?

Without any argument (or with flags only) gh s starts a prompt to insert the search query; after the search a list of results is shown. Navigate the list to show details, stars counts, URL and more. If instead you want to do all in one line

gh s [search] [flag]

takes one of the following arguments or flags

flagsdescriptionmultipleexample
-E, --emptydo not prompt for name, search by flags onlynogh s -E -l go -l rust
-l, --langnarrow down the search to a specific languageyes (OR)gh s prompt -l go -l lua
-d, --descsearch for keyword in the repository descriptionnogh s neovim -d plugin
-u, --userrestrict the search to a specific usernogh s lsp -u neovim
-t, --topicnarrow down the search to specific topicsyes (AND)gh s lsp -t plugin -t neovim
-c, --colourchange colour of the promptnogh s nvim -c magenta
-L, --limitlimit the number of results (default 20)nogh s nvim -L 3
-h, --helpshow the help pagenogh s -h
-V, --versionprint the current versionnogh s -V

The prompt accepts the following navigation commands:

keydescription
arrow keysbrowse results list
/toggle search in results list
enter (<CR>)print selected repository URL to stdout

Search by topic or language only

gh-s allows to skip prompting for a repository name by passing the -E flag; this in turn implies that the query searches against all possible GitHub repositories, which may result in longer response times. Notice furthermore that -E must always be accompanied by at least another non-empty flag. Use with care, however it does allow for some interesting statistics or general curiosity: check the Wiki!

Execute commands

gh-s must be intended as a filter prompt returning the URL of the selection; as such, the best and most flexible way to execute commands with the results is to pipe it into and from stdin/stdout. Have a look at the Wiki for some common examples!

Feedback

If you find this application useful consider awarding it a ⭐, it is a great way to give feedback! Otherwise, any additional suggestions or merge request is warmly welcome!

See also the complete family of extensions