Skip to main content

Zero-Code automatic notifications for long-running Python scripts.

Project description

pynotify-auto

Smart, effortless notifications for your Python scripts.

Stay informed on your desktop or your phone, without changing a single line of code.


🌐 VIEW LIVE DOCUMENTATION & SETUP GUIDE


Documentation PyPI version Supported OS Python Versions License: MIT

Why use this?

Traditional notification libraries require you to manually add decorators or extra lines of code to every script. pynotify-auto is different: it works automatically for every script in your environment.

  • Desktop + Mobile: Get native popups on your computer and real-time snapshots on your phone (Ntfy/Telegram).
  • Cross-Platform: Full support for Windows (Toast), macOS (Notification Center), and Linux (Libnotify).
  • Zero-Code Integration: Install once, and it works for all your scripts globally.
  • Smart Filtering: It stays quiet for quick tasks and only alerts you for the ones that actually take time.

Features

  • Zero-Code Integration: Works automatically across your entire system/environment.
  • Smart Thresholding: Only pings if the script ran for a meaningful amount of time (default > 5s).
  • Cross-Platform: Works on Windows, macOS, and Linux.
  • Configurable: Change the threshold or disable it via environment variables.

Installation

Via Pip

pip install pynotify-auto

[!IMPORTANT] Activation Step: Due to how modern Python environments (Conda, venv) handle installation, you may need to manually enable the zero-code hook once after installation:

pynotify-auto --enable

This ensures that pynotify-auto can monitor your scripts automatically. You can check the status at any time with pynotify-auto --info.

📱 Remote Notifications (Phone/Mobile)

pynotify-auto can track your script's progress and send real-time updates to your phone. It supports Ntfy.sh and Telegram.

Interactive Configuration

The easiest way to configure remote alerts is using the built-in wizard:

pynotify-auto --config

This interactive guide will help you choose your service and enter your credentials. It even remembers your settings so you can update them later by just pressing Enter.

Supported Backends

Service Setup Effort Benefits
Ntfy.sh ⭐ (Zero Signup) No account needed, lightweight, instant setup.
Telegram ⭐⭐ (Create Bot) Private, persistent history, premium formatting.

Setting up Ntfy.sh

  1. Install the Ntfy app on your phone.
  2. Subscribe to a unique topic name (e.g., my_script_alerts).
  3. Run pynotify-auto --config, choose ntfy, and enter that topic name.

Setting up Telegram

  1. Message @BotFather on Telegram to create a new bot and get your API Token.
  2. Message @userinfobot to get your Chat ID.
  3. Run pynotify-auto --config, choose telegram, and enter your Token and Chat ID.

⏳ Real-Time Progress Tracking

Once enabled, pynotify-auto will automatically:

  • Ping your phone every 30 minutes (configurable) with a snapshot of your logs.
  • Notify you immediately if the script crashes with the error traceback.
  • Notify you when the script finishes successfully.

⚙️ Advanced Configuration

All settings are stored in ~/.pynotify.json. You can also override them using environment variables:

Setting JSON Key Env Variable Default
Threshold threshold PYNOTIFY_THRESHOLD 5.0 (sec)
Progress Interval progress_interval_minutes PYNOTIFY_PROGRESS_INTERVAL 30 (min)
Log History log_lines PYNOTIFY_LOG_LINES 10
Backend remote_backend PYNOTIFY_REMOTE_BACKEND None
Ntfy Topic ntfy_topic `PYNOTIFY_NTFY_TOPIC" None
Telegram Token telegram_bot_token PYNOTIFY_TELEGRAM_TOKEN None
Telegram Chat ID telegram_chat_id PYNOTIFY_TELEGRAM_CHAT_ID None

The "Zero-Code" progress tracker automatically intercepts your script's output (stdout and stderr). It captures print() statements, standard logging, and even crash tracebacks without requiring any changes to your code.

🤝 Used By

Are you using pynotify-auto in your project? We'd love to feature you here! Open a PR to add your project to the list.

License

MIT

Contributing

I'm open to contributions! Feel free to fork the repo and open a PR if you have bug fixes or new notification backends (Slack, Discord, etc.) you'd like to add.

Check the comprehensive test suite for examples on how to run tests locally.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pynotify_auto-0.4.7.tar.gz (16.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

pynotify_auto-0.4.7-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file pynotify_auto-0.4.7.tar.gz.

File metadata

  • Download URL: pynotify_auto-0.4.7.tar.gz
  • Upload date:
  • Size: 16.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pynotify_auto-0.4.7.tar.gz
Algorithm Hash digest
SHA256 8bcc4b7b601dece277f0caadf9ad5527d21bab8df3f50f5ba3595aa6364951a2
MD5 b2f3a7877ecb6c850095f2bc72da8024
BLAKE2b-256 099356b25290ce7b3bfea740e32ed950b050910589683742eed83d09dc9193b7

See more details on using hashes here.

File details

Details for the file pynotify_auto-0.4.7-py3-none-any.whl.

File metadata

  • Download URL: pynotify_auto-0.4.7-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for pynotify_auto-0.4.7-py3-none-any.whl
Algorithm Hash digest
SHA256 ffc81058be11663267db81a0e591f71ee0ed7d4d76bdddc5b0078ad53ace06b5
MD5 6e29ce6d2ac0ff5d37f750ffaaa7d29f
BLAKE2b-256 b3f5472163be9a37124f9d71de453479bb5a7d4e3cd4119e3889808baefb45ab

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page