# Dependencies

Mandatory requirements are required to run urlwatch. Depending on what optional features you want to use, you might also need to install additional packages – however, those are not needed to run urlwatch.

## Mandatory Packages

- Python 3.8 or newer

- PyYAML

- minidb

- requests

- keyring

- platformdirs

- lxml

- cssselect

The dependencies can be installed with (add `--user` to install to `$HOME`):

    python3 -m pip install pyyaml minidb requests keyring platformdirs lxml cssselect

## Optional Packages

Optional packages can be installed using:

    python3 -m pip install <packagename>

Where `<packagename>` is one of the following:

Feature | Python package(s) to install
--- | ---
Pushover reporter | chump
Pushbullet reporter | pushbullet.py
Matrix reporter | matrix_client and markdown2
stdout reporter with color on Windows | colorama
browser job kind | playwright (since version 2.28)
Unit testing | pycodestyle, docutils,
Documentation build | Sphinx
beautify filter | beautifulsoup4; optional dependencies (for `<script>` and `<style>` tags): jsbeautifier and cssbeautifier
html2text filter with method: bs4 | beautifulsoup4
pdf2text filter | pdftotext and its OS-specific dependencies (see the above link)
ocr filter | pytesseract and Pillow and Tesseract OCR)
XMPP reporter | aioxmpp
jq filter | jq