README.md
August 2, 2026 · View on GitHub
██████╗ ██╗████████╗ ██████╗ ███████╗██████╗ ██████╗ ███████╗
██╔════╝ ██║╚══██╔══╝ ██╔══██╗██╔════╝██╔══██╗██╔═══██╗██╔════╝
██║ ███╗██║ ██║█████╗██████╔╝█████╗ ██████╔╝██║ ██║███████╗
██║ ██║██║ ██║╚════╝██╔══██╗██╔══╝ ██╔═══╝ ██║ ██║╚════██║
╚██████╔╝██║ ██║ ██║ ██║███████╗██║ ╚██████╔╝███████║
╚═════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝╚══════╝╚═╝ ╚═════╝ ╚══════╝
[PARALLEL GIT-REPO FINDER — COMPILED]
"find every repo, classify clean/dirty across threads, fzf-jump."
[NATIVE ZSHRS PLUGIN]
zsh-git-repo-cache ported to a native zshrs plugin: scan the filesystem for every git repository, cache the list, and fzf-pick one to cd into — with clean/dirty filtering.
zshrs · znative
Table of Contents
[0x00] OVERVIEW
The shell version does sudo find / -name .git plus a sequential git status per repo. The native version walks in-process and classifies clean/dirty in parallel across threads, which is the speedup.
Requires git and fzf on PATH. A repo is "clean" when git diff-index --quiet HEAD succeeds and there are no untracked files — the same test as the original.
[0x01] INSTALL
znative load MenkeTechnologies/zshrs-git-repos
Put that one line in your .zshrc. znative, zshrs's package manager, installs the plugin on the first shell start — clones it, runs cargo build --release, and zmodload -Rs the resulting libgit_repos — then loads it from the store, zero-network, on every start after. No separate install step.
Manual build
cargo build --release
zmodload -R ./target/release/libgit_repos.dylib # .so on Linux
gitrepos --regen && gitrepos
[0x02] USAGE
gitrepos fzf-pick any cached repo and cd to it
gitrepos --clean only repos with a clean working tree
gitrepos --dirty only repos with uncommitted/untracked changes
gitrepos --list print instead of fzf/cd (short: -l)
gitrepos --regen rescan the filesystem and rebuild the cache
(bare `gitrepos regen` works too)
gitrepos --root DIR scan root for --regen (default: $ZPWR_GIT_SCAN_ROOT or $HOME)
gitrepos --help one-line usage (short: -h)
Cache file: $ZPWR_ALL_GIT_DIRS (default ~/.zsh-git-repo-cache).
[0x03] HOW IT WORKS
--regen walks the scan root once, records each .git parent in the cache file, and classifies clean/dirty across a thread pool instead of one-repo-at-a-time. Subsequent gitrepos calls read the cache and fzf-pick; the cd is delegated to the shell so $PWD/hooks stay correct.
[0xFF] LICENSE
MIT. See LICENSE.