mani
CLI tool to help you manage multiple repositories
About mani
mani lets you manage multiple repositories and run commands across them.

Interested in managing your servers in a similar way? Checkout sake!
Table of Contents
Sponsors
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.
Installation
mani is available on Linux and Mac, with partial support for Windows.
Download from the release page.
curl -sfL https://raw.githubusercontent.com/alajmo/mani/main/install.sh | sh
brew tap alajmo/mani
brew install mani
sudo port install mani
yay -S mani
nix-env -iA nixos.mani
go get -u github.com/alajmo/mani
- 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.
Usage
Initialize Mani
Run the following command inside a directory containing your git repositories:
mani init
This 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.
Example Commands
# 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 status
Documentation
Checkout the following to learn more about mani:
- Examples
- Config
- Commands
- Documentation
- Changelog
- Roadmap
- Project Background
- Contributing
License
The MIT License (MIT)
Copyright (c) 2020-2021 Samir Alajmovic
Frequently Asked Questions
What is mani?
mani is a Utilities library for the Go programming language. CLI tool to help you manage multiple repositories
How do I install mani?
Install mani with the Go module system using `go get alajmo/mani`. Check the repository for the current installation instructions.
What category does mani belong to?
mani is listed under Utilities, specifically Utilities.