What TAG Lens writes to Photos
TAG Lens edits metadata, not pictures. This page is the complete list of what it writes, where that ends up, and who can see it.
![writes-ledger]
The ledger
| What | Where it goes | Visible to |
|---|---|---|
| Keywords (tags) — added; removed only by a removal you make yourself (the four ways are below) | Your Photos library | Photos and any app that reads Photos keywords |
| Titles | Your Photos library | Photos and any app that reads Photos metadata |
| Captions | Your Photos library | Photos and any app that reads Photos metadata |
| Favorites | Your Photos library | Photos, everywhere your library syncs |
| Capture-date changes | Your Photos library | Photos and any app that reads Photos metadata |
| Location (set or cleared) | Your Photos library | Photos and any app that reads Photos metadata |
| Album membership — photos you add to or remove from an album | Your Photos library | Photos, everywhere your library syncs |
| Albums — created, renamed, or deleted (deleting an album asks first and never touches its photos) | Your Photos library | Photos, everywhere your library syncs |
| Deletions — the two delete commands, plus removing the optional control photos you installed (control-only), each behind a macOS confirmation | Photos' Recently Deleted, recoverable for around 30 days | Photos, everywhere your library syncs |
| Control photos (optional) — famous public-domain photographs you choose to install, the one thing TAG Lens ever adds — and can take back out in-app (Settings ▸ Control photos ▸ Remove Control Photos…), sending only the ones it installed to Recently Deleted, never your own | Your Photos library, in the “TAG Lens Controls” album, marked with “control:” keywords and their true capture years | Photos, everywhere your library syncs |
| Star ratings (0–5) | A TAG Lens file on this Mac; embedded as IPTC StarRating in any dragged or shared JPEG; on macOS 27, also into Photos' own rating field if you run Library ▸ Promote Stars to Photos | TAG Lens; any IPTC-reading app (Lightroom, Bridge, Photos); Photos itself after a promote |
| Reject marks | A TAG Lens file on this Mac | Only TAG Lens |
| Copyright & license — your creator name, copyright, credit, contact, and chosen license (Settings ▸ Copyright & license) | Embedded as IPTC (Byline, Copyright Notice, Credit, Contact) in any photo you export or share — never written to your originals | Any IPTC-reading app (Lightroom, Bridge, Flickr, Photos) |
| AI rating scores | A TAG Lens file on this Mac | Only TAG Lens |
| Stories & their notes | A TAG Lens file on this Mac | Only TAG Lens |
| Facts you record about people and objects — the birth/death years and home place for a person (People ▸ Details…) or a tagged object like a pet (its inspector row ▸ Set details…) | A TAG Lens file on this Mac; never written onto any photo — it only powers date and place suggestions you review | Only TAG Lens |
| Tag presets (named tag bundles for the stamp palette) | A TAG Lens file on this Mac | Only TAG Lens |
| Film rolls — roll names and the camera/film-stock facts you assert, plus which photos you assigned | A TAG Lens file on this Mac; never written into your originals. One opt-in exception: Settings ▸ Tags & Privacy ▸ Sharing & export can write the asserted camera into the copies you drag, share, or export | Only TAG Lens — plus anyone you share a copy with, if you turn that setting on |
| Saved filters, session, scan caches | TAG Lens files on this Mac | Only TAG Lens |
| Flickr publishes (optional) — photos you marked For Flickr and published with Publish to Flickr…, as JPEGs carrying their title, caption, tags, and embedded IPTC | Your own Flickr account, over your own API key — only when you run the command and confirm the sheet, which requires you to choose who can see them and the license every batch; your named people's tags never ride along, and location goes only if you check its box | Whoever your chosen Flickr visibility admits |
| Flickr check-for-updates (optional) — Check Flickr for Updates… asks Flickr about the photos TAG Lens published, sending only their Flickr ids over your sign-in; tags you added on Flickr, and titles or captions where yours are empty, come back as suggestions you review — additive only, one ⌘Z, and a named person's tag can no more enter this way than leave. Flickr's view count for each comes back and is shown in the inspector — kept in a TAG Lens file on this Mac, never written to any photo, and deleted when you disconnect the account | A read from your own Flickr account — nothing reaches your photos until you approve the review sheet; the view counts land only in TAG Lens's own file | Only you |
| Flickr archive matching (optional) — Match Flickr Archive… finds photos you uploaded to Flickr before TAG Lens: it reads your own photostream list page by page (each request sends only a page number over your sign-in; your photo ids, titles, and taken dates come back), matches them against filenames and capture times on your Mac, and links only the matches you approve on a review list — so Check Flickr for Updates… can include them. The link is TAG Lens bookkeeping on this Mac, undone as one ⌘Z; nothing is written to your photos | A read from your own Flickr account — nothing about your library is sent, and matching happens on your Mac | Only you |
TAG Lens removes a keyword only when you tell it to, and ⌘Z puts every removal back. There are four ways you can: remove a tag chip from a photo; Remove a tag from a multi-photo selection (it confirms the honest count first, and the whole batch undoes as one ⌘Z); the Settings clean-up that strips a banned tag from the photos still carrying it (also one grouped ⌘Z); and Consolidate Tags, which replaces variant spellings with the one you keep after you review the plan. TAG Lens can also suggest a removal — but only of a keyword the AI added that doesn't match the photo's visual neighbours (e.g. a stray "cat" on a photo whose look-alikes are all coins). That is suggestion-only: you accept it one card at a time, and it never suggests removing a keyword you typed.
TAG Lens can also add inferred locations in bulk — but never on its own. When several photos have no GPS, the location suggestion offers Review all N location fixes: a list of each photo and the coordinate TAG Lens inferred from a geotagged photo taken nearby in time. Because an inferred location is a guess, nothing is pre-checked — you tick only the ones you trust, and the whole set writes (and undoes with a single ⌘Z) together.
TAG Lens can also repair a cluster of dates at once. When a scan or import collapses many photos onto a single timestamp, the date suggestion offers Review all N together — a preview of every photo's current date beside the date TAG Lens proposes (taken from a near-identical shot you already dated). Nothing is written until you press Apply, you can switch any photo off in the list, and the whole repair undoes with a single ⌘Z. When the frames you've dated by hand on a film roll agree on a year, TAG Lens can offer that year to the roll's scan-stamped frames too — always a suggestion you review, never an automatic write.
When instead several photos have a caption or title that names a different year than their stored date, the date suggestion offers Review all N caption dates — each photo's current year beside the year you wrote. Because that year comes from your own words, the photos start pre-checked; switch any off, and Apply (with one ⌘Z to undo) writes them together.
Through macOS 26, Photos had no write API for star ratings, so TAG Lens keeps them in its own local database, keyed to each photo's library identifier — that local file is their home. macOS 27 added a ratings API, so there you can also send your stars into Photos' own rating field with Library ▸ Promote Stars to Photos…, after which they sync like any Photos edit; the command is hidden on earlier macOS, where the API doesn't exist. Stars (1–5) also embed as IPTC StarRating in any JPEG you drag or share — Lightroom, Bridge, and Photos can read them. Reject marks stay purely app-local. Settings ▸ Ratings Backup exports ratings, rejects, and your film rolls (the roll names, asserted camera/stock, and photo assignments) as one JSON file and merges them back in — do this before migrating or rebuilding your Photos library, because a rebuild can change those identifiers.
Export Photo Info as CSV… (File menu, ⌘⇧E) writes a spreadsheet of the current selection — or the whole filtered view — to a file you choose: keywords, title, caption, date, rating, and the reject and favorite marks. The file includes each photo's precise latitude and longitude unless you say otherwise: the save panel shows an Include location (GPS coordinates) checkbox on every export, pre-set from the Strip location when sharing or exporting setting (Settings ▸ Tags & Privacy ▸ Sharing & export), so exact coordinates leave only on your explicit choice.
Export to Folder… (File menu) copies the selected photos into a folder you choose, alongside a metadata.csv of their keywords, title, caption, and rating. Pick the Format on the panel: Keep original files copies your originals — RAW, HEIC, whatever they are — byte-for-byte and never re-encoded (the default); Convert to JPEG saves viewable JPEG copies (re-encoded, so not your originals — a HEIC is transcoded, a photo already JPEG is copied as-is) while any RAW negatives are copied untouched into a RAW Originals/ subfolder beside them. Either way it reads your originals and never changes them, and nothing leaves your Mac beyond the folder you pick. Originals stored in iCloud download first, and a photo whose original can't be fetched is reported rather than silently replaced with a lower-quality copy.
Three promises
- TAG Lens never modifies pixels. It writes metadata fields only. Your originals are never edited, recompressed, or replaced — a Convert to JPEG export makes new JPEG copies in the folder you pick and leaves your originals in Photos untouched. TAG Lens never sends your photos anywhere on its own and uploads nothing by default — a copy leaves your Mac only when you drag, share, or export one (and that shared copy carries the keywords, title, caption, and any star rating — and, unless you strip it in Settings ▸ Tags & Privacy ▸ Sharing & export, the location — you've put on it). The one direct upload is Publish to Flickr… (File menu, only after you connect your own Flickr account in Settings ▸ Tags & Privacy ▸ Sharing): the photos you marked For Flickr upload to your account only when you run the command and confirm its sheet — and that sheet makes you choose who can see them and which license they carry, every batch, so nothing is ever decided by your Flickr account's defaults. Your named people's tags stay on your Mac — the same fence that keeps them out of every online lookup keeps them out of every upload. Six optional, off-by-default lookups exist — related-keyword enrichment sends only the tag term you typed, the Ask an AI tier sends only that term to the AI provider you choose (local Ollama, or a hosted provider you key, such as xAI/OpenAI/Anthropic/Mistral/Groq/DeepSeek), place-name resolution sends a photo's GPS coordinates to Apple's geocoder, place-from-photo-text reads a place name off a sign in a No-Location photo and sends only that text (never the photo) to Apple's location search to suggest a coordinate, the landmark guess asks the AI model running on your own Mac to name the place a No-Location photo shows and sends only that guessed name (never the photo) to Apple's location search to suggest a coordinate — labeled as a guess, written only when you press Use — and Recognize famous photographs fetches one public catalog file listing famous works and their documented tags (no term, no pixels — nothing about you is in the request) — each behind its own consent in Settings ▸ Online Enrichment. Installing the optional control photos (onboarding, or Settings ▸ Control photos) downloads that catalog's images from the public archives it lists — a download to your Mac; nothing about you or your library is sent. When you search for a place by name — in Set Location, or when recording where a person or object lived — the words you type go to Apple's location search to find matching places, the same as typing in Maps: only that text is sent, never a photo, a name, or a coordinate already on your photo. (If you use iCloud Photos, Photos itself syncs metadata edits the same way it syncs any edit you make in Photos.)
- Nothing is deleted without a system confirmation. TAG Lens never deletes on its own. There are two ways you can delete your own photos — the cull, Delete Rejected Photos (
⌘⌫), and the inspector's Delete… button on the current selection — and both take the same safe path: one macOS confirmation dialog, then the photos go to Photos' Recently Deleted album, where Photos keeps them recoverable for around 30 days. One more command, Settings ▸ Control photos ▸ Remove Control Photos…, removes only the optional control photos you chose to install — never your own — down that same confirmed, recoverable path. - Every write is undoable. Each change — including a story's memoir notes — records its reverse on the ⌘Z stack, up to the 50 most recent actions in the current session. A multi-photo batch undoes as one action. The stack is per-session: quitting the app clears it.
How the writes happen
Keywords, titles, and captions are written through Photos automation (the macOS Automation permission); favorites, capture dates, locations, albums, deletions, and the optional control-photo imports go through Apple's PhotoKit. Both paths write into the same Photos library you see in the Photos app — there is no separate TAG Lens copy of your library.
Related
This page is generated from the same in-app help topic TAG Lens ships, and the engineering covenant behind it lives in the repo as ADR-0010 — the same-change rule means neither can drift from the code without failing the build.