mani is a tool that helps you manage multiple repositories. It's helpful when you are working with microservices or multi-project system and libraries and want a central place for pulling all repositories and running commands over the different projects. You specify projects and commands in a yaml config and then run the commands over all or a subset of the projects.
mani alternatives and similar packages
Based on the "Command Line" category.
Alternatively, view mani alternatives based on common mentions on social networks and blogs.
urfave/cli9.9 9.8 mani VS urfave/cliA simple, fast, and fun package for building command line apps in Go
cobra9.9 8.0 mani VS cobraA Commander for modern Go CLI interactions
bubbletea9.8 7.8 mani VS bubbleteaA powerful little TUI framework 🏗
termui9.7 0.0 mani VS termuiGolang terminal dashboard
Rich Interactive Widgets for Terminal UIsTerminal UI library with rich, interactive widgets — written in Golang
gocui9.5 0.0 mani VS gocuiMinimalist Go package aimed at creating Console User Interfaces.
kafka-go9.3 6.8 mani VS kafka-goKafka library in Go
color9.3 3.7 mani VS colorColor package for Go (golang)
LF9.2 5.4 mani VS LFTerminal file manager
elvish9.1 9.1 mani VS elvishElvish = Expressive Programming Language + Versatile Interactive Shell
termbox-go9.1 0.0 mani VS termbox-goPure Go termbox implementation
lipgloss9.1 2.8 mani VS lipglossStyle definitions for nice terminal layouts 👄
go-prompt9.1 0.0 mani VS go-promptBuilding powerful interactive prompts in Go, inspired by python-prompt-toolkit.
tcell8.9 9.1 mani VS tcellTcell is an alternate terminal package, similar in some ways to termbox, but better in others.
survey8.8 3.3 mani VS surveyA golang library for building interactive and accessible prompts with full support for windows and posix terminals.
kingpin8.8 2.1 mani VS kingpinCONTRIBUTIONS ONLY: A Go (golang) command line and flag parser
cointop8.8 1.6 mani VS cointopA fast and lightweight interactive terminal based UI application for tracking cryptocurrencies 🚀
pterm8.7 8.8 mani VS pterm✨ #PTerm is a modern Go module to easily beautify console output. Featuring charts, progressbars, tables, trees, text input, select menus and much more 🚀 It's completely configurable and 100% cross-platform compatible.
The Platinum Searcher8.6 0.0 mani VS The Platinum SearcherA code search tool similar to ack and the_silver_searcher(ag). It supports multi platforms and multi encodings.
progressbar8.6 5.7 mani VS progressbarA really basic thread-safe progress bar for Golang applications
go-flags8.5 0.0 mani VS go-flagsgo command line option parser
tui-go8.5 0.0 mani VS tui-goGo UI library for building rich terminal applications.
Dnote8.4 3.8 mani VS DnoteA simple command line notebook for programmers
pflag8.4 0.0 mani VS pflagDrop-in replacement for Go's flag package, implementing POSIX/GNU-style --flags.
readline8.3 4.0 mani VS readlineReadline is a pure go(golang) implementation for GNU-Readline kind library
termdash8.3 5.8 mani VS termdashTerminal based dashboard.
uiprogress8.2 0.0 mani VS uiprogressA go library to render progress bars in terminal applications
Git Town8.2 6.6 mani VS Git TownGit workflow automation to keep branches in sync and reduce merge conflicts.
asciigraph8.2 4.2 mani VS asciigraphGo package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.
mpb8.1 6.1 mani VS mpbmulti progress bar for Go cli applications
dotenv-linter8.0 7.0 mani VS dotenv-linter⚡️Lightning-fast linter for .env files. Written in Rust 🦀
mitchellh/cli8.0 3.1 mani VS mitchellh/cliA Go library for implementing command-line interfaces.
docopt.go7.8 0.0 mani VS docopt.goA command-line arguments parser that will make you smile.
uilive7.8 0.0 mani VS uiliveuilive is a go library for updating terminal output in realtime
kong7.7 6.0 mani VS kongKong is a command-line parser for Go
aurora7.6 0.0 mani VS auroraGolang ultimate ANSI-colors that supports Printf/Sprintf methods
ops7.6 7.2 mani VS opsops - build and run nanos unikernels
CLI Color7.6 7.1 mani VS CLI Color🎨 Terminal color rendering library, support 8/16 colors, 256 colors, RGB color rendering output, support Print/Sprintf methods, compatible with Windows. GO CLI 控制台颜色渲染工具库，支持16色，256色，RGB色彩渲染输出，使用类似于 Print/Sprintf，兼容并支持 Windows 环境的色彩渲染
termenv7.6 0.0 mani VS termenvAdvanced ANSI style & color support for your terminal applications
liner7.5 0.0 mani VS linerPure Go line editor with history, inspired by linenoise
cli-init7.3 0.0 mani VS cli-initThe easy way to build Golang command-line application.
complete7.2 0.0 mani VS completebash completion written in go + bash completion for go command
mow.cli7.2 0.0 mani VS mow.cliA versatile library for building CLI applications in Go
flaggy7.1 3.8 mani VS flaggyIdiomatic Go input parsing with subcommands, positional values, and flags at any position. No required project or package layout and no external dependencies.
hostctl7.1 0.0 mani VS hostctlYour dev tool to manage /etc/hosts like a pro!
go-isatty7.1 4.5 mani VS go-isattyisatty for golang.
go-colorable7.1 2.8 mani VS go-colorableColorable writer for windows.
cli7.0 2.5 mani VS cliCLI - A package for building command line app with go
clui7.0 2.1 mani VS cluiCommand Line User Interface (Console UI inspired by TurboVision)
uitable6.9 2.8 mani VS uitableA go library to improve readability in terminal apps using tabular data
Access the most powerful time series database as a service
Do you think we are missing an alternative of mani or a related project?
mani is a CLI tool that helps you manage multiple repositories. It's useful when you are working with microservices, multi-project systems, many libraries or just a bunch of repositories and want a central place for pulling all repositories and running commands over them.
You specify repository and commands in a config file and then run the commands over all or a subset of the repositories.
Interested in managing your servers in a similar way? Checkout sake!
- Clone multiple repositories in one command
- Declarative configuration
- Run custom or ad-hoc commands over multiple repositories
- Flexible filtering
- Customizable theme
- Portable, no dependencies
- Supports auto-completion
Table of Contents
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
brew tap alajmo/mani brew install mani
sudo port install mani
pacman -S mani
nix-env -iA nixos.mani
go get -u github.com/alajmo/mani
Auto-completion is available via
mani completion bash|zsh|fish|powershell and man page via
Building From Source
- Clone the repo
- Build and run the executable
sh make build && ./dist/mani
Create a New Mani Repository
Run the following command inside a directory containing your
$ mani init
This will generate two files:
mani.yaml: contains projects and custom tasks. Any sub-directory that has a
.gitinside it will be included (add the flag
--auto-discovery=falseto turn off this feature)
.gitignore: includes the projects specified in
mani.yamlfile. 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'
Checkout the following to learn more about mani:
- [Project Background](docs/project-background.md)
The MIT License (MIT)
Copyright (c) 2020-2021 Samir Alajmovic
*Note that all licence references and agreements mentioned in the mani README section above are relevant to that project's source code only.