archive command, and connecting the resulting archive to an AI assistant over MCP. By the end, you will have a [year]/[month]/[day]/ folder of hash-stamped photos, a SQLite index, one album per country/city — and an MCP server for your AI assistant to query & open photos conversationally.
Install photo-cli
Run your first archive command

Executing photo-cli archive in the macOS terminal
What happens behind the scenes
Check the output
[year]/[month]/[day]/yyyy.MM.dd_HH.mm.ss-{sha1}.ext, byte-for-byte duplicates skipped automatically, photos with no taken date in a no-photo-taken-date/ subfolder, and a photo-cli.sqlite3 database at the root indexing every photo, address, and album.
The resulting archive in Finder
List or open archived photos
xargs xdg-open on Linux).
photo-cli list opening the October 2008 photos in macOS Preview
Query your photo archive by AI assistant over MCP
photo-cli mcp starts a Model Context Protocol stdio server that exposes the archive’s SQLite database to AI assistants. Tools like Claude Code, Claude Desktop, and VS Code can then search by date, location, album, or proximity to a GPS coordinate — and even open matching photos in your default viewer. See the mcp command reference for the full tool list.Once connected, ask the assistant things like ‘What cities and when did I went to Italy?’, ‘show me everything taken within 5 km of 43.78, 11.23’, or ‘open all photos in the Italia-Firenze album’.
MCP integration with Claude Desktop showing a query for photos
Open the matching photos from the assistant
open_photos_* tools are not active yet; use the list_photos_* tools and pipe the returned paths to your viewer of choice.
Photos opened in macOS Preview after an MCP open_photos_by_album_name call
What’s next
Features Explained
Installation
Reverse Geocoding
Archive command reference
archive command accepts.