A friendly macOS app that automatically commits and syncs your local folders (like configs, documents, or notes) to GitHub — just like Google Drive, but powered by Git.
GittyCat is a lightweight, open-source menu-bar app for macOS that keeps your important folders in sync with GitHub.
No more manual commits, cd into folders, or scripts — GittyCat quietly tracks your chosen directories and pushes updates automatically (or on demand) from your menu bar.
It’s perfect for:
- Backing up your
~/Documents,~/Notes, or.configfolders. - Version-controlling personal setups (dotfiles, scripts, drafts).
- Keeping text or markdown notes safely versioned without CLI.
- 🧠 Smart Auto-Sync: Periodic commits and pushes based on your schedule.
- 💻 Menu-Bar / Status-Icon Mode: Click the cat to open your dashboard.
- 🗂️ Multi-Repo Support: Sync any number of local folders.
- 🧩 One-Click Setup: Built-in GUI to generate
config.jsonand bootstrap new repos — no command line needed. - 🧱 Git LFS Support: Track large files automatically.
- 🔒 SSH-based Authentication: Secure, passwordless Git pushes.
- 🧾 Logs & Notifications: View sync logs, status, and errors in-app.
- 🐾 Cute + Minimal: Because backup apps shouldn’t be boring.
| Component | Technology |
|---|---|
| Language | Swift 5.9+ |
| UI Framework | SwiftUI + AppKit |
| macOS APIs | NSStatusItem, NSWindow, NSWorkspace |
| Build Tool | Xcode 15+ |
| Git Integration | System git via Process() |
| Minimum macOS | macOS 13 (Ventura) |
git clone https://github.com/krushndayshmookh/GittyCat.git
cd GittyCat
open GittyCat.xcodeproj- Open in Xcode 15+
- Run (⌘R) — the 🐱 cat icon appears in your menu bar
- Click it to open the main window
- Click “Setup / Edit Configuration”
- Add repositories you want GittyCat to manage:
- Local folder path
- Remote GitHub URL (SSH preferred)
- Branch name (default:
main)
- Optionally, enable Bootstrap to auto-init and push the first commit.
Your configuration file is stored at:
~/Library/Application Support/GittyCat/config.json
{
"intervalMinutes": 15,
"repos": [
{
"name": "HomeConfig",
"path": "/Users/krushn/.config",
"remote": "git@github.com:krushndayshmookh/home-config.git",
"branch": "main",
"ignoreFile": "/Users/krushn/.config/.gitignore",
"lfsPatterns": []
},
{
"name": "Documents",
"path": "/Users/krushn/Documents",
"remote": "git@github.com:krushndayshmookh/documents-archive.git",
"branch": "main",
"ignoreFile": "/Users/krushn/Documents/.gitignore",
"lfsPatterns": ["*.pdf", "*.mp4"]
}
],
"commitMessage": "chore(sync): automatic backup",
"allowDirtyWorktrees": false
}- iCloud / remote config backup
- Background daemon mode
- Status notifications (success/fail)
- Conflict resolution UI
- Auto .gitignore editor
- Secure bookmark access for Sandbox build
- Signed release on GitHub
Pull requests are welcome!
If you’d like to fix bugs, improve the UI, or add features:
- Fork the repo
- Create a feature branch (
git checkout -b feature/your-feature) - Commit and push
- Open a Pull Request
Please follow Swift style conventions and add clear commit messages.
Released under the MIT License.
See LICENSE for details.
Created by Krushn Dayshmookh
Made with 🐱 in India.
“GittyCat keeps your files purring in sync — so you don’t have to.”