<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Tools on CypherpunkGuide</title><link>https://cypherpunkguide.com/en/tools/</link><description>Free, open-source, local-first tools from Cora Aegis — privacy and OPSEC instruments you can read, verify, and run yourself.</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© 2026 Cora Aegis</copyright><atom:link href="https://cypherpunkguide.com/en/tools/index.xml" rel="self" type="application/rss+xml"/><item><title>ExposureCheck</title><link>https://cypherpunkguide.com/en/tools/exposurecheck/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://cypherpunkguide.com/en/tools/exposurecheck/</guid><description>A local-first, open-source CLI that audits your own Reddit and X history for AI re-identification risk — before someone else does it to you. No dossier, no telemetry, bring your own model.</description><content:encoded>
&lt;h2 class="relative group"&gt;What it does, in one minute
 &lt;div id="what-it-does-in-one-minute" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-it-does-in-one-minute" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;ExposureCheck reads the data &lt;strong&gt;you&lt;/strong&gt; export from a platform — never a live account, never anyone else&amp;rsquo;s — and asks the question an adversary would ask: &lt;em&gt;given all of this together, what can be inferred about the person behind it?&lt;/em&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;It parses your &lt;strong&gt;Reddit&lt;/strong&gt; GDPR export and your &lt;strong&gt;X / Twitter&lt;/strong&gt; archive (a folder or a &lt;code&gt;.zip&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;It runs a &lt;strong&gt;recall-preserving cascade&lt;/strong&gt;: a cheap pass ranks every post, an expensive pass reads the high-priority ones, and &lt;em&gt;weak signals are kept&lt;/em&gt; — the mosaic is built from weak signals, so discarding them would be false comfort.&lt;/li&gt;
&lt;li&gt;It extracts the &lt;strong&gt;metadata layer&lt;/strong&gt; deterministically — the self-set location field, outbound links, image &lt;strong&gt;EXIF/GPS&lt;/strong&gt;, device model, and the posting-time concentration that betrays your timezone. On X this leaks more than the text does.&lt;/li&gt;
&lt;li&gt;It reports &lt;strong&gt;category risk cards&lt;/strong&gt; — Location, Employer, Family, Schedule, Finances, Account-linkage — ranked by &lt;strong&gt;risk contribution&lt;/strong&gt;, each with masked examples and concrete, &lt;em&gt;generalise-first&lt;/em&gt; fixes.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It is &lt;strong&gt;local-first&lt;/strong&gt;, writes &lt;strong&gt;no dossier&lt;/strong&gt;, and never saves a profile of you to disk.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;New to &amp;ldquo;mosaic re-identification&amp;rdquo;? Start with the threat, not the tool: read the companion explainer, &lt;a href="https://cypherpunkguide.com/en/privacy/social-media-self-audit/" &gt;Audit your own post history the way an AI would&lt;/a&gt;, then come back.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 class="relative group"&gt;What it deliberately does &lt;strong&gt;not&lt;/strong&gt; do
 &lt;div id="what-it-deliberately-does-not-do" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-it-deliberately-does-not-do" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;No dossier.&lt;/strong&gt; It never prints &amp;ldquo;you live in X, work at Y, your name is Z.&amp;rdquo; Cards show &lt;strong&gt;masked&lt;/strong&gt; snippets; the resolved value appears only when &lt;em&gt;you&lt;/em&gt; click through to &lt;em&gt;your own&lt;/em&gt; original post, in-session, never saved.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No export of findings. No scraping&lt;/strong&gt; (export input only). &lt;strong&gt;No posting or deleting&lt;/strong&gt; on your behalf. &lt;strong&gt;No analysing anyone else&amp;rsquo;s&lt;/strong&gt; history.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;It does not make you anonymous.&lt;/strong&gt; It &lt;em&gt;reduces&lt;/em&gt; risk. &amp;ldquo;Low&amp;rdquo; is not &amp;ldquo;safe&amp;rdquo;, and metadata, timing, and writing-style are only partly in scope.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;What leaves your machine — and what doesn&amp;rsquo;t
 &lt;div id="what-leaves-your-machine--and-what-doesnt" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#what-leaves-your-machine--and-what-doesnt" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;This is the first thing a privacy tool should tell you, so here it is up front. The inference runs on a backend &lt;strong&gt;you&lt;/strong&gt; choose, and that choice — not the tool — decides what travels:&lt;/p&gt;
