Kibitzr

automation

Python web monitoring and automation tool configured entirely in YAML. Watch pages for changes, extract data with CSS selectors or scripts, then notify via Slack, email, or a custom action — all from a single config file

#monitoring#web-scraping#automation#yaml#notifications#self-hosted

Quick Start

docker run -v $(pwd)/kibitzr.yml:/opt/kibitzr/kibitzr.yml kibitzr/kibitzr

Overview

Kibitzr is a Python-based web monitoring tool that runs entirely from a YAML configuration file. You define what to fetch, how to transform the result, and where to send notifications. A check might fetch a URL, extract a specific element with a CSS selector, compare it to the last run, and post to Slack if anything changed — all described in a dozen lines of YAML.

The transform pipeline is where Kibitzr’s flexibility shows. Raw HTML or JSON from a fetch can pass through a chain of transformations: CSS selectors, XPath expressions, Python code snippets, Jinja2 templates, and shell scripts. This means you can handle anything from a simple “did this text change” check to extracting a specific data point from a complex API response and formatting it before sending.

Notifications are pluggable. The built-in targets cover Slack, email, Telegram, IFTTT, and arbitrary HTTP endpoints. If you need to send somewhere custom, an HTTP notifier with a JSON body template covers most scenarios. Multiple notifiers can be chained on a single check.

For pages that require JavaScript rendering, Kibitzr supports Selenium with Firefox, but this substantially increases complexity and resource usage. For most monitoring use cases — static pages, JSON APIs, simple HTML extraction — the default HTTP fetch works without a browser.

The limitation is project activity. With 713 GitHub stars and infrequent commits, Kibitzr is functional but not actively maintained. For simple monitoring scenarios it works reliably. For teams wanting active development, a broader community, and a web UI, changedetection.io is a more actively maintained alternative in the same category.

Use Cases

Specific ways to use Kibitzr for your workflow.

01
Monitor a competitor's pricing page and get a Slack alert whenever the content changes
02
Extract a value from a JSON API on a schedule and post it to a dashboard or notification channel
03
Watch a government or regulatory page for updates and trigger an email notification when new content appears
04
Run a custom Python or shell script against a web page's content and route the output to any notification target

Deployment Strategy

Recommended ways to host Kibitzr in your own environment.

docker
self-hosted