MCPcopy
hub / github.com/irbis-sh/zen-desktop

github.com/irbis-sh/zen-desktop @v0.24.0 sqlite

repository ↗ · DeepWiki ↗ · release v0.24.0 ↗
1,970 symbols 6,212 edges 307 files 260 documented · 13%
README
<img src="https://github.com/irbis-sh/zen-desktop/blob/master/assets/appicon.png?raw=true" alt="Zen's Blue Shield Logo" width="150" />

Zen: Your Comprehensive Ad-Blocker and Privacy Guard

There is, simply, no way, to ignore privacy. Because a citizenry’s freedoms are interdependent, to surrender your own privacy is really to surrender everyone’s. Edward Snowden, Permanent Record

GitHub License GitHub release GitHub download counter

WebsiteMastodonBlueskyDiscordDocumentation

Zen is an open-source system-wide ad-blocker and privacy guard for Windows, macOS, and Linux. It works by setting up a proxy that intercepts HTTP requests from all applications, and blocks those serving ads, tracking scripts that monitor your behavior, malware, and other unwanted content. By operating at the system level, Zen can protect against threats that browser extensions cannot, such as trackers embedded in desktop applications and operating system components. Zen comes with many pre-installed filters, but also allows you to easily add hosts files and EasyList-style filters, enabling you to tailor your protection to your specific needs.

Downloads

During the first run, Zen will prompt you to install a root certificate. This is required for Zen to be able to intercept and modify HTTPS requests. This certificate is generated locally and never leaves your device. For details on how this works and the steps we take to secure it, see our security architecture.

Windows

Unsure which version to download? Click on 'Start' and type 'View processor info'. The 'System type' field under 'Device specifications' will tell you which one you need.

Winget

Zen is available via Winget (Windows Package Manager). To install, run:

winget install ZenPrivacy.ZenDesktop

macOS

Unsure which version to download? Learn at Apple's website.

🍺 Homebrew

Zen is available via Homebrew for both Intel and Apple Silicon. To install it, run:

brew install --cask zen-privacy

Linux

On Linux, automatic proxy configuration is currently only supported on GNOME- and KDE-based desktop environments.

Screenshots

Request history Filter list manager
Request history shows all requests blocked by Zen. Each request can be inspected to see which filter and rule blocked it. Zen comes with many pre-installed filters. You can also add your own by providing a URL to a hosts file or an EasyList-style filter.
Screenshot of Zen's Home screen showing blocked network requests. One entry details a blocked request to a Marketo tracking script from politico.com, with several other advertising and analytics domains listed below. Navigation tabs and a Donate button appear at the top, and a blue Stop button is visible at the bottom. Screenshot of Zen's Filter lists screen showing a regional category with multiple ad-block filter lists from different countries. Each list includes a name, a source URL, and toggle switches indicating whether it is enabled.

Development

Follow the getting started guide to begin working on Zen development. If you have any questions, feel free to ask in the Discussions.

Contributing

Zen needs your help! You can report bugs, suggest and implement features, improve the codebase, or help translate Zen into your language. Please refer to the Contributing Guidelines for more information.

Special Thanks

Zen exists thanks to the support of many incredible people and organizations, including:

License

This project is licensed under the MIT License. Some code and assets included with Zen are licensed under different terms. For more information, see the COPYING file.

Extension points exported contracts — how you extend this code

Modifier (Interface)
Modifier is a Modifier of a rule. [10 implementers]
internal/networkrules/rulemodifiers/rulemodifiers.go
Step (Interface)
(no doc) [38 implementers]
jslibs/extended-css/src/parse/types.ts
ShouldProxyFunc (FuncType)
ShouldProxyFunc should report whether requests from processPath should be handled by the proxy. Returning false makes th
internal/proxy/proxy.go
CAStatusManager (Interface)
(no doc) [1 implementers]
internal/certstore/diskcertstore.go
ExtendedXHR (Interface)
(no doc)
jslibs/scriptlets/src/prevent-xhr.ts
Position (Interface)
(no doc)
frontend/wailsjs/runtime/runtime.d.ts
Props (Interface)
(no doc)
frontend/src/ErrorBoundary.tsx
ShouldProxyFunc (FuncType)
(no doc)
internal/sysproxy/manager.go

Core symbols most depended-on inside this repo

t
called by 228
internal/asset/scriptlet/bundle.js
e
called by 115
internal/asset/scriptlet/bundle.js
push
called by 113
internal/asset/extendedcss/bundle.js
e
called by 112
internal/asset/extendedcss/bundle.js
t
called by 108
internal/asset/extendedcss/bundle.js
charCodeAt
called by 107
internal/asset/extendedcss/bundle.js
n
called by 97
internal/asset/extendedcss/bundle.js
Get
called by 83
internal/filter/filter.go

Shape

Function 1,131
Method 590
Class 90
Struct 85
Interface 49
TypeAlias 17
Enum 6
FuncType 2

Languages

TypeScript60%
Go40%

Modules by API surface

internal/asset/extendedcss/bundle.js564 symbols
internal/asset/scriptlet/bundle.js170 symbols
frontend/wailsjs/runtime/runtime.js53 symbols
internal/config/config.go40 symbols
internal/systray/systray_internal_windows.go35 symbols
internal/filter/filter.go29 symbols
frontend/wailsjs/go/config/Config.js29 symbols
internal/proxy/proxy.go27 symbols
jslibs/extended-css/src/parse/selectorList/tokenize.ts19 symbols
internal/selfupdate/selfupdate.go19 symbols
internal/systray/systray_windows.go17 symbols
jslibs/extended-css/src/engine/index.ts15 symbols

Dependencies from manifests, versioned

github.com/andybalholm/brotliv1.2.0 · 1×
github.com/bep/debouncev1.2.1 · 1×
github.com/blang/semverv3.5.1+incompatible · 1×
github.com/getlantern/byteexecv0.0.0-2022090314295 · 1×
github.com/getlantern/contextv0.0.0-2022041819484 · 1×
github.com/getlantern/elevatev0.0.0-2022090314205 · 1×
github.com/getlantern/errorsv1.0.3 · 1×
github.com/getlantern/filepersistv0.0.0-2021090119565 · 1×
github.com/getlantern/gologv0.0.0-2023050315381 · 1×
github.com/getlantern/hexv0.0.0-2022010417324 · 1×
github.com/getlantern/hiddenv0.0.0-2022010417333 · 1×
github.com/getlantern/opsv0.0.0-2023051922184 · 1×

For agents

$ claude mcp add zen-desktop \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact