Private, on-device review
Pricing

See what a surveillance model could notice.

Paste public posts or inspect a downloaded archive. Get a transparent, defensive exposure review of political speech, dissent, networks, and identifying details—without connecting an account or sharing a password.

Up to 200,000 characters0 chars

Date filtering applies to file uploads, which carry timestamps.

Public officeholder, party, role, or institution names only. Never add private individuals, handles, or contacts. The list stays in this browser tab and never leaves your device.

Your text stays in this tab and is discarded when you close or refresh it. Files are read locally; nothing is uploaded.

02 / REVIEW

A lens, not a verdict.

This meter shows signals an authoritarian monitoring system could treat as legible—especially criticism of leaders, ruling parties, and state institutions. It cannot predict what any real system or government would do.

S-01Political figuresLeaders, parties, opposition, dissent
S-02Civic activityEvents, campaigns, public institutions
S-03Network linksHandles, groups, invitations
S-04Time & placeMeeting details and movement clues
S-05Criticism of powerAnti-regime language and directed criticism
S-06Identity cluesContact details and public handles

Free forever. Supported by people who can give.

The full scanner remains available to everyone. Contributions and organization plans fund regional lexicon packs and keep it that way.

Free

$0Contribute

The complete private safety scanner for individual use.

  • Full safety scanner
  • Unlimited scans
  • Published scoring methodology
  • Regional lexicon packs — free for individuals, always
  • Local-first always

Free forever for individuals.

Use the free scanner

Organization

$69/month

For newsrooms, NGOs, and legal-aid groups.

  • A conversation about your team's needs
  • Custom regional lexicon packs
  • Invoice billing

A practical path for teams working with sensitive material.

Talk to us

Readable by design.

Authoritarian movements have historically treated dissent, opposition ties, and criticism of leaders as threats. A future system could scan those signals at far greater scale. This defensive model makes that possibility visible without claiming to reproduce any real regime's methods.

What the score measures

Six signal groups of machine-legible text: political figures; civic activity (events, campaigns, public institutions); network links (handles, groups, invitations); time and place; criticism of power (anti-regime language and directed criticism); and identity clues (direct identifiers). Critical language gets the highest published weight; substantive criticism and generic pejoratives are related to an already-attributed leader, officeholder, party, regime, or government reference within the same post. The two rules remain separately traceable in the explanation.

Published weights and word lists
Criticism of power · 10 points per match
corruption, dictator, dictatorial, tyranny, fascist, fascism, authoritarian, autocrat, resign, impeach, impeachment, lying, stolen, rigged, oppressive, oppression, crackdown, censorship, censored, unconstitutional, injustice, abuse of power, police state, anti-government, dissent, dissident, oppose/opposed, criticize/criticized, criticise/criticised, condemn/condemned, denounce/denounced, resist, resistance. +20 points per post where one appears with a political figure or state institution.
Pejorative attributed to power · 10 points per match · English list v1.0
stupid, incompetent, corrupt, liar / a liar, pathetic, disgrace / a disgrace, failure / a failure, joke / a joke, criminal / a criminal, evil, tyrant / a tyrant, fraud / a fraud. This rule only fires after the existing layer attributes a public figure, party, role, or institution in the same post. It uses the same context window as criticism of power, checks both word orders, and gives any overlapping term span to one rule only. A narrow literal negation guard blocks the rule when not, isn't, never, or hardly appears between the attributed entity and pejorative in the same clause; this is not a claim of stance understanding. Identity-based or protected-characteristic slurs and profanity-only terms are excluded.
Protest & organizing · 8
protest, march, rally, demonstration, organize, organizing, organizer, strike, boycott, resistance, mobilize, walkout, picket, direct action.
Political figures · 7
president, vice president, VP, prime minister, chancellor, minister, head of state, ruling party, governing party, opposition, opposition party, party leader, political leader, Democratic Party, Labor/Labour Party, Conservative Party, Green Party, Nazi Party, National Socialist, fascist party—plus the built-in parties and starter leader names below and optional names or aliases you enter.
Built-in political parties · same 7-point weight
Republican Party/GOP/Republicans; Labour; Renaissance; Christian Democratic Union/CDU; Brothers of Italy/Fratelli d'Italia/FdI; Liberal Party/Liberals; Liberal Democratic Party/LDP.
Starter world leaders · same 7-point weight
Narendra Modi/Modi; Xi Jinping/Xi; Vladimir Putin/Putin; Donald Trump/Trump; Andy Burnham/Burnham; Keir Starmer/Starmer; Emmanuel Macron/Macron; Sébastien Lecornu/Sebastien Lecornu/Lecornu; Friedrich Merz/Merz; Giorgia Meloni/Meloni; Mark Carney/Carney; Anthony Albanese/Albanese; Javier Milei/Milei; Claudia Sheinbaum/Sheinbaum; Luiz Inácio Lula da Silva/Lula; Cyril Ramaphosa/Ramaphosa; Prabowo Subianto/Prabowo/Subianto; Recep Tayyip Erdoğan/Erdogan; Mohammed bin Salman/bin Salman; Kim Jong Un/Kim Jong-un; Mojtaba Khamenei/Mojtaba/Khamenei; Ali Khamenei; Masoud Pezeshkian/Pezeshkian; Alexander Lukashenko/Lukashenko; Delcy Rodriguez/Delcy Rodríguez/Rodriguez; Nicolás Maduro/Nicolas Maduro/Maduro; Miguel Díaz-Canel/Diaz-Canel; Daniel Ortega/Ortega; Abdel Fattah el-Sisi/el-Sisi/Sisi; Min Aung Hlaing; Ahmed al-Sharaa/al-Sharaa; Viktor Orbán/Orban; Ilham Aliyev/Aliyev; Ursula von der Leyen/von der Leyen; Lee Jae-myung; Shigeru Ishiba/Ishiba; Sanae Takaichi/Takaichi.
Time & place · 7
meet at, meeting at, join us at, tonight, tomorrow, this evening, at noon, at midnight, location, address, on my way, arriving at; detected dates, times, and street addresses.
Civic activity · 5
election, vote, voting, ballot, campaign, petition, policy, council, hearing, advocacy, activist, democracy, civil rights.
State institutions · 5
government, administration, agency, police, court, congress, senate, legislature, ministry, military, governor, mayor.
Direct identifiers · 5
Email addresses, phone numbers, URLs, and public @handles; street addresses add 9 points.
Network references · 4
join us, our group, members, organizers, coalition, chapter, bring a friend, share widely, signal group, group chat, and @mentions.
Emotional intensity · 3
angry, furious, outraged, afraid, terrified, hate, betrayed, disgusted, unacceptable, enraged, fed up; repeated punctuation and all-caps emphasis.

