Switch between repositories with ease
Access all repositories from anywhere
- Fuzzy matching - can match paths partially.
- Shell integration - Works with zsh, bash and fish.
- Output formats - supports plain and nested json output.
- Respects gitignore - skips nested repositories that are ignored by git.
- Configurable - you can add multiple roots and control scan depth for each.
Download latest release for your system and put it in the path.
Command | Output Type | Description |
---|---|---|
repo cmp |
Text | repository names separated by space |
repo cmp -f/--full |
Text | full repository paths separated by newline |
repo cmp -j/--json |
JSON | paths and other metadata as a list |
repo cmp -t/--tree |
JSON | paths and other metadata as a tree |
You can run repo sh
to see the setup instructions for your current shell if supported. Supported shells are zsh
, bash
and fish
.
You can jump around your repos with -
% z fo/ba
% /foo/bar
% z p/os/vsc
% ~/Projects/oss/vscode-repo
Where z
can be any letter you bind. Hitting the tab will show you possible locations.
- Neovim - repo.nvim is a neovim plugin that uses telescope.nvim.
- VSCode - vscode-repo can be installed from the marketplace or from the
vsix
files under releases.
You can customize the behavior of repo by creating a configuration file named repo.yml
.
Tip
If no repo.yml file exists, the tool will search your home directory by default.
To initiate a blank configuration file, execute the following command:
repo init
This creates the repo.yml
file in your system's default configuration directory.
Warning
Ensure paths are specified using the correct path syntax for your operating system.
Define the directories you wish to include in the search. Each path can optionally specify a maximum traversal depth:
roots:
# Search all Git repositories within this directory:
- path: /home/mohit/Projects
# Restrict the search to a depth of 2 levels within this directory:
- path: /home/mohit/Work
depth: 2