Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fazzabi/mani

Open more actions menu
 
 

Repository files navigation

mani


mani is a CLI tool that helps you manage multiple repositories. It's useful when you are working with microservices, multi-project systems, multiple libraries, or just a collection of repositories and want a central place for pulling all repositories and running commands across them.

demo

Interested in managing your servers in a similar way? Checkout sake!

Features

  • Declarative configuration
  • Clone multiple repositories with a single command
  • Run custom or ad-hoc commands across multiple repositories
  • Built-in TUI
  • Flexible filtering
  • Customizable theme
  • Auto-completion support
  • Portable, no dependencies

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.

Table of Contents

Installation

Packaging status

mani is available on Linux and Mac, with partial support for Windows.

  • Binaries are available on the release page

  • via cURL (Linux & macOS)

    curl -sfL https://raw.githubusercontent.com/alajmo/mani/main/install.sh | sh
  • via Homebrew

    brew tap alajmo/mani
    brew install mani
  • via MacPorts

    sudo port install mani
  • via Arch (AUR)

    yay -S mani
  • via Nix

    nix-env -iA nixos.mani
  • via Go

    go get -u github.com/alajmo/mani

Auto-completion is available via mani completion bash|zsh|fish|powershell and man page via mani gen.

Building From Source

  1. Clone the repo
  2. Build and run the executable
    make build && ./dist/mani

Usage

Create a New Mani Repository

Run the following command inside a directory containing your git repositories:

$ mani init

This will generate two files:

  • 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: Includes the projects specified in mani.yaml file. To opt out, use mani init --vcs=none.

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.

Run Some Commands

# List all projects
$ mani list projects

# Count number of files in each project in parallel
$ mani exec --all --output table --parallel 'find . -type f | wc -l'

# Start TUI
mani tui

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

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages

Morty Proxy This is a proxified and sanitized view of the page, visit original site.