🔭

Trail Naturalist

The after-hike tool that turns your trail photos into an illustrated trail journal.
Enter the password to continue.

That's not quite right. Try again.

LovingEndurance · Tool

Trail Naturalist

Point it at a folder of hike photos and it hands you back an illustrated trail journal for that hike: each plant, rock, and bug named, each one with its ecosystem or geology story. No API key, Claude reads your photos directly.

What it is

A small tool that runs on your own computer, not a website. It's the after-hike half of the field-study ritual: you come home with a folder of trail photos, and it turns that "we'll look it up at home" step into a finished, illustrated trail journal.

There's no API key to get and no plant app to sign up for. Claude, right here in your Claude Code session, identifies everything straight from your photos, the plants, the rocks for Bob, the insects, the sweep of a ridgeline, and writes the stories. The tool's only job is to fetch and tidy up the hike's photos so Claude can read them.

How it works

Three light steps take you from your phone to a finished journal. There's no key to get and no plant app to sign up for, because Claude does the identifying straight from your photos. The tool just fetches and tidies up the hike's photos so Claude can read them.

1

Your photos reach your PC through iCloud

Set up iCloud for Windows once and your iPhone photos sync to your computer automatically. It's a one-time setup, and it's what puts each hike's photos somewhere Claude can read them. Full setup is a few clicks below.

2

Run prepare_hike.py- it grabs and tidies the hike

Point it at your photos, name the hike, and it pulls in that hike's photos, converts any iPhone HEIC files to JPG (so Claude can actually open them), shrinks the big ones, and drops them into a tidy per-hike folder. One command, no key, no network.

3

Hand the folder to Claude, the stories get written

Tell Charlie "the hike photos are in this folder," and Claude reads each one, identifies the plants, rocks, and bugs, and writes the finished journal: the ecosystem each plant belongs to, the geology reading behind Bob's rocks, the natural-history notes. No API key anywhere in the flow.

What you need to start

No API key. The only setup is a one-time bridge to get your iPhone photos onto your PC, and then it's a single command per hike.

Set up the iCloud bridge (once)

Your photos live on your phone, and Claude reads them on your computer, so you need a bridge between the two. iCloud for Windows is the easy one:

  • Install iCloud for Windows from the Microsoft Store.
  • Open it and sign in with your Apple ID (the same one your iPhone uses), then turn on Photos.
  • Important: in the Photos options, uncheck "Keep high efficiency original if available" so your photos download as JPEG (Windows-friendly). The tool converts HEIC to JPG for you anyway, so you're covered either way, this just saves a step.

Once it's syncing, your photos appear under "iCloud Photos" in File Explorer, usually at C:\Users\annet\Pictures\iCloud Photos.

No-install fallback Don't want to install anything? Go to photos.icloud.com, select your hike's photos, click and hold the download icon, and choose "Most Compatible." That downloads them as JPEG into a folder you pick. Same result, no install.

Run it (once per hike)

Install the dependencies one time with pip install -r requirements.txt, then point the tool at your photos and name the hike:

Grabs the 20 newest photos (your latest hike) out of the whole iCloud Photos folder, converts HEIC to JPG, downscales the big ones, and drops them into trail-naturalist/hikes/chautauqua-jul-4/.

# One command, no key:
python prepare_hike.py --photos "C:\Users\annet\Pictures\iCloud Photos\Photos" --last 20 --name "Chautauqua Jul 4"

Then just tell Charlie "the hike photos are in trail-naturalist/hikes/chautauqua-jul-4," and Claude reads them and writes the finished field-journal.md. Use --last N for the N newest photos, or --since YYYY-MM-DD for everything shot on or after a date.

What gets identified, and how

Everything is identified by Claude's read of your photos, no separate ID engine, no key. For a personal trail journal, that's genuinely great: Claude's good with plants, good with the geology, and good at the natural-history notes that make a journal fun to reread.

Claude's read

Plants & trees

Claude names the plant or tree as best it can, then tells its ecosystem story: what it's doing on this slope, in this season, who depends on it, the detail you'd have walked right past.

Claude's read

Rocks, geology & insects

The rocks, formations, bugs, and scenery all get read too. Claude's genuinely good at geology (Bob's favorite) and natural-history notes, so this is real storytelling, not just a label.

Leaning in for Bob

The geology reading is deliberate. Bob's lens is the rock, deep time, why this mountain looks the way it does, and Claude does a real geology read of each rock photo so the journal has his side of the trail in it, not just yours.

Honest about scope: Claude's read is a smart look at a photo, not a lab ID, and for this ritual that's exactly the right tool. If you ever want extra botanical precision, a dedicated engine like Plant.id by Kindwise is an optional future upgrade you could bolt on. You don't need it for the journal, but it's there if you ever want it.

Where it lives

The code is a small Python project on GitHub, in the trail-naturalist/ folder of the LovingEndurance repo. It runs on your Windows computer, not on a server. The tool makes no network calls at all, it just converts and organizes your photos locally, and Claude reads them right here in your session.

The finished trail journals it produces will be published here on the hub, alongside the field-study ritual and the rest of the LovingEndurance deliverables, so each hike's journal has a permanent home you can revisit from anywhere.