Open source

geo-sleuth is a cross-agent skill that locates a phone photo to two metres from OSM data and ridge lines

September 20, 2026 at 8:40 AM PT

GitHub social card for the Oldcircle/geo-sleuth repository

Image: GitHub

Why it mattersPhoto geolocation without text or landmarks used to require specialists, so a portable skill that runs in every coding agent makes the technique usable inside any developer workflow that already has one installed.

A developer publishing under the handle Oldcircle pushed geo-sleuth to GitHub on 18 September and it stands at 189 stars and 19 forks two days later, according to the GitHub REST API. The MIT-licensed Python project is packaged as an Agent Skill: one folder holding SKILL.md, scripts, references and data, so the same install runs in Claude Code, Codex, Cursor, Gemini CLI, OpenCode and GitHub Copilot.

What it does with one photo

You hand a photo to a coding agent that has the skill installed and say "find where this photo was taken." The agent reads SKILL.md, runs the twenty single-purpose Python scripts the repository ships and returns coordinates with an error radius, the direction the camera was facing, and a satellite evidence image.

The README's case study is a phone photo with the EXIF stripped: a white oven at the edge of a rice paddy, a viaduct in the distance, a mountain on the right, no text in the frame. The pipeline pulled every railway bridge in the region from OpenStreetMap (27,335 segments), sampled every 400 metres and computed the 360 degree horizon from elevation data at each sample (171 sites passed), tried candidate camera positions and rendered ridge lines from each (14,372 positions, 22 top matches), then used the 17 piers as a distance ruler to fix bearings. The last step narrowed the answer to within two metres. The README puts the whole run at 72 minutes end to end, with half of that waiting on computation.

Scripts rank, the model judges

The design deliberately keeps the model out of the ranking. Scripts handle intake, EXIF, OCR, OpenStreetMap corridor scans, sun-angle bearing, elevation skyline matching, CLIP-ranked satellite tiles, and DINOv2 plus SIFT for street view matching. The agent proposes clues and picks among the ranked top few. Every conclusion has to point at the command that ran in the session and the file it produced; population and fame do not count as evidence, and exclusions need read or computed data behind them.

Why the packaging matters

The skill installs into ~/.agents/skills/, a shared folder that Codex, Cursor, Gemini CLI, OpenCode and GitHub Copilot all read, plus a symlink into ~/.claude/skills/ for Claude Code. One folder covers six agents. Skills are new enough that most teams do not yet have one installed, so a well-documented example teaches the pattern: a SKILL.md at the root, a scripts directory doing the mechanical work, and a references directory the model can retrieve.

An open-source photo-geolocation pipeline with elevation-matched skylines is unusual by itself, and the case study is specific enough to reproduce. Teams that already run a coding agent get a working example of a portable skill that installs the same way in six of them without a second copy of the code. The technique also arrives when photo location matters to anyone reasoning about images an agent might read from a browser: the skill shows how much a phone photo still gives away, in practice, when a script has OpenStreetMap and a digital elevation model behind it.

Source

Primary: Oldcircle/geo-sleuth on GitHub. Traction figures from the GitHub REST API at 15:07 UTC on 20 September.

Source: GitHub

This item was written by an AI system from the linked source. Reveneau is responsible for what it publishes.

More from AI News

kotlin-footguns publishes 224 coding-agent skills taken from a Kotlin app in production

kotlin-footguns is a public repository of 224 agent skills for Kotlin, Compose Multiplatform and the desktop JVM, extracted from a production music app rather than from official documentation.

Source: GitHubDev tools

Engrim releases a local SQLite memory store that keeps working when you switch between Claude Code, Cursor, Antigravity and Codex

Engrim is a local-first SQLite memory engine for coding agents that keeps architectural decisions and project state across sessions and across models, from Claude Code to Cursor to Google Antigravity to Codex CLI.

Source: Hacker NewsDev tools

video-talkcraft is an Agent Skill that lets Claude Code and Codex produce explainer videos, 766 stars in 15 days

video-talkcraft takes a voiceover script and a recorded voice track, aligns them at the character level, and renders a Remotion explainer video with 108 pre-tuned motion cards, kinetic captions, and a camera system that never keeps the frame still.

Source: GitHubDev tools