LinuxCommandLibrary
GitHubF-DroidGoogle Play Store

mani

CLI tool for managing multiple repositories

TLDR

Initialize a mani configuration
$ mani init
copy
Sync (clone) all repositories
$ mani sync
copy
Run a command across all projects
$ mani exec "[command]"
copy
Run a command only on projects with a specific tag
$ mani exec --tags [frontend] "[command]"
copy
Run a predefined task
$ mani run [task_name]
copy
List all projects
$ mani list projects
copy
List all available tasks
$ mani list tasks
copy

SYNOPSIS

mani command [options]

DESCRIPTION

mani is a CLI tool for managing multiple repositories from a central workspace. You define repositories and commands in a mani.yaml configuration file and then run commands across all or a subset of projects.Features include flexible project selection by name, tags, or paths, multiple output formats (stream, table, markdown, HTML), parallel execution across projects, and predefined tasks with custom commands.

PARAMETERS

init

Initialize a new mani configuration in the current directory.
sync
Clone and update all repositories defined in the configuration.
exec command
Execute a shell command across projects.
run task
Run a predefined task from the configuration.
list resource
List projects, tags, or tasks.
--tags tags
Filter projects by tags (comma-separated).
--projects projects
Filter by project names (comma-separated).
--all-projects
Target all projects including the root.
--parallel
Run commands in parallel across projects.
--output format
Output format: stream, table, markdown, or html.

CONFIGURATION

mani.yaml

Central configuration file defining repositories, tags, and tasks.

CAVEATS

All repositories must be accessible from the machine running mani. Clone operations require network access.

HISTORY

mani was created by alajmo and is written in Go.

SEE ALSO

git(1), mr(1)

Copied to clipboard
Kai