Getting photos in

Two doors into the library: importing from Apple Photos, and ingesting files from anywhere else. Both land in _Inbox/, verified, with Live Photos intact.

Import from Photos ⌘⇧I

The import view lists every asset in your Photos library that hasn't been imported before, newest first, broken into month sections so a multi-year backlog reads as chapters instead of a wall. While you scroll, a floating chip shows the month under the viewport — drag the scrollbar through three years and you always know where you are.

Badges mark Live Photos, videos, favorites, and photos edited in Photos. Select what you want — click-drag marquee, range-select, or select-all — and import.

The Photos import grid with month dividers
The import backlog, in month chapters. Already-imported assets never reappear.

What lands on disk

Idempotent by construction

A photo is recorded as imported — in .qix/state.json, a plain-text ledger — only after its files are fully written and verified (the file exists, has bytes, and parses as an image). Quit mid-import, lose the network, kick the power cord: re-running resumes exactly where it stopped, and nothing half-written is ever counted.

And the other direction is absolute: Qix never writes to the Photos library. No albums, no flags, no deletions — the import ledger is how Qix remembers what it took, so Photos doesn't have to change.

Tip: because the ledger keys on Photos' own asset IDs, you can rename and refile imported photos freely — they'll never re-import.

Ingest from the filesystem

File → Ingest Files… / Ingest Folder… copies media from anywhere — a camera card, a Downloads folder, a friend's USB stick — into _Inbox/. When the source is on the same volume you're offered move instead of copy.

The ingest prompt offering copy or move for a batch
Per-batch choice: copy, or move when the source is on the same volume.