hupper
Integrated process monitor for developing and reloading daemons.
What it is and what it does
Hupper is a process monitor designed for development workflows that automatically detects changes to imported Python files and restarts the process. It tracks all modules in sys.modules plus any custom paths you specify, making it useful for iterative development where you want code changes to take effect immediately without manual restarts.
You can use it either from the command line (hupper -m myapp) or programmatically by calling start_reloader() with an importable entry point. The reloader runs as a parent process that monitors file changes and spawns child processes to run your code, allowing you to add extra files to watch via the watch_files() method. It has no runtime dependencies and supports modern Python versions from 3.7 onward.
Use it for:
- Developing web applications where you want the server to reload automatically when you edit source files.
- Running long-lived daemons during development and having them pick up code changes without manual restarts.
- Monitoring configuration files alongside Python source and triggering restarts when either changes.
- Building development scripts that need to reload when dependencies or imported modules are modified.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Hupper monitors Python source files for changes and automatically restarts the process when files are modified, supporting both command-line and programmatic usage patterns.
Yes. Hupper is a stable, actively maintained tool with no dependencies and broad Python version support. It solves a genuine development friction point—automatic process restart on file changes—and is lightweight enough to add to any development workflow. No known security issues.
Install
hupper on PyPI
pip
pip install hupperuv
uv add hupperpoetry
poetry add hupperInstalling hupper
Before you install
Low friction installation with no runtime dependencies. The package is actively maintained with recent commits and supports Python 3.7 through 3.12, including PyPy.
License in practice
MIT license permits use in commercial and private projects with minimal restrictions; attribution required.
Quickstart
pip install hupper
import hupper
reloader = hupper.start_reloader('myapp.scripts.serve.main')
reloader.watch_files(['foo.ini'])
Entry point must be an importable string path; the reloader only returns in a monitored subprocess.
Verify before relying
- Whether watch_files() supports glob patterns or directory recursion beyond explicit file paths.
- Performance characteristics when monitoring large numbers of files or deep directory structures.
Package facts
| License | MIT (permissive) |
| Python support | supports the current Python release (>=3.7) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 931 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,877,176/month — #2,847 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: hupper-1.12.1-py3-none-any.whl
Keywords: server, daemon, autoreload, reloader, hup, file, watch, process
Tags
More Monitoring packages
Wraps any iterable to display a real-time…
copyleft · top 100 on PyPI
opentelemetry-semantic-conventionsProvides generated Python code for…
permissive · top 100 on PyPI
opentelemetry-sdkProvides the reference implementation of the…
permissive · top 100 on PyPI
opentelemetry-apiProvides the abstract API and interfaces for…
permissive · top 100 on PyPI
opentelemetry-exporter-otlp-proto-httpExports OpenTelemetry observability data to an…
permissive · top 1,000 on PyPI
opentelemetry-instrumentationProvides automatic instrumentation commands and…
permissive · top 1,000 on PyPI
watchgodWatches a directory for file changes and…
permissive · top 15,000 on PyPI
setproctitleAllows a Python process to change its own title…
permissive · top 1,000 on PyPI
pyinotifyMonitors Linux filesystem events (file…
permissive · top 5,000 on PyPI
httpwatcherhttpwatcher is a simple HTTP server and library…
permissive · top 15,000 on PyPI
watchfilesWatches file system changes and triggers…
permissive · top 1,000 on PyPI
pywatchmanpywatchman is a Python client for Watchman, a…
permissive · top 15,000 on PyPI
pytest-watcherAutomatically reruns pytest (or another test…
permissive · top 5,000 on PyPI
aiousbwatcherWatches for USB devices being plugged in and…
permissive · top 15,000 on PyPI
jupyter-server-fileidA Jupyter Server extension that provides a File…
permissive · top 5,000 on PyPI
uwsgitopA terminal monitoring tool that connects to…
permissive · top 15,000 on PyPI