Your camera roll, safely on your Mac. A native macOS photo and video backup app, part of Cloakyard.
CloakRoll is a development preview entering V1 closeout. The app browses a real USB-connected iPhone and backs up selected or filtered originals into separate iPhone folders, checking file sizes and local SHA-256 digests before reporting success. Bounded physical imports have covered photos, Live Photos, RAW and video. Real incremental repeats, new-item detection, Stop and deferred Quit have bounded evidence; final cable/external-drive interruption, reconnect and sustained performance checks remain open. The app includes offline Backup History, remembered browsing choices, native search/menu actions, clearly labeled sample media, chronological groups, filtering, selection, camera metadata and Settings. Media Info has native Previous/Next controls and ⌘[ / ⌘] shortcuts for browsing the current results without changing the backup selection. See Info navigation verification. Right-click a date label to Select Date Group or Deselect Date Group. These actions affect only the current filtered results and preserve selections in other groups; they are also available in the Library menu for the active photo's group. See date selection verification. Interrupted publication recovery and a per-original available-space check preserve completed files when a later operation fails. Active backups, explicit saved-file checks and history rebuilding keep the Mac awake while allowing the display to sleep. Stop waits for work to settle before releasing the activity. Keep a MacBook's lid open; explicit sleep can interrupt the connection. See backup activity verification. Use the toolbar calendar to filter by capture date, with inclusive From/Through days and quick date choices. The range combines with filename search and limits backup candidates; clear it to include undated items again. See the feature and UX audit.
Backup History now includes Newer/Older navigation beyond the latest 100 sessions, with iPhone/result filters and retry that preserves the current page. See history paging verification. Backup History → expand or right-click a session → Check Saved Files… recalls that backup’s folder for review. You can choose it again without changing any iPhone’s backup mapping. The read-only check has progress, Stop/retry and missing-or-changed-file results; it does not need an iPhone or change history. See saved-file verification evidence. Follow the implementation plan for actual progress and verification evidence. The release checklist consolidates the remaining gates, repeatable software checks and local packaging. See the privacy policy for local data handling. The native UI refinement evidence covers history, menu parity, remembered preferences and compact light/dark layout checks. Small, Medium and Large thumbnail presets remain the only size controls. The connected iPhone shows its last completed backup date, count and size; photos scroll beneath the native translucent toolbar and compact Liquid Glass date labels. See sidebar and toolbar verification. Settings → Backup → Folder structure offers Year and Month (the default) or One Folder for photos and videos within each iPhone folder. The choice applies to new files; existing verified originals stay in place and remain eligible for incremental reuse. See organization verification for safety checks and the pending physical check of the new flat layout. Each iPhone remembers its own chosen backup folder. Reconnecting or relaunching restores that folder and checks access; an unavailable folder offers Choose Folder…. Switching folders and returning to the same original folder preserves its incremental history identity. See destination mapping verification. The scale performance evidence records generated 10k/50k/100k catalog measurements and improvements to identity preparation and history matching.
The intended workflow is a USB-connected iPhone → available originals → user-selected Mac or external-drive folder → verified incremental backup. No account, analytics or cloud processing. V1 will not modify or delete iPhone media, convert originals, or represent DCIM folders as Photos albums. A wired backup can only include originals exposed by the device; iCloud-only or otherwise unavailable media may be omitted.
Requires macOS 14 or later; development uses Xcode 27, Swift 6, XcodeGen and SwiftLint. The current 0.1.0 (13) Release binary contains Apple silicon and Intel architectures. It is locally ad-hoc signed; Developer ID, notarization and older-system runtime acceptance remain release gates. Local software validation: 393 core tests and 207 hosted app tests.
Recover after losing app data: open Backup History → Rebuild History…, choose
an existing backup folder, and use saved recovery records. New backups store these
records beside the originals; surviving app history can prepare older backups automatically.
For a folder containing only media, choose Verify older files with iPhone over USB.
This reads potential matches once, verifies full size/SHA-256, and preserves saved files
in place. The next backup copies only missing originals, including missing Live Photo
companions. Keep hidden .cloakroll-recovery records when copying a backup folder.
See folder recovery for evidence and limits.
Feature backlog: restore selected photos and videos from an existing backup folder to a new iPhone. This remains outside V1 until a supported public approach works without installing an extra iPhone app; no companion app is planned. Apple's manual Finder synchronization is an external option with different behavior, not an implemented CloakRoll restore feature. See restore research and requirements.
cd apps/macos
GIT_CONFIG_COUNT=0 xcodegen generate
GIT_CONFIG_COUNT=0 xcodebuild -project CloakRoll.xcodeproj -scheme CloakRoll -destination 'platform=macOS,arch=arm64' -configuration Debug -derivedDataPath build/Verify build
open build/Verify/Build/Products/Debug/CloakRoll.appSee development instructions, architecture, Apple API research, and artwork sources.