Searxng Privacy Plugins banner
joestump joestump

Searxng Privacy Plugins

Development community

Description

A collection of plugins to further enhance the privacy experience of SearXNG

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

SearXNG Privacy Plugins

Overview

This is a collection of plugins for [SearXNG](https://docs.searxng.org/) with a focus on further enhancing the privacy and readability of the results returned by the search engine.

Plugins

  • `hello_world` – A simple example plugin. Logs what's passed to the plugin hooks.
  • `url_rewrite` – A plugin that enables rewriting URLs from search results based on regular expressions. Can proxy URLs through privacy-preserving services, block unwanted domains, and adjust result priorities.

Installation

Create a Docker Container

Installing the plugin on Docker requires building a container:

FROM docker.io/searxng/searxng:latest

RUN apk add --no-cache -t build-dependencies \
    git

RUN pip3 install --break-system-packages --no-cache git+https://github.com/joestump/searxng-privacy-plugins

Enable Plugins in `settings.yml`

plugins:
  - hello_world # For debug/testing only.
  - url_rewrite

Configuration

`url_rewrite`

The URL rewrite plugin allows you to modify search result URLs using regular expressions. Each rule can:

  • Rewrite URLs to proxy them through privacy-preserving services
  • Remove results from specific domains
  • Adjust the priority of matching results
  • Optionally preserve the original parsed URL
url_rewrite:
  rules:
    - pattern: '^(?Phttps://(.*\.)?cnn\.com/.*)$'
      repl: 'https://reader.example.com/?url=\g'
    - pattern: '^https?://(?:www\.)?facebook\.com/.*'
      repl: false  # Removes matching results
    - pattern: '^(?Phttps://news\.example\.com/.*)$'
      repl: 'https://proxy.example.com/?url=\g'
      priority: high  # Increases result priority
    - pattern: '^(?Phttps://tracking\.evil\.com/.*)$'
      repl: 'https://clean-proxy.example.com/?url=\g'
      replace_url: false  # Preserves original parsed URL

Configuration options for each rule:

  • pattern: Regular expressio