Every improvement, feature, and fix — documented as it ships.
Delete or Backspace on any row and confirm with y — any other key cancels. The status bar shows the keybinding hint and a red confirmation prompt so you won't delete anything by accident.m on any row to see its location points on a true-color Mapbox map rendered with half-block pixel art. Pins are color-coded by category, and pressing n/p cycles through markers with a label showing time and category. Press a to toggle between the selected entry's locations and all your locations (fetched live from the API). Rows with GPS data show a ● indicator in the table so you can spot them at a glance. Pan with arrow keys, zoom with +/-, and switch between six map styles with s.
rows import-gps, this means every photo you took during an entry automatically becomes a pin on the map — so a 3-hour bike ride doesn't collapse to a single dot, it becomes a trail of everywhere you stopped to take a picture.The rows import-gps command now uses real distance calculations (haversine formula) to deduplicate GPS coordinates. Photos taken within 50 meters of each other on the same entry collapse into a single point — so ten selfies at the same restaurant become one pin, not ten. You can safely re-run the import on the same photo directory: existing coordinates are checked by distance, and only genuinely new locations are added. This also means importing overlapping photo libraries (e.g. iCloud copies + local backups) won't create duplicate pins.
The --create-missing flag is now much smarter. Instead of creating one row per day, it clusters photos by time: if there's more than a 1-hour gap between consecutive photos, it starts a new entry. Each entry gets the proper start and end times from its photo cluster, all GPS points (deduplicated within 50m), and a place name automatically resolved via OpenStreetMap reverse geocoding — so instead of a blank row, you get something like "Calle Mayor, Salamanca" as the note. The entries are created under the 'Location' category.

You can now enrich your entries by adding GPS locations extracted from your photo collections! Since photos and videos contain GPS coordinates in their EXIF metadata, the new rows import-gps command reads them and adds the locations to your rows.
For example:
$ rows import-gps C:\Users\pablo\Pictures\2021\ --device "Apple iPhone 7" --device "Apple iPhone 13" --previewThis scans all photos and videos in the directory, filters by the specified devices (your phones, not your family's), and shows a preview of which entries would be enriched — without changing anything. The command displays a summary of all camera devices found, so you can decide which ones to include.
Remove --preview to actually apply the changes. Photos are strictly matched to rows by time window: a photo only enriches a row if it was taken during that row's time range. Existing locations are never overwritten.
Use --create-missing to also create new 'Location' entries for dates where you have GPS-tagged photos but no matching row. Without it, only existing rows are enriched.
Supports JPEG, HEIC, PNG, TIFF, MOV, and MP4 files.



