Pre-alpha — the extension is published, the desktop app builds from source. Don't make it your only safeguard yet.
Free & open source · No accounts · No telemetry

A clean path,
on your terms.

Oath Light blocks explicit content across the browser, the whole system's DNS, and the screen itself — then makes that protection hold when you'd rather it didn't. Everything runs on your device. Nothing is sold, tracked, or reported.

Extension on Chrome & Firefox Desktop app, GPLv3, local-only
protected by oath light

This page is blocked

Oath Light stepped in. Take a breath — the wave passes in about twenty minutes, and you've ridden it out before.

12-day streak · best 31
Back to safety Breathe with me
385,597 domains
blocked
385,597
curated domains blocked
41
languages in the keyword engine
35
mixed platforms filtered in place
0
bytes of your data sent anywhere
What it is

Two installs, one system.

The extension does real-time filtering inside the browser. The desktop app takes it past the browser — a filtering DNS resolver for every other app, an on-device AI screen monitor, and the friction that keeps all of it in place. Both are free, open, and local.

Browser extension · published

Real-time filtering

A Manifest V3 service worker checks every request against a curated blacklist, a 41-language keyword engine, and each platform's own per-item NSFW labels — blocking the page before it renders. No page scoring, no data leaving the browser.

Desktop app · builds from source

Reach, persistence & recovery

A Tauri (Rust) app that filters system DNS for apps the extension can't see, runs the optional on-device AI screen monitor, enforces the cool-off delays, and carries the panic flow, streaks and exercises for the moment blocking isn't enough.

How it works

Seven independent layers.

Each layer works on its own, and a request is blocked if any one of them matches — so a gap in one is caught by the next. They're deliberately redundant.

Full breakdown →
01

Curated blacklist

385,597 hand-pruned domains, matched exactly and by parent. Updated between releases over a signed manifest.

02

Keyword engine

41 languages, native scripts, leetspeak and homoglyph folding — catching hostnames no list has reached yet.

03

Graylist (per-item)

On Reddit, X, Pixiv and 32 more, it reads each item's own NSFW label and strips flagged posts before they load.

04

Search enforcement

SafeSearch forced on Google, Bing, DuckDuckGo and Yahoo, YouTube Restricted Mode by header rule. Neither has a switch.

05

Bypass defense

Translation and archive wrappers are unwrapped and re-checked; known proxies and raw-IP tricks are blocked.

06

System DNS filter

A local resolver applies the same lists to every application, not just browsers — and closes off DNS-over-HTTPS escapes.

07

On-device AI screen check

An optional ONNX ensemble watches for what a URL can't describe. No frame ever leaves the device, and it escalates only on persistence.

Deterministic, hostname-based, and fully auditable. No heuristic guessing about you.

Read the details →
Built to be trusted

A recovery tool shouldn't spy on you.

Most blockers phone home, mail reports to a third party, or lock the parts that work behind a subscription. Oath Light does none of it. Every filtering decision — including the AI screen check — is made on your machine.

What it does & doesn't do →
Local-only

Every check runs on-device. Nothing you view leaves your computer.

Zero telemetry

No analytics, no account, no email, no login. Nothing to profile.

Open source

The entire codebase is auditable under GPLv3. Verify it yourself.

Free forever

No premium tiers, no locked features, no ads. Ever.

The friction system

On instantly. Off only after a wait.

The hardest moment is the urge itself, and that's exactly when a settings screen gets opened. So the asymmetry is the product: every protection turns on the moment you ask, and turning one off files a request with a 24-hour cool-off.

Some things aren't a choice at all. The uninstall guard, SafeSearch, YouTube Restricted Mode, the extension requirement and the system DNS filter have no off switch — not with the master password, not by waiting, not by editing the settings file.

How the friction works →
24-hour cool-off on every weakening

Disabling the AI monitor, leaving lockdown, unblocking an app — each files a request and waits. Uninstall additionally needs a random 12-word phrase, minted when you filed it.

Clock-tamper immunity

Timers run off a monotonic anchor. Rolling the system clock forward freezes the countdown and logs the attempt rather than skipping it.

Dual-process watchdog

Two cooperating processes watch each other, backed by two independent autostart registrations. Close one and the other restores it. Documented and open — not a virus.

Tamper-evident log

Uninstall requests, extension removals, monitor stops and clock anomalies are hash-chained locally. Nothing can be quietly deleted from your own history — and nothing is sent anywhere.

Past the block screen

Blocking stops a request. It doesn't stop an urge.

So the app doesn't stop at blocking. What's on the other side of that page matters more than the page.

Panic flow

Breathing, the 20-minute wave, grounding, then your own chosen redirect — from the block screen, the tray, or a global hotkey.

Compassionate streaks

Your best streak never regresses, a slip dents rather than erases, and a gentle 24 hours follows one. Shame-driven design makes people quit.

Guided exercises

Scripted CBT and ACT exercises for the hard moments — not a chatbot. Nothing written in them ever leaves the device.

Optional AI mentor

For when you'd rather talk than follow a script. Off until you add your own API key, and structurally unable to help you weaken the filter.

How it compares

The only one that's free, open, and local.

Where the popular blockers charge, report, or stay closed-source, Oath Light is auditable and runs entirely on your device.

$0

No subscription, no premium tier, no ads.

GPLv3

Fully open codebase, auditable by anyone.

Local

No cloud analysis, no activity reporting.

Where it's going

Built in the open, phase by phase.

Full roadmap →
Shipped
Phases 1–3

Extension, domain + keyword engine, desktop app, Graylist V2.

In progress
Phase 4

Friction, watchdog, system DNS, AI monitor, recovery layer — feature-complete, in verification.

Planned
Phase 5

Finish the UI rebuild, then Android with an on-device screen scanner.

Planned
Phase 6–7

Translations, packaged installers, a signed 1.0, and community upkeep.

Common questions

Straight answers.

Is Oath Light really free?+

Yes. GPLv3, with no paid subscriptions, no premium tiers, no locked features, and no ads. There is nothing to buy, now or later.

Does it send my browsing data anywhere?+

No. All filtering runs locally and there is no analytics of any kind. The only network calls the app ever makes are the signed blocklist update, and — if you configure them yourself — your own trusted-contact mail and your own AI provider under your own key.

Why is it so hard to switch off?+

Because that's the point. Turning a protection on is instant; turning one off files a request with a 24-hour cool-off, and uninstall additionally requires typing a random 12-word phrase minted when you filed the request. Some protections — the uninstall guard, SafeSearch, YouTube Restricted Mode, the extension requirement, the DNS filter — have no off switch at all.

Is the watchdog process a virus?+

No. Two cooperating processes watch each other and restart protection if one is closed. The behaviour is documented in the repo and the code is open-source, so you can verify exactly what it does. Antivirus tools sometimes flag the persistence — that's expected for a self-protecting app.

What does the AI screen monitor actually see?+

It's optional and off until you enable it. When on, an ONNX ensemble analyses frames entirely on-device, in memory — nothing is written to disk and no frame is ever uploaded. It escalates only when a detection persists across frames, and its only actions are a dwell-gated overlay and opening your own chosen redirect.

Can I contribute?+

Absolutely — it's open source. Code, blocklist corrections, bug reports, translations and feature ideas are all welcome. See the Contribute page to get started.