Documentation menu

Entity graph

OpenOSINT has two separate graph features. Do not confuse them.

The Graph tab in the web UI

The Graph view in the web UI draws the entities (domains, profiles, emails) found during the current chat. It is built in your browser from the tool results and is not saved anywhere.

The optional graph store

A second, additive module keeps a durable graph on your disk, modelled with FollowTheMoney:

  • statement-level provenance for every fact;
  • an append-only store;
  • non-destructive same-entity suggestions and a human review queue. Nothing is merged automatically.

It works in a plain uvx openosint web install, with no compiler and no extra:

Surface What it gives you
/graph page and /api/graph/* routes Browse the store in the local web UI
graph_neighbors MCP tool Entities linked to a given entity
graph_review_candidates MCP tool Same-entity suggestions waiting for a decision

Two things need an extra. graph_export and .ftm export need pip install "openosint[graph]", which builds PyICU. Same-entity scoring needs openosint[graph-dedup] on Python 3.11 or newer.

The database is graph.db in the data directory (~/.openosint/), or the path in OPENOSINT_GRAPH_DB. It starts empty. Neither the web UI nor the agent writes to it; you fill it through the Python API. The graph guide on GitHub has the full API and a worked example.

Personal data

The store holds real data on your disk, such as names, emails and probable links between identities. You are its controller: decide what goes in, how long it stays and who can read it. GraphStore.erase() removes every statement about an entity, with its provenance and links. The store is local; OpenOSINT never sends it anywhere.

Edit this page on GitHub