Repository navigation
Charmera v1.3.0
The agentic release. Charmera now ships an MCP server alongside the menu-bar app, so Claude can drive the camera-import pipeline directly.
New
charmera-mcpserver (/Applications/Charmera.app/Contents/MacOS/charmera-mcp) — 12 tools covering camera detection, file copy, photo + video orientation review, gallery push, and Photos.app delegation. Register with Claude Code viaclaude mcp add charmera /Applications/Charmera.app/Contents/MacOS/charmera-mcp.- Curated import flow.
prepare_camera_importcopies from the camera without auto-orienting or uploading. The model can thenread_photo/read_video_frameeach file, callrotate_photo/rotate_videowhere needed, and finish withpush_to_gallery+import_to_photos. - Video orientation auto-detection.
convertAVItoMP4now samples the first frame, runs the same Vision-based orientation detector used for stills, and bakes the rotation into the ffmpeg re-encode via-vf transpose. The Charmera has no accelerometer, so videos previously shipped sideways forever — they don't anymore. - Photos.app delegation from MCP. A new
--import-photos <paths…>CLI mode on the main app lets the MCP helper push to Photos.app without claiming its own TCC scope.
Fixes
- Review rotate-collision corruption. The Review window's
resolveRepoPathkeyed its data.json lookup off the local file's current size, but Step 1 ofapplyChangesalready rotated the file in place — so the post-rotation size missed the mapping and rotated content got written to the wrong remote file (e.g. today'sPICT0040_2026-05-02.jpgrotation overwriting an unrelated April 4PICT0040.jpg). Fixed by snapshottingoriginalSizeatReviewPhoto.init. - Keychain partition list.
KeychainHelper.savenow whitelists any tool signed by the team viasecurity set-key-partition-list, so the bundledcharmera-mcpreads tokens without ACL prompts.
Refactor
- Code split into a
CharmeraCoreSwiftPM library shared byCharmera.appandcharmera-mcp. No behavior change — sets up the foundation for the helper.
Upgrade notes
brew upgrade --cask charmera(cask bumped to 1.3.0).- Existing keychain items were saved before the partition-list relax. If
charmera-mcpprompts you for keychain access on first call, click Always Allow once or run:Re-authing in the menu-bar app would also do it.security set-key-partition-list -S apple-tool:,apple:,teamid:P5EK689L33 -s com.charmera.app -a github_token security set-key-partition-list -S apple-tool:,apple:,teamid:P5EK689L33 -s com.charmera.app -a github_username