I work 50+ hours a week writing code. My GitHub profile says I'm barely active.
Sound familiar? If you work on private repos — enterprise GitHub, Bitbucket, GitLab, self-hosted — none of that shows on your contribution graph. Recruiters see empty squares. Your profile looks dead.
I got tired of it and built contrib-mirror — a CLI that mirrors your real commit timestamps to a public repo. No code exposed. No fake commits. Just your actual work activity, finally visible.
Install
brew tap yuvrajangadsingh/contrib-mirror
brew install contrib-mirror
Or use the one-liner:
curl -fsSL https://raw.githubusercontent.com/yuvrajangadsingh/private-work-contributions-mirror/main/install.sh | bash
The setup wizard auto-detects your repos, emails, and org:
contrib-mirror --setup # configure once
contrib-mirror # sync anytime
How It Works
- Discovers repos in your work directory
- Creates bare caches (no source code touched)
- Extracts commit timestamps matching your email
- Optionally pulls PR/review/issue timestamps via GitHub API
- Creates empty commits with matching dates in a public mirror repo
- Pushes to GitHub
Zero code is ever exposed. The mirror contains only empty commits with timestamps.
It Also Tracks PRs and Reviews
GitHub counts more than commits — PRs opened, reviews submitted, and issues created all count toward your graph. With gh CLI authenticated, contrib-mirror picks those up too.
Set It and Forget It
Add a cron job or launchd agent and it syncs daily at midnight. Your graph stays green without you thinking about it.
The setup wizard handles scheduling too — just pick launchd or cron when prompted.
yuvrajangadsingh
/
private-work-contributions-mirror
Mirror commit timestamps from private work repos to your GitHub contribution graph—without exposing any code
Private Work Contributions Mirror
Mirror commit timestamps from private work repos to your GitHub contribution graph—without exposing any code.
Before After
┌────────────────────────┐ ┌────────────────────────┐
│ ░░░░░░░░░░░░░░░░░░░░░░ │ │ ░█░██░█░░█░██░█░░█░██░ │
│ ░░░░░░░░░░░░░░░░░░░░░░ │ → │ ░█░██░█░░█░██░█░░█░██░ │
│ ░░░░░░░░░░░░░░░░░░░░░░ │ │ ░█░██░█░░█░██░█░░█░██░ │
└────────────────────────┘ └────────────────────────┘
Private work invisible Real activity visible
Install
One-liner (recommended):
curl -fsSL https://raw.githubusercontent.com/yuvrajangadsingh/private-work-contributions-mirror/main/install.sh | bash
Homebrew:
brew tap yuvrajangadsingh/contrib-mirror
brew install contrib-mirror
Manual:
git clone https://github.com/yuvrajangadsingh/private-work-contributions-mirror.git
cd private-work-contributions-mirror
bash setup.sh
The installer runs an interactive setup wizard that auto-detects your repos, emails, and GitHub org.
Usage
contrib-mirror # run sync
contrib-mirror --setup # reconfigure
contrib-mirror --help # show help
contrib-mirror --version # show version
Prerequisites
Requirement
Why
Check
Git
Clone repos, create commits
git --version
Bash
Run the script
bash --version
Access to private repos
Fetch commits (SSH or HTTPS)
git remote -v in any work repo
GitHub CLI (optional)
Track PRs, reviews, issues
cli.github.com
Works with…
Give it a star if this is useful to you.
Top comments (0)
Some comments may only be visible to logged-in visitors. Sign in to view all comments.