Clone to organized paths. Open PRs, pipelines, branches instantly. One CLI, zero browser tabs.
Quick Start • Features • CLI Reference • Website • Contributing
gitr solves two daily frustrations: 1) repos scattered everywhere, 2) clicking through GitHub/GitLab/Bitbucket to find PRs, pipelines, issues.
$ gitr clone git@github.com:owner/repo.git # → ~/scm/github.com/owner/repo
$ gitr prs # Opens PRs/MRs in browser
$ gitr pipe # Opens pipelines/actions📚 See it in action on the website →
| Before gitr 😫 | After gitr ✨ |
|---|---|
| "Where should I clone this repo?" | gitr clone <url> → deterministic path |
| Create folders manually | Auto-creates host/owner/repo structure |
| Click through tabs to find PRs | gitr prs → instant navigation |
| Hunt for that repo you cloned | Always at ~/scm/{provider}/{owner}/{repo} |
macOS: brew install swarupdonepudi/tap/gitr
Go: go install github.com/swarupdonepudi/gitr@latest
Binary: Download from releases
gitr clone https://github.com/kubernetes/kubernetes
# → Clones to: ~/scm/github.com/kubernetes/kubernetes
cd ~/scm/github.com/kubernetes/kubernetes
gitr web # Opens repo homepage
gitr prs # Opens pull requests| Feature | Description |
|---|---|
| 🗂️ Organized Cloning | Clone repos to ~/scm/{host}/{owner}/{repo} structure |
| 🌐 Instant Web Nav | Open PRs, pipelines, issues, branches from terminal |
| 🏢 Enterprise Ready | Works with on-prem GitHub/GitLab/Bitbucket |
| 🔐 Multi Auth | SSH keys + HTTPS tokens support |
| 👀 Dry Run | Preview paths/URLs with gitr --dry <command> |
📖 Full feature documentation →
gitr clone <url> # Clone to deterministic path
gitr clone <url> -c # Create full directory hierarchy
gitr clone <url> --dry # Preview without cloning
gitr clone <url> --token=xxx # Clone with HTTPS tokenRun inside any git repository:
| Command | Opens |
|---|---|
gitr web |
Repository homepage |
gitr rem |
Current branch in web UI |
gitr prs |
Pull Requests / Merge Requests |
gitr pipe |
Pipelines / Actions |
gitr issues |
Issues |
gitr commits |
Commits for current branch |
gitr branches |
All branches |
gitr tags |
All tags |
gitr releases |
Releases page |
gitr config show # Show current configuration
gitr config edit # Edit ~/.gitr.yaml in $EDITOR
gitr path <url> # Show deterministic path for URL
gitr --dry <cmd> # Preview mode (no changes)gitr auto-creates ~/.gitr.yaml on first run. Quick example:
scm:
homeDir: /Users/you/scm
hosts:
- hostname: github.com
provider: github
clone:
alwaysCreDir: true
includeHostForCreDir: true
- hostname: gitlab.mycompany.net # On-prem support
provider: gitlab
scheme: httpsSupports: On-prem instances • Per-host clone rules • SSH config (~/.ssh/config) • HTTPS tokens (~/.personal_access_tokens/{hostname})
✅ GitHub (github.com + Enterprise) • ✅ GitLab (gitlab.com + Self-hosted) • ✅ Bitbucket (bitbucket.org + Datacenter)
After using gitr clone:
~/scm/
├── github.com/kubernetes/kubernetes/
├── github.com/swarupdonepudi/gitr/
├── gitlab.com/team/project/backend/
└── gitlab.mycompany.net/org/infra/terraform/
Power user aliases (add to .zshrc):
alias clone="gitr clone"
alias prs="gitr prs"
alias pipe="gitr pipe"📚 Documentation • 🎯 Tutorial • ❓ FAQ • 📦 Releases
gitr was built to share extreme productivity with other productivity geeks. Issues and pull requests are welcome!
gitr clone https://github.com/swarupdonepudi/gitr
make build && make testApache License 2.0 - see LICENSE for details.
Built with ❤️ for developers who value their time