Fleet-scale Git orchestration for humans.
repos lets you manage a directory full of Git repositories like one project.
The daily path is intent-first: understand state, save work, sync changes. The
Git-shaped commands are still there when you need exact control.
# Install from source
git clone https://github.com/goobits/repos.git
cd repos
./install.sh
# Or install from crates.io
cargo install goobits-repos
# Daily usage
repos status # Understand fleet state
repos save "Update docs" # Stage tracked changes, commit, push
repos sync # Pull safe changes, push commits, report drift- Humane Daily Workflow -
status,save, andsyncmap to developer intent - Safe Defaults -
savestages tracked changes only; untracked files require opt-in - Batch Operations - Push, pull, commit, stage across all repositories concurrently
- Git LFS Support - Automatic detection and handling of Large File Storage in push/pull operations
- Nested Drift Detection - Track and sync nested repos at different commits
- Package Publishing - Publish to npm/Cargo/PyPI with visibility filtering
- Config Sync - Synchronize git user.name/email across projects
- Security Auditing - Scan for secrets with TruffleHog; automated fixes
# Everyday
repos status # Understand fleet state
repos save "Update docs" # Stage tracked changes, commit, push
repos sync # Pull safe changes, push commits, report drift
# Git Control
repos push # Push only + drift check
repos push --auto-upstream # Set upstream for new branches
repos pull --rebase # Pull only with rebase
# Staging & Commits
repos stage "pattern" # Stage by pattern
repos commit "message" # Commit staged changes
# Publishing
repos publish --dry-run # Preview
repos publish --tag # Publish + create git tags
repos publish --all # Include private repos
# Security
repos audit --verify # Scan for active secrets
repos audit --fix-gitignore # Safe fixes only
repos doctor # Diagnose common blockers
# Nested repos
repos nested status # Show drift
repos nested sync lib --to abc1234 --stash # Safe sync
# Config
repos config --from-global # Copy from global configrepos status • repos save • repos sync • repos push • repos pull • repos stage • repos unstage • repos commit • repos publish • repos audit • repos doctor • repos nested • repos config
See Commands Reference for complete flag documentation.
repos is intent-first, not magic-first.
repos save "message"uses the equivalent ofgit add -u, so new files are not committed accidentally.- Use
repos save "message" --include-untrackedwhen you intentionally want new files. - Use
repos save "message" --dry-runto preview the save plan. repos syncpulls safe remote changes, pushes local commits, and skips dirty repositories instead of stashing or overwriting local work.repos push --auto-upstreamreplaces the old “force” wording for publishing new branches.
Getting Started
- Installation - Setup and verification
- Getting Started - 5-minute tutorial with examples
Guides
- Commands Reference - All commands, flags, and workflows
- Publishing - Package publishing workflows
- Security Auditing - Secret scanning and fixes
- Nested Repository Management - Drift detection and sync
- Troubleshooting - Common issues and solutions
Reference
- Glossary - Terms, flags, and concepts
- Architecture - Concurrency model and design patterns
- Examples - CI/CD templates and automation scripts
cargo build --release # Optimized build
cargo test # Run testsThis repo pins Agent Workspace
as a submodule under infra/aw.
git submodule update --init --recursive
make aw-install # Install aw, Zellij setup, and repo adapters
make aw-doctor # Validate repo adapters and config/aw
make aw-update # Fast-forward the submodule and reinstallThe default local workspace is main with dev, git, and scratch tabs.
See CONTRIBUTING.md for development setup.
MIT - see LICENSE