Skip to content

thetejasagrawal/CardGrab

Repository files navigation

cardgrab

cardgrab

The fastest way to get photos and video off your camera card on a Mac.

Browse before you import — thumbnails grouped by shoot date, multi-select with shift-range, one click to import


cardgrab is what Image Capture should have been in 2026. It pulls everything off your SD card — including the video files Image Capture quietly skips — at full reader speed, organizes them into folders you'll actually find later, and stays out of your way.

Settings: destination, folder templates, conflict policy, parallel transfers

Why this exists

macOS ships Image Capture, but on a Sony card it skips the PRIVATE/M4ROOT/CLIP/ video folder, ignores .XML and .THM sidecars, and doesn't handle XAVC variants well. Most pro photographers end up doing two manual passes — Image Capture for stills, Finder drag for video — and losing folder organization in the process.

cardgrab does one thing: it ingests everything on your card, fast, with sensible folders.

Highlights

  • Handles every file your camera writes. DCIM, PRIVATE/M4ROOT (XAVC HD/HS/S), MP_ROOT, AVCHD, sidecar XML/THM. Photos, RAW, MP4, MXF, MTS, audio — all of it.
  • Fast. Kernel-level copy via macOS fcopyfile, 4 concurrent workers by default. Saturates UHS-II readers.
  • Real thumbnails for everything. Photos, RAW, video poster frames — all rendered via macOS Quick Look so the previews actually match what you shot.
  • Browse before you import. Searchable grid grouped by shoot date, click to select/deselect, shift-click for range, ⌘A toggles select-all.
  • Dead-simple folder layout. One folder per shoot date by default. Custom templates ({camera}, {lens}, {date}, {ext}) if you want them.
  • Doesn't touch your card. The transfer engine refuses to write to the same volume as the source. Format the card yourself, in-camera, when you're done.
  • Direct camera mode. Plug a Sony/Canon/Fuji body in via USB and ingest over PTP (needs gphoto2brew install gphoto2).
  • Local import journal. Every file copy logged in SQLite with a full audit trail. Re-import or re-upload anytime.

Install

macOS

Grab the latest .dmg from the Releases page.

Releases are signed with an Apple Developer ID and notarized — drag-into-Applications, double-click, no Gatekeeper warnings. (Setup details for maintainers: docs/NOTARIZATION.md.)

Build from source

Requires:

git clone https://github.com/YOUR_USERNAME/cardgrab
cd cardgrab
npm install
npm run tauri dev      # development
npm run tauri build    # produces a .dmg in src-tauri/target/release/bundle/

Optional for direct-camera (PTP) ingest:

brew install gphoto2

Folder templates

The default template is {date} — one folder per shoot date, everything in it. Available variables:

Variable Example
{year} 2026
{month} 05
{day} 17
{date} 2026-05-17
{time} 15-42-08
{camera} ILCE-7M4
{lens} FE 24-70mm F2.8 GM II
{kind} Photos, Videos, Raw
{ext} arw
{orig_name} DSC04231.ARW

Edit the template per-import or save your own in Settings.

Stack

  • Tauri 2 — Rust core, native macOS window
  • Svelte 5 + Vite — frontend
  • SQLite (rusqlite) — settings + import journal
  • macOS qlmanage — thumbnails for any file format the OS understands
  • macOS fcopyfile (via std::fs::copy in a blocking task) — fast file copy
  • gphoto2 (optional) — direct camera ingest via USB-PTP

Roadmap

  • Windows build (the Rust core is portable; needs a different volume-watcher and PTP path)
  • More camera support (Canon CR3, Fuji RAF EXIF quirks)
  • Cloud destinations (point at a Google Drive / iCloud-synced folder; rclone integration later)
  • Watch-folder mode (auto-ingest when a known card mounts)

Contributing

Issues and PRs welcome. This project values:

  • Native-feel macOS UI (Settings.app fidelity, no Material Design)
  • Zero clicks for the happy path
  • Never destructive — the card is read-only as far as cardgrab is concerned

License

MIT — see LICENSE.

About

Fast, complete SD-card ingest for Mac, handles the video files Image Capture skips. Tauri + Rust + Svelte.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors