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

Pro

$6/month

For individuals who want scan history and deeper insight.

  • Encrypted scan history on this device
  • Match Explorer — see exactly which phrases raised the meter, rule by rule
  • Exposure Timeline — score your archive over time, spot spikes, and re-run the diagnosis on any period
  • 50 MB upload limit for archives
  • Priority support

Pro never changes the privacy architecture — your posts still never leave your device.

$60/year prepaid (2 months free). After subscribing, you'll get a license key by email — paste it in Pro Settings to activate.

Organization

$69/month

For newsrooms, NGOs, and legal-aid groups.

  • A conversation about your team's needs
  • Custom regional lexicon packs
  • Match Explorer — see exactly which phrases raised the meter, rule by rule
  • Exposure Timeline — score your archive week by week, spot spikes, and re-run the diagnosis on any period
  • Invoice billing

A practical path for teams working with sensitive material.

Talk to us

Tell us about your organization and what you need. Please don't include posts or sensitive personal details.

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). Three further groups track advocacy of extremist violence (left, right, religious); unlike every other group, these only score when a deterministic advocacy gate classifies the post as genuine advocacy rather than quotation, reporting, or description.

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.5
stupid, dumb, 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, moron / a moron, sycophant / a sycophant / sycophants, plus 30 curated incompetence variants (dimwitted, braindead, witless, half-witted, feeble-minded, empty-headed, birdbrained, lamebrained, dunderhead, nitwit, imbecile, cretin, dope, dunce, dullard, blockhead, bonehead, knucklehead, pinhead, airhead, dipstick, dumbass, moronic, idiotic, asinine, fatuous, vacuous, slow-witted, soft-headed, muttonheaded). Matching is case-insensitive, normalizes leetspeak (0→o, 1→i, 3→e, 4→a, 5→s, 7→t, @→a, $→s), and allows plural 's'. 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.
Extremism advocacy — left · 15 points per match · English list v1.5
guillotine the rich, kill the rich, armed struggle, overthrow the government, kill cops, eat the bourgeoisie. A match scores only when the advocacy gate classifies the post as FIRE (genuine advocacy). Posts the gate reads as quotation, reporting, or description (SILENT), or as genuinely ambiguous (CONTESTED), are shown in the explanation with the gate's reason but contribute nothing to the score. The three extremism groups carry equal weight by design: the product must not publish a claim that one ideology's violent rhetoric is more dangerous than another's.
Extremism advocacy — right · 15 points per match · English list v1.5
day of the rope, rope day, white genocide, great replacement, replacement theory, race war, blood and soil, fourteen words, stand back and stand by, 1776 will commence, storm the capitol, white power, white revolution, kill the left. Same advocacy-gate rule as above: only FIRE verdicts score; SILENT and CONTESTED verdicts are logged, never scored.
Extremism advocacy — religious · 15 points per match · English list v1.5
kill the infidels, death to infidels, forced conversion, convert or die, kill the blasphemers, death to blasphemers, martyr operation, kill the apostates, death to apostates. Same advocacy-gate rule as above: only FIRE verdicts score; SILENT and CONTESTED verdicts are logged, never scored. Terms with wide benign uses (jihad, crusade, sharia, infidel standing alone) are deliberately excluded from all three lists.
About the advocacy gate
The gate is deterministic pattern matching that runs locally on each post, after a term match. It checks for explicit source attribution, reporting verbs, negation, hypothetical or academic framing, and satire markers (which silence the match), then for imperative mood or first-person present-tense ownership (which fire it). When evidence is absent or conflicting it reports CONTESTED — uncertain — rather than guessing, and CONTESTED never raises the score. On a 75-case evaluation set it matched the verified label in 68% of cases, reported uncertainty in a further 24%, and was wrong in 8%; it never classified a non-advocacy post as advocacy. Posts it reports as CONTESTED trigger a manual-review recommendation, because the score cannot reflect what the gate could not decide. Its known limits: idiomatic negation (“see if X doesn't become Y”), rhetorical questions that imply endorsement, and posts containing two mentions of a term with different stances (the gate reads each post once and returns one verdict). It is not stance understanding, and a low score is not a promise of safety.
Language scope
This scanner evaluates English text only (English list v1.5). Each post is checked before analysis: posts in non-Latin scripts (Arabic, Devanagari, Cyrillic, and others) are detected by script and excluded; long Latin-script posts with almost no English stopwords are treated as non-English. Excluded posts are listed in the report and never scored — a 0 on non-English text means “not evaluated,” not “safe.” Roman-script non-English (for example Roman Urdu) is caught only by the stopword heuristic and only in posts long enough to judge; short ambiguous posts are kept and scored rather than risk wrongly excluding English.
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. The extremism advocacy groups were added in English list v1.5 (October 2026); their 29 terms are published above. Suggest a name.

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. Any post the extremism advocacy gate classifies as FIRE sets a 50-point floor: like the other floors, it applies after the short-text cap, so a verified advocacy call scores HIGH even in a very short text. SILENT or CONTESTED gate verdicts never move the number.

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. The extremism advocacy gate is deterministic pattern matching with documented limits: it reports genuinely ambiguous posts as uncertain rather than guessing, misses a small minority of real advocacy, and returns a single verdict per post. 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.