sluuz (slu)
Canonical: gitlab.com/safteinzz/sluuz · Mirror: github.com/safteinzz/sluuz
git, but it sleuths - a git superset with cross-repo search, secret scanning, and multi-repo management
Install
No cargo yet? Rust installs the same way on every distro: rustup.rs.
It is still git
Anything git understands is forwarded verbatim, with your editor, pager, prompts, colors and exit codes intact:
Then come the parts it does not. Each one below is a plain command and its interactive twin, because they answer the same question.
Every repo at once, and a way into them
Legend: ✚ uncommitted · ↑ unpushed commits · ↓ unpulled commits

One app, three doors: slu ibranch opens it at the branches level and
slu ilog at the commits level of the repo you are standing in.
Find a leaked string in every repo's history

notifications-worker is the case a file listing cannot find: .env was
untracked afterwards, so the secret survives only in history. The origin/ refs
say it survives on the server too.
Terms are case-insensitive and default to
password,secret,token,api_key,passwd,credentials; -t replaces that list.
Being pickaxe-based, all three also read binary and encrypted blobs.

Read history in a real diff view
Highlighted in pure Rust, so no external diff tool is required - though Enter
hands the file to yours if you want it.


Stage and review in one place
git status you can act on. The two-column code is git's own: left is
staged (green), right is unstaged (red), so M is staged, M is
unstaged, MM is both and ?? is untracked.

The diff pane follows the scope. Works from any subdirectory.
Know what you have not pushed, and delete what is finished
Legend: ↑N ahead of upstream · no remote never pushed · ⚑ gone upstream
was deleted · synced in step

"Finished" means upstream gone, not "merged", so a branch still alive on the remote is never suggested for deletion, and the confirm defaults to No.
Tab completion
Completion reuses git's own, so slu branch v<Tab> completes a real branch name
and every git subcommand, alias and flag behaves exactly like git.
Restart your shell afterwards; without --add it just prints the script. Works
in Git Bash and WSL too.
Commands
Multi-repo commands take a path (default .) and -d, --depth <N> for how
deep to look (default 3). Run slu <command> --help for the full flag surface
of any command.
Compatibility
Linux, macOS and Windows. Everything is passed through to your own git, so
anywhere git runs, slu runs.
License
AGPL-3.0-only