&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;Backend&lt;/th&gt;
					&lt;th&gt;What it is&lt;/th&gt;
					&lt;th&gt;Does your data leave your machine?&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;local&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;a local Ollama / llama.cpp / LM Studio model&lt;/td&gt;
					&lt;td&gt;✅ &lt;strong&gt;No&lt;/strong&gt; — stays on your computer&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;heuristic&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;offline regex stub, near-zero recall&lt;/td&gt;
					&lt;td&gt;✅ &lt;strong&gt;No&lt;/strong&gt; — but &lt;em&gt;dev/CI only, not a real audit&lt;/em&gt;&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;cloud&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;any OpenAI-compatible endpoint, &lt;strong&gt;your&lt;/strong&gt; key&lt;/td&gt;
					&lt;td&gt;⚠️ &lt;strong&gt;Yes&lt;/strong&gt; — your posts go to that provider&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;The tool itself has &lt;strong&gt;no server, no telemetry, no account&lt;/strong&gt;. The author holds none of your data and no keys. When you pick &lt;code&gt;cloud&lt;/code&gt;, your export goes to the API provider you chose — and that provider&amp;rsquo;s logging, retention, training policy, and the IP/billing tied to your key all apply. ExposureCheck does not add a hop; it also cannot remove the one you opted into.&lt;/p&gt;

&lt;h3 class="relative group"&gt;The one cloud caveat that actually matters
 &lt;div id="the-one-cloud-caveat-that-actually-matters" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#the-one-cloud-caveat-that-actually-matters" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;If the account you are auditing is a &lt;strong&gt;pseudonymous&lt;/strong&gt; one you keep apart from your real identity, &lt;strong&gt;and&lt;/strong&gt; your AI/cloud account is registered or paid under your real name, then sending that history to the cloud lets the provider link &lt;em&gt;real identity ↔ anonymous account&lt;/em&gt; on their side (subpoena, breach, insider). &lt;strong&gt;That is the exact deanonymization this tool exists to prevent.&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;So: auditing a strictly-anonymous account → use &lt;code&gt;--backend local&lt;/code&gt; (or a cloud account opened and paid for anonymously). Auditing your real-name / public account → cloud is fine. The CLI states this and asks you to acknowledge it when it applies. We never &lt;em&gt;force&lt;/em&gt; local — that would shrink the audience to nobody — we make the trade-off explicit.&lt;/p&gt;

