How it actually works.

The homepage gives you the headlines. This page gives you the architecture — how tracker blocking runs at the network layer and what zero telemetry means in practice.

Blocked before the first byte leaves your machine.

Most browsers delegate ad blocking to extensions that run inside the page renderer — they intercept requests after the browser has already resolved DNS and opened a connection. Kairon does the opposite.

The blocker sits inside Electron's session.webRequest layer, which fires before any network I/O happens. When you navigate to a URL, Kairon's filter engine evaluates every sub-resource request — images, scripts, fonts, XHR calls, WebSocket upgrades — against a compiled rule set derived from EasyList and uBlock Origin's filter lists. Matching requests are cancelled at the onBeforeRequest hook; no TCP connection is opened, no DNS lookup fires, no bytes transfer.

  • Rule compilation at startup — filter lists are compiled from EasyList and EasyPrivacy into a binary decision tree on first launch and cached.
  • Resilient fallback logic — requests are intercepted using native C++ hooks for maximum performance, with a seamlessly integrated JavaScript fallback that activates only if the native engine fails to attach, ensuring blocking never silently fails.
  • Cosmetic filtering — after a page loads, a separate CSS injection step hides filter-matched DOM nodes that slipped through (e.g. server-rendered ad placeholders).
  • No extension overhead — because blocking runs natively in the main process rather than in a content script, it adds zero extension memory to the renderer.

Request lifecycle

1 Navigation request fired
2 onBeforeRequest hook fires
3 Filter engine evaluates URL
BLOCK → cancel(), no connection opened
PASS → DNS resolves, connection opens
0
TCP connections opened for blocked trackers
Native
C++ interception with reliable JS fallback
Analytics SDKs

No Mixpanel, Amplitude, Segment, or Google Analytics bundled in the app binary.

Crash reporter endpoints

Electron's built-in crashReporter module is not initialised. Crashes stay local.

Update ping-backs

The updater checks a static latest.json on Vercel — no unique device ID is sent, no version history logged.

Feature-flag fetches

No remote config pulls that could carry an install identifier back to a server.

Safe Browsing look-ups

Chromium's Safe Browsing is opt-in only. By default no URLs leave the app for reputation checks.

Download counter (optional, one-way)

The install count on the homepage increments via a server-side counter. No client ID, no session data, no return payload beyond the count itself.

Not "privacy-respecting" telemetry. Zero.

Many browsers advertise privacy while still phoning home — for crash reports, update checks carrying a device fingerprint, or anonymised-but-aggregated usage pings. Kairon's telemetry policy is simpler: there are no outbound calls from the app that aren't initiated directly by user navigation.

You can verify this yourself. Run Kairon with a local proxy (e.g. Charles Proxy or mitmproxy) and filter for traffic from the app process rather than pages you've loaded. You'll see nothing unexpected. The source is open; the network calls are enumerable.

Everything that normally requires a server — preferences, history, session state, bookmarks — is stored exclusively in Electron's userData directory on your local drive. It never leaves your machine unless you move the folder yourself.

Private browsing (In Development)

The architecture and implementation details for private browsing mode are currently being finalized. This section will be updated with exact technical specifications once the feature is complete and verified.

Minimal UI — why less is a design decision

The Kairon interface strips the chrome to what navigation actually requires: an address bar and tabs. There are no bookmark bars enabled by default, no extensions toolbar slots, no visual noise from feature discoverability prompts. The assumption is that you know what you want to do.

  • Custom title bar replaces the OS default for a seamless full-bleed window
  • Tab bar collapses to a single icon when only one tab is open
  • 85MB installer — no bundled media, no preinstalled extensions, no bloat

Coming after Beta 1.0

Features confirmed for the next release cycle, in rough priority order.

Next

macOS & Linux builds

The Electron stack is cross-platform. Windows shipped first to validate the installer pipeline; other platforms follow.

Next

Custom filter list import

Load any EasyList-compatible filter list alongside the defaults. No extension required.

See it running.

85MB. No account. No telemetry. Everything described on this page, ready to verify yourself.

Download Beta 1.0 · Windows

Windows 10, 11 (64-bit) · 85MB · Free forever