Photoscope is a native macOS photo editing and metadata workflow app built with SwiftUI, Core Image, ImageIO, Vision, and Core Location. It focuses on RAW/JPEG inspection, non-destructive adjustment state, metadata editing, scopes, culling, batch export, lens/camera profile helpers, and RAW recovery tooling.
This is an early open-source release. The app builds locally and is useful for experimentation, but some workflows are still evolving and should be treated as pre-1.0.
- macOS 15.5 or later
- Xcode with a recent macOS SDK available
- Optional:
exiftoolfor RAW preview and metadata fallbacks in unsandboxed development builds
Install the optional development exiftool dependency with Homebrew:
brew install exiftoolPhotoscope looks for exiftool at:
/opt/homebrew/bin/exiftool/usr/local/bin/exiftool/usr/bin/exiftool
Open Photoscope.xcodeproj in Xcode and build the Photoscope scheme, or run:
xcodebuild -scheme Photoscope -configuration Debug -destination 'generic/platform=macOS'The project is configured without a checked-in Apple Developer Team ID. If Xcode asks for signing details, set your own team in Signing & Capabilities or use local/ad-hoc signing for development.
Ad-hoc builds are intended for local development only. Public binary distribution should use your own Developer ID signing and notarization flow.
Photoscope works with local image files selected by the user. It reads image pixels and metadata, may cache thumbnails/previews in the user's cache directory, and may persist app metadata such as library indexes, export presets, and reverse-geocoding cache entries in Application Support.
Reverse geocoding uses Apple's platform geocoder when the user asks the app to resolve GPS coordinates into place names. Image files and metadata are otherwise processed locally by the app and system frameworks.
Most RAW handling uses macOS ImageIO/Core Image APIs. Some formats, especially Panasonic RW2 variants, may need exiftool to extract embedded previews or metadata that ImageIO does not expose.
exiftool is not bundled in this repository. If a future distribution bundles it, the distribution must include the appropriate exiftool license and attribution.
The app sandbox is enabled with user-selected read/write file access. In sandboxed builds, Photoscope does not execute Homebrew or system exiftool paths. It only uses exiftool if a distribution bundles an executable helper inside the app and includes the required license and attribution. Unsandboxed local development builds may still use the Homebrew/system paths above.
Saved projects include security-scoped bookmarks for imported source files when macOS grants access. Older .photoscope files without bookmarks may need photos re-imported if the sandbox cannot regain access to their original paths.
build/, Xcode user state,.DS_Store, and local tool state are ignored.- Internal notes for camera, lens, maker-note, and RAW processing areas live under
docs/internal/. They describe evolving internals and are not product commitments. - No sample photos are included.
Photoscope is released under the MIT License. See LICENSE.