---
title: "Some sites should simply _not open_."
canonical_url: https://torwache.com/
md_url: https://torwache.com/index.md
---
# Some sites should simply _not open_.

Dead-simple website blocking for Chrome. Put a domain on your list and it stops opening. Switch it off and it’s back. There’s nothing else to learn.

[Add to Chrome](https://chromewebstore.google.com/detail/ibffnlnhgaoppogfnaejknianccnknlj)

[Read the source](https://github.com/alexgutjahr/torwache)

Available for Chrome.

## It works like this

There’s no onboarding, because there’s nothing to onboard.

1.  01
    
    ### Add a domain
    
    Type youtube.com and hit Block. Leave the box selected if its subdomains should count too.
    
2.  02
    
    ### Chrome does the refusing
    
    The extension hands Chrome one rule per domain. Chrome enforces it in its own network stack, and no blocklist or navigation data is sent away.
    
3.  03
    
    ### You hit a wall
    
    Instead of the site you get a plain page saying why. No countdown, no five more minutes, no bypass button.
    

Most blockers want to become your life coach. This one just blocks websites.

No accounts. No timers, streaks, schedules or point scores. No password gate that a determined afternoon gets past anyway. Add a domain and it stops opening, switch it off when you actually want it back. That’s the entire surface area.

## Three permissions, and why

Every extension asks for something. Here’s the whole list, and what each one does.

`storage`

Keeps your blocklist and theme on this device.

Without it the list wouldn’t survive closing the tab. Local storage only, never cloud sync.

`declarativeNetRequest`

Hands Chrome one rule per domain you’ve switched on.

Chrome does the refusing, in its own network stack. The extension declares the rules and never sees a request.

`webNavigation`

Tells the extension a navigation happened, so a blocked one gets a readable page.

It also catches sites that answer their own navigation from a service worker cache, which network rules can’t see.

No host permissions. No content scripts. It can’t read or change page contents, and it makes no background network requests. External links open only when clicked.

## Website blocker guides, without filler.

Learn the quickest way to block websites on Chrome, what permissions to check, and when a larger focus tool is worth the extra machinery.

[How-to Block websites on Chrome](https://torwache.com/guides/how-to-block-websites-on-chrome/)

[Checklist Choose a website blocker extension](https://torwache.com/guides/website-blocker-extension/)

[Compare See how popular website blockers differ](https://torwache.com/compare/)

## Questions

The ones worth asking about anything you let into your browser.

Does it run analytics?

Not in the extension — no telemetry, error reporting, remote assets, or background network requests. Its external links open only when clicked. This website is a separate thing and uses Fathom for aggregate page views; Fathom is not packaged with the extension.

Are there ads?

No. The extension injects nothing into visited pages and cannot read or modify their contents.

Does it cost anything?

The current release is free. It contains no paid tier, trial, licence key, or upgrade screen, and its source is available under the Zero-Clause BSD licence.

Do I need an account?

No. There’s nothing to sign up for and nothing to sign in to.

Does it ask to read and change data on every website?

No. That prompt comes from host permissions, and torwache declares none. It has no content scripts either, so it can’t read or modify page contents.

Can you see my browsing?

The developer can’t. Chrome does hand the extension navigation URLs through webNavigation. Each full URL is immediately reduced to its hostname; paths, queries, fragments, and credentials are discarded. The hostname is used in memory for the current check and shown on the local block page when blocked. Browsing history is never written to extension storage or transmitted.

Can I sync my blocklist between devices?

No. It lives in local extension storage and stays there. Syncing would mean an account, or at minimum handing a list of “sites I can’t stop visiting” to somebody’s server. Copy it across yourself — it’s a list of domains.

Does it have streaks, scores, or a productivity dashboard?

No. It blocks websites.

Can I get past the block page without touching the list?

No. No bypass button, no timer, no “five more minutes”. The page is a dead end on purpose. Open the list and switch the entry off if you really mean it.

Can I lock myself out by blocking the blocklist?

No. The blocklist lives at a chrome-extension:// address, and only http and https are ever considered for blocking. An extension id has no dot in it either, so it can’t be entered as a domain. There’s a test for that.

Does it block tabs I already have open?

Not until they navigate or reload. Blocking applies to requests, and an open page has already made its. Shutting it down retroactively would mean reading the URL of every tab you have open, which needs a permission whose warning reads “Read your browsing history”. Bad trade for saving you one keystroke.

Will it ask for more permissions in an update?

The current release asks for three and needs all three. If a future update added a permission that triggers a warning, Chrome would require your approval before the extension could run again. Read that prompt carefully — for anyone’s extension, not just this one.

Should I trust a random blocker from the internet?

No, and that’s rather the point. The source is strict TypeScript split into small WXT entrypoints and modules, with tests for permissions, storage, domain handling, packaging, and real Chrome behavior. WXT and Vite produce the browser-native package; the only runtime dependency is tldts for Public Suffix List-aware domain validation. Go read it. Privacy claims are easier to believe when you can check them yourself.

Free, local, and open source.

The current release has no account, telemetry, paid tier, or hosted service.

[Add to Chrome ↗](https://chromewebstore.google.com/detail/ibffnlnhgaoppogfnaejknianccnknlj)

[Read the source ↗](https://github.com/alexgutjahr/torwache)
