cloninator¶
A CLI tool to manage Git repositories through YAML configuration.
cloninator allows you to define your Git repositories once in a YAML configuration file, then clone them all with a single command. Perfect for setting up development environments across multiple machines or managing large collections of repositories.
Features¶
- Bulk cloning: Clone all configured repositories with one command
- Multiple remotes: Automatically configure origin, upstream, and other remotes
- Post-checkout automation: Run setup commands after cloning (e.g.,
pip install,npm install) - Nested organization: Mirror your desired directory structure in config
- Split configurations: Organize configs across multiple files (personal, work, etc.)
- Config generation: Scan existing repos to auto-generate configuration
- Idempotent: Safe to run repeatedly; skips already-cloned repos
Quick Example¶
# ~/.config/cloninator/config.yaml
/root: ~/projects
personal:
myproject:
/remotes:
- name: origin
url: git@github.com:user/myproject.git
work:
company-repo:
/remotes:
- name: origin
url: git@gitlab.com:company/repo.git
- name: upstream
url: git@gitlab.com:upstream/repo.git
/post_checkout:
- pip install -r requirements.txt
$ cloninator clone
🟢 Cloning git@github.com:user/myproject.git at ~/projects/personal/myproject...
🟢 Cloning git@gitlab.com:company/repo.git at ~/projects/work/company-repo...
🟢 Adding remote upstream at git@gitlab.com:upstream/repo.git for ~/projects/work/company-repo...
🟢 Running post-checkout commands ['pip install -r requirements.txt'] for ~/projects/work/company-repo...
Getting Started¶
- Installation - Install cloninator
- Quick Start - Your first configuration
User Guide¶
- Configuration - Learn how to configure cloninator
- Commands - Available commands and options
- Examples - Real-world usage examples
- Workflows - Common workflows and patterns
Reference¶
- Configuration Reference - Complete configuration reference
- CLI Reference - Command-line interface reference