This guide explains how to set up and use the Git Sync feature in QuickNotes to backup and synchronize your notes with a GitHub repository.
Git Sync allows you to:
- Backup your notes to a GitHub repository
- Sync notes across multiple devices
- Track history of all changes to your notes
- Restore notes from the cloud
- Go to GitHub and sign in
- Click "New repository" (green button)
- Name it
notes(or any name you prefer) - Choose Private for personal notes
- Do NOT initialize with README, .gitignore, or license
- Click "Create repository"
Choose ONE of these methods:
- Generate SSH key (if you don't have one):
ssh-keygen -t ed25519 -C "your_email@example.com" - Add SSH key to GitHub:
- Go to GitHub → Settings → SSH and GPG keys
- Click "New SSH key"
- Copy content of
~/.ssh/id_ed25519.puband paste it
- Test connection:
You should see: "Hi username! You've successfully authenticated..."
ssh -T git@github.com
- Generate token:
- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click "Generate new token (classic)"
- Select scopes:
repo(all checkboxes) - Generate and copy the token (you won't see it again!)
- Windows will prompt for credentials on first push
- Use your GitHub username
- Paste the token as password
- Press
Alt + Spaceto open PowerToys Run - Type
qqand press Enter - Open PowerToys Settings:
- Press
Win + I→ PowerToys → PowerToys Run → Plugins - Find QuickNotes in the list
- Click the gear icon ⚙️ next to QuickNotes
- Press
In the QuickNotes settings panel, fill in:
| Setting | Description | Example |
|---|---|---|
| Enable Git Sync | Check this box | ☑️ |
| Git Repository URL | Your repository URL | See below |
| Git Branch | Branch name | main (default) |
| Git Username | Your name for commits | John Doe (optional) |
| Git Email | Your email for commits | john@example.com (optional) |
For SSH:
git@github.com:yourusername/notes.git
For HTTPS:
https://github.com/yourusername/notes.git
Click "Save" or close the settings window. PowerToys will apply the changes.
To push your local notes to GitHub:
- Press
Alt + Space - Type
qq sync - Press
Enter
First Time Only: The plugin will:
- Initialize a Git repository in your notes folder
- Add your existing
notes.txtfile - Create an initial commit
- Push to GitHub
Subsequent Times: The plugin will:
- Stage changes to
notes.txt - Create a commit with timestamp
- Push to GitHub
To pull notes from GitHub (overwrites local notes):
- Press
Alt + Space - Type
qq restore - Press
Enterto confirm
Solution: The plugin now shells out to the Git executable. Windows must have Git for Windows installed and available on PATH.
- Install Git for Windows if it's missing
- Re-open PowerToys after installation
- Verify
git --versionworks in a new terminal
For SSH:
- Verify SSH key is added to GitHub
- Test:
ssh -T git@github.com - Ensure you're using the SSH URL format:
git@github.com:username/notes.git
For HTTPS:
- Verify Personal Access Token is correct
- Check Windows Credential Manager for saved credentials
- Try re-entering credentials on next sync
Solution: Git settings are not saved properly.
- Open QuickNotes settings again
- Check "Enable Git Sync" checkbox
- Re-enter the Git Repository URL
- Click "Save"
- Restart PowerToys
Possible causes:
- Repository already exists on GitHub with content
- No internet connection
- Incorrect repository URL
- Permission issues with local notes folder
Solution:
- Verify the repository URL is correct
- Ensure the GitHub repository is empty (no README or initial files)
- Check your internet connection
- Verify you have write permissions to
%LOCALAPPDATA%\Microsoft\PowerToys\QuickNotes
Your notes are stored locally at:
C:\Users\YourUsername\AppData\Local\Microsoft\PowerToys\QuickNotes\notes.txt
When you run qq sync for the first time:
- Initialize Git: Creates
.gitfolder in the QuickNotes directory - Add Remote: Configures
originpointing to your GitHub repository - Stage Files: Adds your existing
notes.txtto Git - Create Commit: Makes an initial commit with your notes
- Push: Uploads to GitHub
On subsequent syncs:
- Stage Changes: Git detects changes to
notes.txt - Create Commit: Creates a commit with timestamp (e.g., "Auto-sync: 2025-10-10 15:30:00")
- Push: Uploads changes to GitHub
When you run qq restore:
- Backup: Creates a local backup of current notes (e.g.,
notes_backup_20251010_153000.txt) - Fetch: Downloads latest changes from GitHub
- Reset: Replaces local notes with GitHub version
All Git operations run in the background to avoid freezing the PowerToys Run interface. You'll see a notification when the operation completes.
- Sync Regularly: Run
qq syncafter making important changes - Private Repository: Keep your notes repository private for security
- Backup Before Restore: The plugin creates automatic backups, but you can also manually copy
notes.txt - Review Commits: Check your GitHub repository occasionally to see the sync history
- One Device at a Time: If using multiple devices, sync before making changes to avoid conflicts
- Private Repositories: Always use a private GitHub repository for personal notes
- Sensitive Data: Be careful about storing passwords or API keys in notes
- SSH vs HTTPS: SSH is more secure for automation, HTTPS requires token management
- Local Storage: Notes are stored unencrypted locally on your device
If you encounter issues:
- Check the Troubleshooting section
- Review PowerToys logs:
%LOCALAPPDATA%\Microsoft\PowerToys\PowerToys Run\Logs\ - Open an issue on GitHub
1. Create GitHub repository "notes"
2. Set up SSH key or Personal Access Token
3. Open QuickNotes settings in PowerToys
4. Enable Git Sync
5. Enter: git@github.com:yourusername/notes.git
6. Save settings
7. Run: qq sync
8. ✅ Notes are now on GitHub!
Morning:
- qq restore → Get latest notes from GitHub
During the day:
- qq buy milk → Create note
- qq meeting at 3pm → Create note
- qq #work deadline → Create tagged note
Evening:
- qq sync → Backup to GitHub
Made with ❤️ by the QuickNotes team