Sync your work & AI context to Google Drive without re-uploading a thing.
A WinUI 3 system tray app that hashes files before uploading, batches them for Google Apps Script's quotas, and redacts secrets in three layers before anything leaves your machine.
Built for Developer Workspaces
Backup that trusts nothing it hasn't verified.
No heavyweight sync client, no re-uploaded files, no accidental secret leaks.
Metadata Fast-Path + SHA-256
Checks modification timestamp and byte size first, computing a full SHA-256 hash only when metadata suggests a real change — unchanged files are never re-uploaded.
AI Agent Context Discovery
Breadth-first scans (levels 1–6) find CLAUDE.md files, agent skills, subagent prompts, memory files, and hooks across your workspaces automatically.
Three-Tiered Secret Redaction
A filename blacklist (.env, id_rsa), a 64 KB regex scan for token patterns, and a fail-closed MCP configuration sanitizer, all run before a file is staged for upload.
Nested Repo & Worktree Exclusion
A BFS traversal detects git roots — both .git directories and linked worktrees — and skips them, so tracked CLAUDE.md files are never misclassified as untracked scratch notes.
Flexible Scheduler & Tray
Configure background sync by weekday and run time, minimize to the system tray with H.NotifyIcon.WinUI, and launch silently at logon with --autostart.
No Silent Skips
Locked files and unlistable folders are reported as errors, not counted as "unchanged" — so the Up to date status can always be trusted. Failed batches persist for one-click retry with exponential backoff.
Engineered with WinUI 3 & .NET 9
Native Fluent Design with Mica backdrop material, MVVM via CommunityToolkit.Mvvm source generators, and a wire protocol designed around Google Apps Script's execution limits.
-
01
Crash-Safe Hash Index:
sync_hashes.jsonis written to a temp file and swapped in atomically once per batch. - 02 Adaptive Batching: Payloads capped at 8 files or 9 MB uncompressed to respect Apps Script's 6-minute execution ceiling.
-
03
Git Tracking Awareness: Batched
git ls-filesqueries (withcore.quotePath=false) separate tracked docs from local scratch notes.
public bool IsSafeToUpload(FileCandidate file)
{
// Tier 1: known secret filenames
if (BlacklistedNames.Contains(file.Name))
return false;
// Tier 2: regex scan of the first 64 KB
if (TokenPatternScanner.Matches(file.Head64Kb))
return false;
// Tier 3: fail-closed MCP config sanitizer
return McpConfigSanitizer.TryRedact(file, out _);
}
Ready to back up your workspace?
Clone the repository to build locally, or download the latest standalone installer.