Pre-alpha — the extension is published, the desktop app builds from source. Don't make it your only safeguard yet.
Privacy & security

Your recovery is nobody's business but yours.

Most content blockers make money by watching you — logging sites, emailing reports to a "partner", or renting the data out. Oath Light takes the opposite position: it can't leak what it never collects. Everything runs on your device, and the code is open for anyone to check.

What it does not do

Six promises, by design.

No telemetry

No analytics, crash pings, or usage stats. No code path in the repository sends anything about you anywhere on its own.

No accounts, no server

Nothing to sign into and nothing stored off-device. You never create an identity, so there is nothing to profile.

No cloud analysis

Filtering never sends a URL or page content to a server. There is no server. Every check runs on your machine.

No data selling

Your browsing can't be sold, rented, or handed to advertisers, because it is never collected in the first place.

No activity reports

Nothing emails a list of what you viewed to an "accountability partner". An optional trusted contact gets discrete events and your name — never history, never screenshots.

No diary of your worst moments

The event log records that something happened, never what you looked at. No URLs, no page content, no screenshots.

Every byte that leaves

Three outbound calls exist. Here they are.

"Zero telemetry" is only meaningful if the exceptions are named. These are all of them — and two of the three don't exist until you configure them yourself.

always

Blocklist updates

A plain download: a signed file fetched from GitHub and checked against a key built into the app. The request sends nothing about you.

opt-in

Your trusted contact

If you set one up, alerts go out over your own mail configuration and carry an event and your name. Not history, not screenshots, not scores.

opt-in

Your AI mentor

Off until you add your own API key. It talks to your provider under your key; the project never sees, stores or relays a message, and the conversation is never written to disk.

Clear about the line.

No fine print. Here is exactly where Oath Light stands.

What it does
  • Filters explicit content in real time, on your device, in the browser and system-wide
  • Keeps protection running, and makes weakening it cost 24 hours
  • Stores your settings and lists locally on your machine
  • Lets you audit every line of what it does
  • Gives you a route out that is delayed and deliberate, not instant
What it does not do
  • Send your browsing anywhere, to anyone
  • Require an account, email, or subscription
  • Report your activity to a third party
  • Replace therapy, community, or medical care
  • Hold against an administrator on this machine who sets out to remove it
The optional AI monitor

On-device, in memory, off by default.

An opt-in monitor analyses what's on screen to catch content the URL layers can't see. Because it touches your screen, it is built to the strictest standard in the project — and it stays disabled until you deliberately turn it on.

If you never enable it, it never runs. Nothing about it is silent or automatic.

Runs entirely on your machine

An ONNX ensemble scores frames locally. No frame is ever uploaded for evaluation, to this project or anyone else.

In memory only, then discarded

A frame is scored in RAM and immediately thrown away. Nothing is written to disk — no gallery, no history, no evidence file.

No irreversible action available to it

It can cover the screen and open your own redirect. That is the entire set. Reporting a false positive shortens the pause and never makes the filter catch less.

Why the permissions?

Broad access, narrow purpose.

A content blocker has to see requests in order to block them, so the extension asks for wide host access. That access is used only to match and stop content locally. Here's the accounting, permission by permission — the same table that ships in the repo's SECURITY.md.

Browser permission Used for Never used for
<all_urls>Checking a page's hostname against the local blocklistReading, storing or sending page content
webNavigationCatching a navigation before the page loadsRecording where you went
tabsSending a blocked tab to the block pageBuilding browsing history
cookiesSetting a site's own "no adult content" preferenceReading cookies for anything else
declarativeNetRequestEnforcing SafeSearch and Restricted ModeInspecting your traffic
storage / unlimitedStorageHolding your settings and the blocklistsAnything leaving the device
nativeMessagingTalking to the desktop app on the same machineAny remote connection
alarmsBlocklist update checks and remindersTracking

The desktop app additionally asks for administrator rights once, at setup — used to write browser policy, point this machine's DNS at the local resolver, and register autostart. Nothing else. Decline it and the app still runs: the browser stays protected, and the DNS layer keeps asking until you allow it.

Being honest with you

What Oath Light can't do.

It's not a cure.

It reduces access and buys you time. Real recovery also needs support, honesty, and often professional help.

It doesn't hold against an admin.

Every Oath Light process runs as the user it protects, so an administrator who sets out to remove it has the operating system's help. That's stated plainly in SECURITY.md rather than papered over.

It's still pre-alpha.

Expect rough edges and gaps. The desktop app installs from source and shouldn't be your only line of defense yet.

It can't see everything.

Per-item filtering covers 35 supported platforms. The AI monitor closes some of the rest, but only while it's on.

If you're struggling, you deserve real support. Consider reaching out to a trusted person or a professional — a blocker is a helpful guardrail, not a substitute for care. Found a hole? Report it in BYPASSES.md.