Warning
Known limitation: security-scoped bookmark access may fail intermittently on macOS. In practice, after several hours of normal runtime, multiple or all managed file bookmarks may suddenly become invalid without obvious user action.
Recovery path: fully quit SavePoint and relaunch it.
Status: under active investigation and mitigation.
SavePoint is a sandboxed macOS menu bar application for local file snapshotting. It monitors user-authorized files, captures point-in-time revisions on content changes, and provides diff/restore workflows for controlled rollback.
- This repository ships source code only. No packaged installer is provided.
- App source lives in
App/. - Xcode project:
SavePoint.xcodeproj.
- Change-driven snapshot capture for managed files, including background/offline scan paths.
- Snapshot lifecycle operations: inspect, rename, delete, lock, and unlock.
- File-to-snapshot diff against current working state.
- Restore from a selected historical snapshot.
- Retention-based storage cleanup.
- macOS 14.0+
- Xcode version capable of building for macOS 14.0 target
- Open
SavePoint.xcodeprojin Xcode. - Select the
SavePointscheme and run. - Authorize files from Add Managed File.
- Grant notification permission when prompted (usually on first snapshot creation).
- Default snapshots root:
~/Library/Application Support/SavePoint/Snapshots - The snapshot directory is also accessible from app settings.
- App Sandbox is enabled.
- File read/write scope is limited to user-selected files (
com.apple.security.files.user-selected.read-write).
- SavePoint is designed for local operation. This repository does not implement file content upload/sync.
- The app may open external links in your browser (for example, links in About).
- The app can post "snapshot created" notifications.
- Snapshot copies are stored under the current user profile (see
Data and Storage). - If managed files contain sensitive data, treat the snapshot directory as sensitive data.
When running unsigned builds on other macOS machines, Gatekeeper may block launch (for example, "Developer cannot be verified" or "App is damaged").
For local testing, advanced users can try right-click Open, or remove quarantine attributes:
xattr -dr com.apple.quarantine /Applications/SavePoint.appThis workaround is not suitable for production distribution.
Differ(Swift Package): collection diffing
Apache-2.0. See LICENSE.