Skip to content
/ mani Public

🤖 CLI tool to help you manage repositories

License

Notifications You must be signed in to change notification settings

alajmo/mani

Repository files navigation

mani


mani lets you manage multiple repositories and run commands across them.

demo

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.

Binaries

Download from the release page.

cURL (Linux & macOS)
curl -sfL https://raw.githubusercontent.com/alajmo/mani/main/install.sh | sh
Homebrew
brew tap alajmo/mani
brew install mani
MacPorts
sudo port install mani
Arch (AUR)
yay -S mani
Nix
nix-env -iA nixos.mani
Go
go get -u github.com/alajmo/mani
Building From Source
  1. Clone the repo
  2. 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 .git directory will be included (add the flag --auto-discovery=false to turn off this feature)
  • .gitignore: (only when inside a git repo) Includes the projects specified in mani.yaml file. To opt out, use mani 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:

The MIT License (MIT)

Copyright (c) 2020-2021 Samir Alajmovic

About

🤖 CLI tool to help you manage repositories

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 10