An open-source project called geo-sleuth, published on GitHub on 11 October 2026, offers an AI agent skill that tries to work out where a photograph was taken and shows the reasoning behind its answer. According to the project's repository, the tool uses OpenStreetMap geometry, elevation skylines, satellite imagery and street view to estimate a camera position, the direction the camera faced and a confidence level. It is designed to run in several popular coding and AI agents, including Claude Code, Codex, Cursor, Gemini CLI, OpenCode and GitHub Copilot.
What the tool does
The core idea is simple. A user hands an agent a photo and asks where it was taken. The agent then runs the skill's scripts and returns three things: the camera position, the heading, and a satellite image that serves as visual evidence. The repository describes the answer as carrying an error radius, so a result is given as coordinates plus or minus a distance rather than as a single pin.
What sets the project apart from a simple image lookup is that it is designed to work when a photo contains no obvious clues. The repository says the search can proceed without signs, number plates or recognisable landmarks, relying instead on map data, terrain data and imagery. That distinguishes it from reverse image search, which depends on finding the same picture already online.
How it narrows the search
Geometry in place of guesswork
According to GitHub, the project treats physical features in a photo as measurable evidence. Regularly spaced pier supports can act as a distance ruler, shadows can indicate a bearing, and the outline of a ridge can be compared against elevation data. In the repository's account, a ridge line works like a fingerprint that can be matched to the terrain at candidate locations.
The project also sets strict rules about what counts as proof. Each conclusion must name the command that was run during the session and the file it produced. Population size or how famous a place is do not count as evidence, and observations or guesses can only lower a candidate's ranking, not confirm it.
Scripts rank, the model judges
The architecture is split into layers. The repository describes around twenty single-purpose scripts that search, score and sort possible locations. The language model is responsible only for choosing among the top few candidates. The developer's stated aim is to keep the heavy computation in code, where it can be repeated and checked, rather than leaving it to the model's judgement.
The project's documentation also says that v2 moves every rule that can be written as code into a script called board.py, so that rules are executed rather than simply read by the agent.
Results reported by the project
The repository includes three case studies, each involving a photo with no GPS data. The first shows a phone picture with its metadata removed, featuring a white oven at the edge of a harvested rice paddy, a long viaduct and a steep mountain. The repository states that the agent returned the camera position and direction within 2 metres of the confirmed location.
The second case involves a desert scene with a sand dune, dark mountains and a few pylons. According to the project, the first pass stalled because the photo offered few distinctive features and a small camera tilt distorted the skyline. The developer added a general fix to the terrain script that solves for camera roll, capped at one degree. A later blind re-run, in which a new agent was given the photo and the hint that it was taken in China, ended on the same dune crest, 87 metres from the confirmed position, after 32 minutes.
The third case is a flowering cherry tree over a Vancouver sidewalk. The repository says the plates and street furniture pointed to the city, but narrowing the location to a single street was the hardest part. A blind run with no hint finished in 53 minutes and landed 3 metres from the confirmed camera position, identifying the street as West 60th Avenue.
The repository is careful to note that these runs are regression checks rather than a measure of accuracy on unseen photos. Both of the earlier test photos had already been solved, and lessons from them were built into the skill. The developer's roadmap lists a public blind-test set of unseen photos with an end-to-end accuracy figure as a future goal.
Installation and requirements
geo-sleuth follows the standard Agent Skill format, meaning it is a folder containing a SKILL.md file, scripts, reference documents and data tables. The repository says that any agent able to read SKILL.md and run shell commands can use it. Users can install it with the skills command-line tool or copy the folder manually.
The software requires Python 3.10 or later, the uv package manager, curl and an agent capable of running shell commands. Reverse image search needs Google Chrome or Playwright's Chromium browser. The repository also includes a doctor script that checks the environment and can probe network services without uploading photos. Some optional steps install machine-learning packages and download model weights on first use, which takes extra time and disk space.
Limits and responsible use
- Results depend on available map, elevation and imagery coverage, and the repository notes that passing a diagnostic check does not guarantee image uploads, model downloads or freedom from CAPTCHAs.
- The project's source material draws on OpenStreetMap data, which is licensed under ODbL, and the repository asks users to credit OpenStreetMap contributors when publishing query results.
- The licence is MIT, although some lookup tables derived from Wikipedia are covered by CC BY-SA 4.0.
- The repository states that the tool should be used only on the user's own photos or photos they have permission to analyse, and never to find people who have not agreed to be found.
The last point matters because location tools of this kind raise privacy questions. A system that can pinpoint where a photograph was taken can expose where people live, work or travel, even when the picture itself seems harmless.
geo-sleuth is an early-stage project with a clear technical approach and transparent reporting of its own test results. Its appeal lies in showing its evidence, which makes its conclusions easier to check than a bare answer. Whether it performs well on photos nobody has tested is the question its developer says still needs to be answered, and that will likely decide how useful it becomes for journalists, researchers and hobbyist geolocators.
Related: Reduce Claude Code Token Costs With optimAIzr CLI · Anthropic's OSS Scanner Automates Security Checks for Open Source
Comments (0)