Map social accounts, phone numbers, and locations for an OSINT investigation in one canvas
Drop pins for places relevant to a case and link them to social handles
Save research as a portable .osint.json file you can share or version control
Teach OSINT methods with a local-first tool that does not upload data anywhere
Needs Node 18+; Google Maps mode requires a free Google Cloud API key, OpenStreetMap needs none.
OSINT Mapping Tool is a small web app for organizing open-source intelligence research, the kind of work where someone is gathering scraps of public information about a person, a place, or an event. The app runs in your browser and saves everything to a single file on your own computer, so nothing gets uploaded to a server. It has two main views. The Information tab is a node graph: each piece of information you write down (an Instagram handle, a phone number, a license plate, a family member) becomes a labeled bubble on a canvas, and you draw lines between bubbles to record how they relate. Dragging a connection line into empty space creates a new connected bubble automatically. The README lists twenty built-in identifier types across categories like Social, Contact, Personal, Vehicle, and Other, each with its own form fields, and brand icons for common platforms like Instagram, Facebook, X, TikTok, and Discord. You can also upload your own icons. The Map tab lets you click anywhere on a map to drop a pin. If the location matches a known place, the app fills in the name and address for you. You can pick between Google Maps, which needs you to set up a free API key from Google Cloud and gives richer place details, or OpenStreetMap, which needs no signup at all but with coarser results. Pins can be linked back to identifiers from the Information tab, so a coffee shop pin could carry a note like tagged here by @johndoe on March 14 with the matching account attached. The tech stack is React 18 with Vite, the node graph library xyflow, and either Google Maps or Leaflet for the map. Projects save out to a plain .osint.json file you can share or keep under version control, and the app also takes recent snapshots in the browser so you do not lose work if you close the tab without saving. To run it, you need Node 18 or newer, then clone, npm install, and npm run dev.
Generated 2026-05-22 · Model: sonnet-4-6 · Verify against the repo before relying on details.