📈 GH Trending Explorer 🎲 Surprise me

← all repos

Oldcircle / geo-sleuth

git clone https://github.com/Oldcircle/geo-sleuth.git

An agent skill that finds where a photo was taken — OpenStreetMap geometry, elevation skylines, satellite imagery and street view — and shows its work. Works with Claude Code, Codex, Cursor, Gemini CLI, OpenCode and GitHub Copilot.

+120
stars, 24h · #319
+~602
stars, 7 days · #363
+~2.6k
stars, 30 days · #323
3.9k
★ total · +18% this week
510
forks · 13 open issues

Star history (as recorded here)

2026-10-20 · 3,628 ★ 2026-10-23 · 3,886 ★
LanguagePython
LicenseMIT
Created2026-09-18 (1mo ago)
Last push1d ago
Watchers9
OwnerUser

GitHub topics

Links

README excerpt
# 🧭 geo-sleuth
**An agent skill that finds where a photo was taken — and shows its work.**
 Works with 
 …and any other agent that reads SKILL.md and runs shell commands. 
*No text. No plates. No landmarks. One bridge, one mountain. Located to within 2 m.*
---
## Quick start
 [code] 
Pick your agents when prompted. Then hand your agent a photo and say:
> find where this photo was taken
On first use, ask the agent to run `doctor.py` from the installed skill’s `scripts/` folder and address any failed checks (see Requirements and setup). That is the whole interface. The agent reads `SKILL.md`, runs the scripts, and comes back with the camera position, the direction it was facing and a satellite evidence image. Prefer to copy the folder yourself? See Installation.
## Why geo-sleuth
- **One photo, one sentence.** Give your agent a photo and say *find where this photo was taken*. You get back the camera position, the direction it was facing, and a satellite evidence image.
- **It works when there is nothing to read.** No sign, no plate, no landmark: OpenStreetMap geometry, elevation data, satellite tiles and street view carry the search on their own.
- **Geometry instead of guesswork.** Pier spacing becomes a distance ruler, shadows become a bearing, a ridge line becomes a fingerprint that elevation data can be matched against.
- **Every claim points at a file.** A conclusion has to name the command that ran in the session and the file it produced. Population and fame are not evidence.
- **Scripts rank, the model judges.** Twenty single-purpose scripts search, score and sort; the model only picks among the top few.
- **One skill, every agent.** A standard Agent Skill — `SKILL.md` plus plain Python scripts — so the same folder runs in Claude Code, Codex, Cursor, Gemini CLI, OpenCode and GitHub Copilot.
- **Answers carry an error radius.** Coordinates ± radius, the camera heading, an evidence image and a graded confidence.
## Cases
None of these photos had GPS data. Each case lists what the skill read from the photo, how it narrowed the search, and how far the result landed from the confirmed camera position.
Each case is a record of one run by one model. The skill tells the agent how to work; what to query, how to filter and how many top results to check are the model's own decisions, so a different model or different decisions may not reach the same result. Under each case, *Reproduction conditions and checkpoints* lists the input, the hint, the key parameters and what each stage should still cover, so you can find the step where your own run diverged.
 1 · Rice paddy and viaduct Railway bridges × skyline × pier count. 
 2 · Desert skyline Power lines × skyline × a phone tilted by 1°. 
 3 · Cherry street Street-tree open data × shadows × street view. 
 ±2 m Qingyuan, Guangdong 
 within 100 m Da Qaidam, Qinghai 
 3 m Vancouver, Canada 
### 1. A rice paddy and a viaduct
A phone photo with the EXIF stripped: a white oven at the edge of a harvested rice pa