Chorus

Many voices,
one script.

A closer read of the Russia / Ukraine information space.

Chorus looks for accounts repeating the same narrative, close in time, again and again. Looks coordinated? Inspect the evidence before drawing a conclusion.

Read a post in context or inspect the live evidence. The notebook below keeps our labelled demonstrations separate from current observations.

Local CPU embeddings need model-specific calibration. Missing model files use disclosed lexical overlap; the synthetic demo is not measured accuracy.

Start an investigation

The synthetic demo deliberately includes a benign coordinated group. It is not an accuracy test.

If enabled by the operator, selected evidence is sent to the configured AI provider (Hostinger AI Router or Anthropic). AI prose never changes a score. Off by default.

No uploads saved to disk. Text may remain in a bounded in-memory cache. Embeddings run locally by default; an explicitly configured HTTP backend sends text to that service.

Evidence notebook

Pick a sample or bring your own posts. Your results will appear here.

A single post tells you little.
Repeated co-activity tells a different story.

What counts as evidence?

Shared narratives

Model-specific cosine matching can find nearby meanings after calibration. A separate shingle-overlap channel identifies near-copy text.

Repeated synchrony

The provisional default requires at least two independent pairs within 15 minutes per account link. A single viral post is not enough. Evaluated ablations make removed safeguards explicit.

Connected behaviour

At least three accounts, with evidence you can inspect. Account similarity is shown for context, but contributes no score unless the evaluated configuration retains it.

Read the measured precision, recall and false-positive rate