A Chromium MV3 extension that blocks distracting websites and requires a physical security key (YubiKey / FIDO2) to temporarily unlock them. Friction-based self-discipline — no server, no accounts, no runtime dependencies.
- Register a hardware security key (WebAuthn, cross-platform attachment only)
- Add domains to your blocklist — they're instantly blocked via
declarativeNetRequest - To visit a blocked site, tap your security key to start a timed unlock session
- When the timer expires, the site is re-blocked automatically
Removing domains or replacing your credential also requires a key tap.
pnpm install
pnpm build # one-shot build
pnpm build:watch # rebuild on change- Navigate to
brave://extensionsorchrome://extensions - Enable Developer mode
- Click Load unpacked → select the
dist/directory - After rebuilds, click the reload icon on the extension card
pnpm typecheck # strict TypeScript check
pnpm lint # ESLint
pnpm format:check # Prettier
pnpm test # Vitest unit tests- TypeScript (strict mode) — zero runtime dependencies
- Vite for bundling
- Vitest for testing
- Chromium Manifest V3 APIs
- Vanilla TS for UI — no frameworks