01
Entity
A typed node. A person, an organisation, a domain, a document.
A ROSINT project
A graph of an investigation. Entities are the pinned photos, relationships are the red string — and no string exists without the evidence that justifies it.
A connection you cannot source is a connection you cannot publish.
The whole model
01
A typed node. A person, an organisation, a domain, a document.
02
Typed, directed, and carrying one or more sources.
03
A typed fact about an entity, sourced and verified on its own.
04
The citation behind a relationship or a fact, pointing into the corpus.
A relationship with zero sources is an unproven assertion, and is flagged as one rather than drawn as a fact.
Trace how two entities connect and see the source behind every step, not just the endpoints.
Protected people can be sealed, so derived public exports redact them.
Line-oriented files, so a case branches, reviews, merges and blames like code — on your own server, or none.
No plugin ecosystem
Your tool
alibi https://example.org
An ordinary binary. It reads argv and writes stdout.
The contract
An adapter reads that output
A parser maps the lines onto the four objects.
The graph
Entities, relationships, sources
Reachable as an action on the node it belongs to.
A module is a CLI program plus a parser. Red String runs it and reads what it prints — so the tool you wrote for the graph still works on its own in a pipe, and tools that already exist can be adopted by writing only the parser.
A witness archiver you run by hand, and the same command Red String calls from a node to ask what the public record shows about a URL.
Cases are shared, reviewed and audited through ordinary Git — including a newsroom's own private or self-hosted server. No account, no service, no hosted tenancy.
Who added a connection, when, and against which source is the commit history — the audit trail is the repository, not a log some service keeps for you.
In development. The adapter contract is still settling, so treat the shape above as the direction rather than a stable interface.
In development. A local-first desktop application written in Rust, part of an investigation toolkit. There is no public release, download or hosted version.