.. _settings plugins:

=======
Plugins
=======

.. sidebar:: Further reading ..

   - :ref:`plugins admin`
   - :ref:`dev plugin`
   - :ref:`builtin plugins`


The built-in plugins can be activated or deactivated via the settings
(:ref:`settings enabled_plugins`) and external plugins can be integrated into
SearXNG (:ref:`settings external_plugins`).


.. _settings enabled_plugins:

``enabled_plugins:`` (internal)
===============================

In :ref:`plugins admin` you find a complete list of all plugins, the default
configuration looks like:

.. code:: yaml

   enabled_plugins:
     - 'Basic Calculator'
     - 'Hash plugin'
     - 'Self Information'
     - 'Tracker URL remover'
     - 'Unit converter plugin'
     - 'Ahmia blacklist'


.. _settings external_plugins:

``plugins:`` (external)
=======================

SearXNG supports *external plugins* / there is no need to install one, SearXNG
runs out of the box.  But to demonstrate; in the example below we install the
SearXNG plugins from *The Green Web Foundation* `[ref]
<https://www.thegreenwebfoundation.org/news/searching-the-green-web-with-searx/>`__:

.. code:: bash

   $ sudo utils/searxng.sh instance cmd bash -c
   (searxng-pyenv)$ pip install git+https://github.com/return42/tgwf-searx-plugins

In the :ref:`settings.yml` activate the ``plugins:`` section and add module
``only_show_green_results`` from ``tgwf-searx-plugins``.

.. code:: yaml

   plugins:
     - only_show_green_results
     # - mypackage.mymodule.MyPlugin
     # - mypackage.mymodule.MyOtherPlugin

.. hint::

   ``only_show_green_results`` is an old plugin that was still implemented in
   the old style.  There is a legacy treatment for backward compatibility, but
   new plugins should be implemented as a :py:obj:`searx.plugins.Plugin` class.