rhq - Manages your local repositoriesrhq is a command-line repository management tool, written in Rust.
rhq provides a way to organize local repositories cloned by Git and other VCSs.
You can use the command rhq clone as alternative of git clone,
to clone remote repositories under a specific root directory with intuitive directory structure.
```sh $ rhq clone ubnt-intrepid/rhq
git clone https://github.com/ubnt-intrepid/rhq.git ~/.rhq/github.com/ubnt-intrepid/rhq```
~/.rhq/
  |- github.com/
  |  |- ubnt-intrepid/
  |  |  `- rhq/         <- clones with intuitive directory structure
  |  `- user2/
  |     `- repo3/
  `- gitlab.com/
     `- user3/
        `- repo4/
rhq also provides a way to list the location of managed local repositories.
sh
$ rhq list
/home/username/.rhq/github.com/ubnt-intrepid/rhq
/home/username/.zplug/repos/zsh-users/zsh-autosuggestions
...
You can download precompiled artifacts from GitHub releases page.
If you have already installed Rust toolchain, builing manually is available with following command:
shell-session
$ cargo install rhq  # from crates.io
$ cargo install --git https://github.com/ubnt-intrepid/rhq.git  # development version
rhq clone [<query>]Clone remote reposities into the local directory.
<query> - A string to determine the URL of remote repository. 
Available formats are:
(http|https|ssh|git)://github.com[:port]/username/repository.gitgit@github.com:username/repository.gitusername/repositoryWhen <query> is omitted, rhq try to get the list of queries from standard input.
--arg=<arg> - Supplemental arguments to pass git command-n | --dry-run - Show message string, instead of actually performing Git command--root=<root> - Target root directory of cloned repository.rhq new <query>Create a new Git repository with intuitive directory structure.
See rhq clone (but <query> is required)
See rhq clone
rhq scanScan directories to create cache of repositories list.
None
-v, --verbose - Use verbose outputrhq listList local repositories managed by rhq.
None
None
rhq foreach <command> [<args>...]Execute commands into each local repositories.
<command> - Command name<args>... - Supplemental arguments of command-n | --dry-run - Show message string, instead of actually performing Git command.rhq completion <shell> [<out-file>]Generate completion script for your shell.
If out-file is omitted, dump scirpt to standard output.
<shell> - Target shell name (value: bash, zsh, fish or powershell)<out-file> - Path to write completion scriptThe behaviour of rhq can change by using configuration files.
The location of configuration file is ~/.rhqconfig or ~/.config/rhq/config.
root - string 
The path of root directory to put in local repositories.
The default value is ~/.rhq.
supplements - array of strings 
Supplemental directories for lookup local repositories.
See .rhqconfig for details.
mattn/ctrlp-ghq is available.
If you are vim-plug user, try as follows:
```vim Plug 'mattn/ctrlp-ghq'
let g:ctrlpghqcommand = 'rhq' let g:ctrlpghqactions = [ { "label": "Open", "action": "Explore", "path": 0 } ]
noremap 
Extensions for Visual Studio Code is available. See here for details.