cognis-digital

locateanything

Community cognis-digital
Updated

Infer where a photo was taken using a local uncensored vision + reasoning model (OSINT/geoint, 100% local)

locateanything

Drop in a photo → get ranked location guesses. 100% local, powered by an uncensored vision + reasoning model.

License: COCL 1.0 Local MCP Suite

#osint #geoint #geolocation #llm #vision #self-hosted

A local GeoGuessr-for-real-life: it reads EXIF GPS and reasons over visual clues (signage, plates,architecture, flora, sun position) using a local uncensored vision-language model + a reasoning model —no cloud, no API keys, nothing uploaded.

pip install "cognis-locateanything[img]"
fleet up vision reasoning      # via https://github.com/cognis-digital/uncensored-fleet
locate photo.jpg               # → ranked candidates + rationale
locate photo.jpg --format json
locate photo.jpg --exif-only --format geojson   # offline EXIF fix, straight onto a map

Output formats

--format use
table (default) human-readable ranked candidates
json machine-readable, for pipelines / evidence logs
geojson RFC 7946 FeatureCollection — open in QGIS, Leaflet, Mapbox, geojson.io

--exif-only is a deterministic, offline, model-free run that uses only theembedded EXIF GPS fix — ideal for CI, batch triage, or air-gapped review.

🔎 Example output

Real, reproducible output from the tool — runs offline:

$ locateanything-emit --version
locateanything 0.1.0
$ locateanything-emit --help
usage: locate [-h] [--version] [--format {table,json,geojson}] [--exif-only]
              image

Infer where a photo was taken (local VL + reasoning model).

positional arguments:
  image                 path to an image

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --format {table,json,geojson}
  --exif-only           offline, deterministic: use only embedded EXIF GPS,
                        skip the VL/reasoning models

Blocks above are real locateanything output — reproduce them from a clone.

Sample result format (illustrative values — run on your own data for real findings):

{
"findings": [
    {
        "id": "1234567890",
        "title": "Suspicious Activity Detected",
        "description": "An unknown actor has been observed attempting to access a sensitive system.",
        "created_at": "2023-02-15T14:30:00Z",
        "updated_at": "2023-02-15T14:30:00Z",
        "labels": ["suspicious", "malware"],
        "indicators": [
            {
                "type": "ip",
                "value": "192.0.2.1"
            },
            {
                "type": "domain",
                "value": "example.com"
            }
        ]
    }
]
}

Usage — step by step

  1. Install the CLI (console-script: locate):
    pipx install "git+https://github.com/cognis-digital/locateanything.git"
    locate --version
    
  2. Infer where a photo was taken (runs entirely on a local vision + reasoning model):
    locate ./photo.jpg
    
  3. Get machine-readable output for pipelines or evidence logs:
    locate ./photo.jpg --format json > location.json
    
  4. Read the result — parse the JSON for the inferred location and rationale:
    jq '.' location.json
    
  5. In CI/batch, loop over a folder of images and collect findings:
    for f in images/*.jpg; do locate "$f" --format json; done > all_locations.jsonl
    

Demos

Worked, runnable scenarios live in demos/ — each has a SCENARIO.md and,where relevant, a sample image carrying a real public landmark coordinate in EXIF so youcan run it end-to-end offline with --exif-only. (Re)generate the sample images withpython scripts/make_demo_images.py.

# Scenario
01 Basic run — full VL + reasoning
02 EXIF GPS fix, offline (no models needed)
03 Batch a folder into JSONL
04 GeoJSON export → drop straight onto a map
05 Southern + Western hemisphere (sign handling)
06 Disaster-response / situational awareness
07 Maritime / port geolocation (suite interop)
08 Evidence chain + forward to STIX/MISP/Slack
09 No EXIF → visual-clue inference

Architecture

flowchart LR
  IMG[📷 image] --> EXIF[EXIF GPS parse]
  IMG --> VL[Uncensored VL model<br/>visual clues]
  EXIF --> R[Reasoning model<br/>rank candidates]
  VL --> R
  R --> OUT[Ranked locations + rationale<br/>table / JSON / GeoJSON / MCP]

Use it from any AI stack

  • MCP server (locate mcp) for Claude Desktop / Cursor / uncensored-fleet
  • JSON output pipes into any agent · LangChain/CrewAI tool in one line · plain CLI

⚠️ Responsible use

For OSINT, journalism, and research. Get consent before geolocating images of people or privateproperty, and comply with local law. You are responsible for your use.

Related

🤖 uncensored-fleet · 🧠 engram · 🔍 geolens · 🗂️ the suite

⭐ If this is cool, star it — it helps others find it.

Interoperability

locateanything composes with the 300+ tool Cognis suite — JSON in/out and a sharedOpenAI-compatible /v1 backbone. See INTEROP.md for thesuite map, composition patterns, and reference stacks.

Integrations

Forward locateanything's findings to STIX/MISP/Sigma/Splunk/Elastic/Slack/webhooks viacognis-connect. See INTEGRATIONS.md.

License

COCL v1.0 — see LICENSE.

MCP Server · Populars

MCP Server · New

    Cassette-Editor

    Oh My Cassette: Chat Your Raw Clips Into a Finished Cut

    你的随身 AI 剪辑搭档 | Pocket AI co-editor for video montage — AI video editing plugin & MCP server for Claude Code, Codex, Hermes & OpenCode

    Community Cassette-Editor
    trendsmcp-ai

    Trends MCP

    MCP server for live trend data. Query Google Search, YouTube, TikTok, Reddit, Amazon, Wikipedia, News sentiment, Web Traffic, App Downloads, Steam, npm and more. Works with Claude, Cursor, VS Code, GitHub Copilot, ChatGPT, Windsurf, Cline, Raycast and any MCP-compatible.

    Community trendsmcp-ai
    jacob-bd

    Gemini Notebook (formerly Google NotebookLM) CLI & MCP Server

    Programmatic access to Gemini Notebook - via command-line interface (CLI), Model Context Protocol (MCP) server, and AI agent skills.

    Community jacob-bd
    PxyUp

    Fitter — web data for AI agents

    New way for collect information from the API's/Websites

    Community PxyUp
    kayhendriksen

    foehn

    Download MeteoSwiss Open Government Data — weather stations, radar, hail, forecasts and climate series — via Python API, CLI, or MCP server, as DataFrames, Parquet, xarray Datasets or Zarr stores

    Community kayhendriksen