&lt;h2 class="relative group"&gt;How it works
 &lt;div id="how-it-works" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#how-it-works" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-text" data-lang="text"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;export ─▶ parse ─▶ prefilter (drop only TRUE-empty) ─┬─▶ deterministic: profile + EXIF + timing ─┐
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; └─▶ cascade: cheap route ─▶ expensive read ─┤
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; ▼
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; risk-contribution scoring ─▶ category cards ─▶ no-dossier report&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The cascade exists so a 1–3k-post history stays affordable: the cheap pass decides &lt;em&gt;what deserves&lt;/em&gt; the expensive read instead of sending everything. Risk-contribution scoring then ranks categories by how much they actually narrow you down — not by raw model confidence, which is not calibrated.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Install
 &lt;div id="install" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#install" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The core — parsing, EXIF, the cascade, &lt;strong&gt;and&lt;/strong&gt; the cloud/local HTTP backends — is &lt;strong&gt;Python standard library only&lt;/strong&gt;. No third-party package touches your export, which keeps the code you have to trust small.&lt;/p&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# from source (a PyPI release ships with the first public version):&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;git clone https://github.com/coraaegis/exposurecheck &lt;span class="o"&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class="nb"&gt;cd&lt;/span&gt; exposurecheck
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;pip install -e .
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# or run without installing:&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;python -m exposurecheck --help&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Local model — nothing leaves your machine (recommended for anonymous accounts)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exposurecheck audit &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --reddit ./reddit_export.zip &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --twitter ./twitter_export &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --backend &lt;span class="nb"&gt;local&lt;/span&gt; --expensive-model llama3.1 &lt;span class="se"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt; --i-own-this-data
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="c1"&gt;# Cloud — bring your own key; set it in the ENV, never on the command line&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;export&lt;/span&gt; &lt;span class="nv"&gt;OPENAI_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;sk-...
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;exposurecheck audit --twitter ./twitter_export --backend cloud --i-own-this-data&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;The API key is read from an environment variable on purpose: command-line arguments leak into shell history and process listings.&lt;/p&gt;
&lt;p&gt;ExposureCheck is a &lt;strong&gt;command-line tool&lt;/strong&gt; today, aimed at people comfortable in a terminal — which is also where its first reviewers live. A &lt;strong&gt;one-click app&lt;/strong&gt; for non-technical users (a packaged build with a local, in-browser UI and no Python to install) is the next milestone; the CLI stays for power users.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Trust it the way you&amp;rsquo;d trust any privacy tool — by checking, not by faith
 &lt;div id="trust-it-the-way-youd-trust-any-privacy-tool--by-checking-not-by-faith" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#trust-it-the-way-youd-trust-any-privacy-tool--by-checking-not-by-faith" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;p&gt;The author is &lt;strong&gt;pseudonymous&lt;/strong&gt;, so don&amp;rsquo;t take a name on faith. Take things you can verify instead:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Read the code.&lt;/strong&gt; It is open-source (MIT) and stdlib-only, so the dependency tree you have to audit is essentially the standard library.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Verify the release.&lt;/strong&gt; Each release is &lt;strong&gt;PGP-signed&lt;/strong&gt; by Cora Aegis. Fetch the key over WKD and check the signature:
&lt;div class="highlight-wrapper"&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gpg --locate-keys cora@cypherpunkguide.com
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;gpg --verify exposurecheck-0.1.0.tar.gz.asc&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;
&lt;strong&gt;SHA-256 checksums&lt;/strong&gt; ship with every release, and builds are &lt;strong&gt;reproducible&lt;/strong&gt; — rebuild from the tagged source and confirm the artifact matches.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;No identity code-signing certificate&lt;/strong&gt;, by design — such a certificate would tie the project to a legal identity, the opposite of the point. An unsigned Windows binary may show a SmartScreen &amp;ldquo;unknown publisher&amp;rdquo; prompt; that is expected. Prefer a package manager (pip / Scoop / Homebrew) or run from source, and verify the PGP signature.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The output design is the safeguard.&lt;/strong&gt; The no-dossier rule is enforced in code: masked labels are machine-generated, so even the model&amp;rsquo;s own text cannot surface a resolved value into the report. The dual-use guardrails — ownership-gated input, category-only output, masking, and a pre-release abuse evaluation — are documented in &lt;a href="https://github.com/coraaegis/exposurecheck/blob/main/docs/ABUSE-EVAL.md" target="_blank" rel="noreferrer"&gt;&lt;code&gt;ABUSE-EVAL.md&lt;/code&gt;&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;A transparent data-flow table and a published threat model show &lt;em&gt;what the tool intends&lt;/em&gt;. The source, the signature, and the reproducible build are how you confirm it does that — and nothing else.&lt;/p&gt;

&lt;h2 class="relative group"&gt;Limits you should hold in mind
 &lt;div id="limits-you-should-hold-in-mind" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#limits-you-should-hold-in-mind" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&amp;ldquo;Low&amp;rdquo; is not &amp;ldquo;safe.&amp;rdquo;&lt;/strong&gt; The tool reduces risk; it does not certify anonymity.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Recall is not perfect.&lt;/strong&gt; A miss (&amp;ldquo;nothing flagged&amp;rdquo;) is not proof you are un-identifiable — especially on the &lt;code&gt;heuristic&lt;/code&gt; backend, which exists for testing, not auditing.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Out of scope:&lt;/strong&gt; writing-style fingerprinting, cross-platform correlation beyond what&amp;rsquo;s in your exports, network-level metadata, and the &lt;em&gt;visual content&lt;/em&gt; of images (v1 reads EXIF/metadata only — see the roadmap).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;The tool itself reads your most sensitive data.&lt;/strong&gt; That is exactly why it is local-first, stdlib-only, open-source, and signed: so the thing you run to check your exposure is itself the smallest, most auditable surface it can be.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 class="relative group"&gt;FAQ
 &lt;div id="faq" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#faq" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h2&gt;

