@dean0x/mars
v0.1.2
Published
Multi Agentic Repo workspace manager for Git repositories
Maintainers
Readme
Mars
Manage multiple Git repositories as one workspace.
Tag-based filtering, parallel operations, zero dependencies.
Why Mars?
- Polyrepo without the pain — one CLI for status, branching, syncing across all repos
- Tag-based filtering — target subsets of repos (
--tag frontend,--tag backend) - Zero dependencies — pure bash 3.2+, works on macOS out of the box
Quick Install
npm install -g @dean0x/marsSee all installation methods for Homebrew, curl, and manual options.
Quick Start
mkdir my-project && cd my-project
mars init
mars add https://github.com/dean0x/mars-example-frontend.git --tags frontend,web
mars add https://github.com/dean0x/mars-example-backend.git --tags backend,api
mars add https://github.com/dean0x/mars-example-shared.git --tags shared
mars clone
mars statusCommands
| Command | Description |
|---------|-------------|
| mars init | Initialize a new workspace |
| mars add <url> [--tags t1,t2] | Add a repository to config |
| mars clone [--tag TAG] | Clone configured repositories |
| mars status [--tag TAG] | Show status of all repositories |
| mars branch <name> [--tag TAG] | Create branch on repositories |
| mars checkout <branch> [--tag TAG] | Checkout branch on repositories |
| mars sync [--tag TAG] [--rebase] | Pull latest changes |
| mars exec "<cmd>" [--tag TAG] | Run command in each repository |
| mars list [--tag TAG] | List configured repositories |
Tag Filtering
Target subsets of repos using --tag:
# Only clone frontend repos
mars clone --tag frontend
# Create branch on backend repos only
mars branch feature-auth --tag backend
# Run npm install on all frontend repos
mars exec "npm install" --tag frontendConfiguration
mars.yaml
version: 1
workspace:
name: "my-project"
repos:
- url: [email protected]:org/frontend.git
tags: [frontend, web]
- url: [email protected]:org/backend.git
path: api # optional custom path
tags: [backend, api]
defaults:
branch: mainWorkspace Structure
my-project/
├── mars.yaml # Workspace configuration
├── .gitignore # Contains 'repos/'
└── repos/ # Cloned repositories (gitignored)
├── frontend/
├── backend/
└── shared/Installation
npm (recommended)
npm install -g @dean0x/marsOr run without installing:
npx @dean0x/mars --helpHomebrew (macOS/Linux)
brew install dean0x/tap/marsShell Script
curl -fsSL https://raw.githubusercontent.com/dean0x/mars/main/install.sh | bashInstall a specific version:
MARS_VERSION=0.1.2 curl -fsSL https://raw.githubusercontent.com/dean0x/mars/main/install.sh | bashManual
git clone https://github.com/dean0x/mars.git
cd mars
./build.sh
cp dist/mars ~/.local/bin/ # or anywhere in PATHContributing
See CONTRIBUTING.md for development setup, architecture, and release process.
License
MIT
