mani lets you manage multiple repositories and run commands across them.
Interested in managing your servers in a similar way? Checkout sake!
Mani is an MIT-licensed open source project with ongoing development. If you'd like to support their efforts, check out Tabify - a Chrome extension that enhances your browsing experience with powerful window and tab management, focus-improving site blocking, and numerous features to optimize your browser workflow.
mani is available on Linux and Mac, with partial support for Windows.
Binaries
Download from the release page.
cURL (Linux & macOS)
curl -sfL https://raw.githubusercontent.com/alajmo/mani/main/install.sh | shHomebrew
brew tap alajmo/mani
brew install maniMacPorts
sudo port install maniArch (AUR)
yay -S maniNix
nix-env -iA nixos.maniGo
go get -u github.com/alajmo/maniBuilding From Source
- Clone the repo
- Build and run the executable
make build && ./dist/mani
Auto-completion is available via mani completion bash|zsh|fish|powershell and man page via mani gen.
Run the following command inside a directory containing your git repositories:
mani initThis will generate:
mani.yaml: Contains projects and custom tasks. Any subdirectory that has a.gitdirectory will be included (add the flag--auto-discovery=falseto turn off this feature).gitignore: (only when inside a git repo) Includes the projects specified inmani.yamlfile. To opt out, usemani init --sync-gitignore=false.
It can be helpful to initialize the mani repository as a git repository so that anyone can easily download the mani repository and run mani sync to clone all repositories and get the same project setup as you.
# List all projects
mani list projects
# Run git status across all projects
mani exec --all git status
# Run git status across all projects in parallel with output in table format
mani exec --all --parallel --output table git statusCheckout the following to learn more about mani:
- Examples
- Config
- Commands
- Documentation
- Changelog
- Roadmap
- Project Background
- Contributing
The MIT License (MIT)
Copyright (c) 2020-2021 Samir Alajmovic
