repos-manager
One CLI to sync them all. Clone, update, and manage your Git repositories across every provider.
$_
Every provider, one tool
Sync repositories from 5 Git forges with a single command
GitHub
gh auth login
READYGitLab
glab auth login
READYForgejo / Gitea
tea login add
READYBitbucket
bitbucket auth login
BETARadicle
rad auth
BETAFeatures
Parallel sync
Sync repos in parallel with configurable job count. Default: 4 concurrent operations.
Status overview
See dirty, ahead, behind, and diverged repos across all providers at a glance.
Namespace mirroring
Repos are organized as provider/owner/repo matching the remote structure.
Filter and ignore
Fine-grained control with .repos-filter and .repos-ignore pattern files.
SSH and HTTPS
Choose your protocol. SSH by default, HTTPS with a flag.
Self-update
Built-in update command checks for new versions and updates in-place.
Quick start
$_ git clone git@github.com:Dxsk/repos-manager.git
$_ cd repos-manager && make install
Installed to ~/.local/bin/repos-manager
$_ repos-manager login
=== Login github ===
✓ Logged in to github.com
=== Login gitlab ===
✓ Logged in to gitlab.com
$_ repos-manager sync --all
✓ user/dotenv (updated)
✓ user/project (cloned)
⚠ user/infra (dirty, skipped)
Done: 1 cloned, 1 updated, 1 skipped
$_ repos-manager status
github.com/user/infra dirty
github.com/user/project ahead (+1)
gitlab.com/work/api behind (-3)
Total: 23 repos - 20 clean, 1 dirty, 1 ahead, 1 behind