All your repos.
Cloned and current.
Clones all your GitHub repos into ~/Developer and keeps them updated. Interactive menu lets you sync by platform, pick specific repos, or grab everything. Already-cloned repos get pulled — idempotent and safe to run anytime.
Auto-detects your GitHub username. Filters repos by platform topic.
What It's For
If you have repos scattered across machines or need to set up a fresh system, this gets everything in one place.
New Machine Setup
Clone all your repos at once instead of remembering each one. Perfect after a fresh OS install or setting up a new dev machine.
Keep Repos Current
Run it periodically to pull updates for all your repos. Already-cloned repos are checked against remote — only updated if behind.
Platform-Aware
Tag repos with GitHub topics (macos, windows, cross-platform) and the script only syncs what belongs on the current OS.
How to Use
Four ways to run it — pick the one that fits your workflow.
Shell Script
Run directly from Terminal.
git clone https://github.com/DJCastle/toolBox.git
cd toolBox
# Interactive clone/update
bash scripts/repo-sync/clone-repos.sh
# Report only — no changes
bash scripts/repo-sync/clone-repos.sh --check
PowerShell Script
Run from PowerShell.
git clone https://github.com/DJCastle/toolBox.git
cd toolBox
# Interactive clone/update
.\scripts\repo-sync\clone-repos.ps1
# Report only — no changes
.\scripts\repo-sync\clone-repos.ps1 -Check
Apple Shortcut
Import into Shortcuts.app and run with one click.
Requires enabling "Allow Running Scripts" in Shortcuts > Settings > Advanced. Disable after use.
Power Automate Desktop
Import the PAD flow and run with one click.
pad-flows/repo-sync/Dev-Clone-Repos.pad
Interactive Menu
Choose how to sync when you run the script.
This OS Only
Syncs repos tagged with the current platform (macos or windows) plus cross-platform. The default for most users.
All Repos
Syncs every repo regardless of platform tag. Useful if you want everything in one place or work across both platforms.
Pick from List
Shows a numbered list with platform indicators. Pick specific repos by number. Colored dots show which OS each repo targets.
Platform Filtering
Tag your repos with GitHub topics to control which repos sync on which OS.
gh repo edit your-username/repo-name --add-topic macos
# Tag a repo for both platforms
gh repo edit your-username/repo-name --add-topic cross-platform
Configuration
Customize at the top of each script.
Features
Auto-Detect Username
Automatically detects your GitHub username from gh auth. No hardcoded values — just authenticate and go.
Auth Prompt
If GitHub CLI isn't authenticated, the script offers to log you in right there. No need to run a separate command first.
Check Mode
Use --check or -Check to see what's cloned, what has updates, and what's missing — without making any changes.
Requirements
About
Repo Sync is part of CodeCraftedApps Toolbox, a collection of open-source automation tools for macOS and Windows. It uses standard Git operations (git clone and git pull --ff-only) — no files are modified beyond normal Git behavior. Your local changes are safe; the script won't force-push or overwrite anything.