&lt;h3 class="relative group"&gt;Does ExposureCheck upload my posts anywhere?
 &lt;div id="does-exposurecheck-upload-my-posts-anywhere" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#does-exposurecheck-upload-my-posts-anywhere" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Only if you choose the &lt;code&gt;cloud&lt;/code&gt; backend, and then only to the API provider whose key you supplied. With &lt;code&gt;local&lt;/code&gt; or &lt;code&gt;heuristic&lt;/code&gt;, nothing leaves your machine. The tool has no server or telemetry of its own.&lt;/p&gt;

&lt;h3 class="relative group"&gt;Will it tell me my own address or real name?
 &lt;div id="will-it-tell-me-my-own-address-or-real-name" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#will-it-tell-me-my-own-address-or-real-name" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;No. That is the deliberate &amp;ldquo;no-dossier&amp;rdquo; design. It shows masked categories and points you at &lt;em&gt;your own&lt;/em&gt; original posts so you can decide what to change. It never assembles or stores a profile of you.&lt;/p&gt;

&lt;h3 class="relative group"&gt;I&amp;rsquo;m auditing an anonymous account. Is the cloud backend safe?
 &lt;div id="im-auditing-an-anonymous-account-is-the-cloud-backend-safe" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#im-auditing-an-anonymous-account-is-the-cloud-backend-safe" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;Use &lt;code&gt;--backend local&lt;/code&gt; for a strictly-anonymous account, unless your cloud account is itself anonymous. Sending an anonymous account&amp;rsquo;s history to a real-name AI account links the two on the provider&amp;rsquo;s side — the exact risk this tool helps you find.&lt;/p&gt;

&lt;h3 class="relative group"&gt;Is it really safe to run on my full history?
 &lt;div id="is-it-really-safe-to-run-on-my-full-history" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#is-it-really-safe-to-run-on-my-full-history" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;The code is open-source and stdlib-only so you can read what it does, the release is PGP-signed and reproducible so you can confirm what you installed, and it writes no profile to disk. Verify those, don&amp;rsquo;t take them on trust — that&amp;rsquo;s the whole posture.&lt;/p&gt;

&lt;h3 class="relative group"&gt;Why a command line and not an app?
 &lt;div id="why-a-command-line-and-not-an-app" class="anchor"&gt;&lt;/div&gt;
 
 &lt;span
 class="absolute top-0 w-6 transition-opacity opacity-0 -start-6 not-prose group-hover:opacity-100 select-none"&gt;
 &lt;a class="text-primary-300 dark:text-neutral-700 !no-underline" href="#why-a-command-line-and-not-an-app" aria-label="Anchor"&gt;#&lt;/a&gt;
 &lt;/span&gt;
 
&lt;/h3&gt;
&lt;p&gt;The first audience is technical, and a CLI is the most auditable form. A packaged one-click app with a local in-browser UI is the next milestone for non-technical users.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;&lt;strong&gt;Built by &lt;a href="https://cypherpunkguide.com/en/authors/cora-aegis/" &gt;Cora Aegis&lt;/a&gt;.&lt;/strong&gt; Found a privacy or safety flaw? Responsible disclosure is welcome — &lt;code&gt;cora@cypherpunkguide.com&lt;/code&gt; (PGP via WKD). The canonical source and the name &lt;em&gt;ExposureCheck&lt;/em&gt; live at &lt;a href="https://github.com/coraaegis/exposurecheck" target="_blank" rel="noreferrer"&gt;github.com/coraaegis/exposurecheck&lt;/a&gt;.&lt;/p&gt;</content:encoded></item></channel></rss>