https://github.com/tardieunicolas/gitveil
Keep your GitHub contribution graph active without exposing your private code
https://github.com/tardieunicolas/gitveil
activity cli commits contribution-graph developer-tools git git-history github github-activity privacy synchronization
Last synced: 7 months ago
JSON representation
Keep your GitHub contribution graph active without exposing your private code
- Host: GitHub
- URL: https://github.com/tardieunicolas/gitveil
- Owner: tardieunicolas
- License: mit
- Created: 2025-06-13T18:21:51.000Z (7 months ago)
- Default Branch: main
- Last Pushed: 2025-07-03T22:02:32.000Z (7 months ago)
- Last Synced: 2025-07-04T00:02:16.618Z (7 months ago)
- Topics: activity, cli, commits, contribution-graph, developer-tools, git, git-history, github, github-activity, privacy, synchronization
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/git-veil
- Size: 1.26 MB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README






# 🚀 GitVeil
**Keep your GitHub contribution graph active without exposing your private code.**
## 🆕 What's New in v1.0.3
> **[View Full Changelog](CHANGELOG.md)**
## Overview
**GitVeil** is a local CLI tool that syncs your professional development activity to a personal GitHub repository, in a **discreet**, **automated**, and **confidential** way. It replays your commits in an anonymized form, never copying any source code.
## Why choose GitVeil ?
- ✅ **Visibility**: Keep your GitHub contribution graph active, even for private work.
- 🔒 **Privacy**: No code is copied, everything stays local, 100% private.
- 🧘 **Simplicity**: Quick installation, guided configuration, minimalist usage.
## See GitVeil in action:
**Before GitVeil :**

**After GitVeil :**

Your contribution graph stays active without exposing any private work!
## 📦 Installation
Install GitVeil globally using npm:
```bash
npm install git-veil -g
```
Verify the installation:
```bash
gitveil --version
```
## 🚀 Quick Start
### 1. Setup Target Repository
```bash
mkdir my-target-repo && cd my-target-repo
git init && git remote add origin https://github.com/yourusername/my-target-repo.git
git branch -M main && git push -u origin main
gitveil config --init
```
### 2. Record & Sync Activity
```bash
cd /path/to/your/work/repo
gitveil record && gitveil push
```
**Done!** Your GitHub graph now reflects your private work.
## Main commands
- `gitveil record`: Extract and save filtered Git activity
- `gitveil status`: Show sync status and pending record
- `gitveil push`: Push anonymized commits to GitHub
- `gitveil config --init`: Edit configuration (email, path, etc)
- `gitveil guide`: Show quick start guide
## Privacy

- No code is ever copied
- No network access to professional repositories
- Everything happens locally, on your machine
## How It Works
1. **Scan**: Reads commit dates from your repositories (no code access)
2. **Generate**: Creates anonymous commits in your target repository
3. **Sync**: Pushes to GitHub to update your contribution graph
**Privacy**: Only commit timestamps are processed - your code never leaves your machine.
## 🛠 Troubleshooting
| Issue | Solution |
|-------|----------|
| **"No Git repository found"** | • Run command from inside a Git repository
• Check if `.git` folder exists
• Run `git status` to verify Git initialization |
| **"No commits found for email"** | • Check `git config user.email` matches your commits
• Use `git log --author="your@email.com"` to verify
• Update email with `git config user.email "correct@email.com"` |
| **"Target repository not found"** | • Ensure target path exists and is Git-initialized
• Run `gitveil config --init` to set correct path
• Verify remote with `git remote -v` |
| **"Permission denied (publickey)"** | • Check SSH key setup: `ssh -T git@github.com`
• Add SSH key to GitHub or use HTTPS instead
• Run `git config --global credential.helper store` |
| **"Nothing to commit"** | • Ensure you have commits in source repository
• Check date range with `gitveil config`
• Verify email configuration matches commit author |
| **"Configuration issues"** | • Run `gitveil config --init`
• Check file permissions in target directory
• Verify paths are absolute and accessible |
---
## ❓ FAQ
**Q: Is my code safe?**
A: Yes. GitVeil only reads commit timestamps, never your source code.
**Q: Can I use multiple repositories?**
A: Yes. Run `gitveil record` in each repository you want to track.
**Q: Will it affect my work repositories?**
A: No. GitVeil is read-only for your work repos.
**Q: What if I miss some days?**
A: Run `gitveil record && gitveil push` - original dates are preserved.
**Q: Can I preview before pushing?**
A: Yes. Use `gitveil status` to see pending commits.
**Q: How does email detection work?**
A: Uses `git config user.email` from each repository automatically.
### Getting Help
---
## 💬 Support
If **GitVeil** has been helpful to you, consider supporting its continued development:
[](https://coff.ee/nicolastardieu)
Your support helps keep this project alive and motivates further improvements.
Even a small gesture makes a big difference — thank you! 🙏
---
### 📧 Questions & Suggestions
Have questions, suggestions, or feedback? I'd love to hear from you!
[](mailto:ntardieu.contact@gmail.com?subject=GitVeil%20-%20Question/Suggestion)
Whether it's a bug report, feature request, or just a quick question, don't hesitate to reach out.
---
## 📄 License
MIT License - see the [LICENSE](LICENSE) file for details.