The built-in leader list is current as of September 2026 (last reviewed 27 September 2026). Former leaders are deliberately retained so historical posts still score. Leaders change; a name missing from the list will lower the score for text that mentions it.

Iran: Mojtaba Khamenei succeeded Ali Khamenei (d. February 2026) in March 2026.

Hungary: Péter Magyar (Tisza) succeeded Viktor Orbán as prime minister in May 2026; Orbán is retained as a former leader for historical posts.

Venezuela: Delcy Rodriguez has served as interim president since January 2026, when Nicolás Maduro was captured.

France has had multiple prime ministers within a year, including resignation and reappointment cycles, so its entries follow a shorter review cadence than stable entries.

Each category is capped at six weighted matches. Multiple active categories and protest-plus-place combinations add disclosed combination bonuses. Short texts are capped at 46, but criticism attributed to power—including the pejorative rule—has a 45-point floor.

Phase 2 assurance checks
ControlEvidenceGate
Pejorative-proximity guard11/11 corpus cases pass, including negation, unattributed-entity, historical-post, per-entity, directionality, and span-dedup checks.Required
Pejorative list scopeEnglish v1.0 manually reviewed: no identity-based or protected-characteristic terms; no profanity-only terms.Required

The negation guard is deliberately narrow: it blocks not, isn't, never, or hardly only when the word appears between the attributed entity and pejorative within the same clause. It is a literal precision check, not a claim of stance understanding.

What it cannot know

This is keyword and proximity matching, not machine-learning stance analysis. It cannot reliably understand context, sarcasm, quotations, images, audience, intent, or whether a claim is true. Its negation check is intentionally limited to four literal words between a recognized power reference and a pejorative in the same clause. It assigns no ideology label, stores no profile, connects to no social platform, and compares your text with no one else's. A low score is not a promise of safety. It is not legal advice and cannot tell you whether you are under surveillance.

Safer ways to use social data

Prefer pasted public text or a platform data export. Never give a third-party tool your social-media password. If you use OAuth elsewhere, check that access is read-only and revoke it when finished.

Parsing, large exports, and safer reports

Uploads are separated into candidate posts locally, with the found and skipped counts shown before scoring. Scoring runs in short chunks so the browser can keep responding on large exports. Downloaded reports omit raw post text by default; quoting requires an explicit choice after a sensitivity warning. The local alias field is only for public officeholder, party, role, or institution names—never private people, handles, or contacts.