cloninator: A CLI Tool to Manage Your Repos
cloninator is a command-line tool that manages Git repositories through YAML configuration. Define your repositories once, 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 Start
1. Install
uv tool install --python 3.13 cloninator
2. Configure
Create ~/.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
3. Clone
cloninator clone
Commands
clone: Clone all repositories from configurationgenerate: Scan existing repos and generate configuration
See the Usage Guide for detailed examples and workflows.
Documentation
Metadata
Release files for cloninator 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| cloninator-0.2.0.tar.gz | 7.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| cloninator-0.2.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 17.4 kB
Release files / cloninator-0.2.0.tar.gz
| Download URL | cloninator-0.2.0.tar.gz |
|---|---|
| Size | 7.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f2388e6879fbac4c11b51d244831e39a1aed43082a6e4ed7c63938b0b21e9059
|
|
BLAKE2b-256 checksum How to use checksums |
41cc88d85089141964d1232f697f2b240ed610a977f243d0ef335627a5f58cac
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / cloninator-0.2.0-py3-none-any.whl
| Download URL | cloninator-0.2.0-py3-none-any.whl |
|---|---|
| Size | 10.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b997b62276611878b4b37b356a1cf6142f0203ae02fffc985097fdb2c99dda55
|
|
BLAKE2b-256 checksum How to use checksums |
d899f4c3a16d96b19a2896d9f6eb26e364051bb2ba743c7f2277a50613f92bf8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.11.25 {"installer":{"name":"uv","version":"0.11.25","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|