inotify
An adapter to Linux kernel support for inotify directory-watching.
Decision gist · record as of 2026-08-14
Yes, if your application runs on Linux and needs efficient file-system event monitoring. The low install friction, lack of known vulnerabilities, and straightforward generator-based API make it a solid choice for the task. The GPL 2 copyleft license is a hard blocker for proprietary software; open-source projects under compatible licenses should evaluate the aging maintenance status (403 days since last release) and confirm Python version compatibility before committing.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Linux kernel only; inotify is not available on macOS, Windows, or other non-Linux systems.
- Low friction pure-Python wheel.
- Maintenance status is aging—last release was 403 days ago—but the repository remains active and unarchived with modest community interest (261 stars).
License · maintenance · safety
GPL 2 (copyleft) — GPL 2 copyleft license. Any application that links this library must be distributed under GPL 2 or a compatible copyleft license; proprietary or permissively-licensed projects cannot use it without legal review.
last release 2025-07-07 (403 days) · last repo commit 2025-07-07 · 261 stars
0 known vulnerabilities (OSV.dev, 2026-08-14) · 393,132 downloads/mo, #7,000 on PyPI
Alternatives
Verify before relying
import inotify.adapters
i = inotify.adapters.Inotify()
i.add_watch('/tmp')
for event in i.event_gen(yield_nones=False):
(_, type_names, path, filename) = event
print(f"PATH=[{path}] FILENAME=[{filename}] EVENT_TYPES={type_names}")- Whether the aging maintenance status (403 days since last release) indicates active stewardship or dormancy risk.
- Python version compatibility—requires_python is unspecified; unclear which Python versions are actually supported.
What it is and what it does
inotify is a Python adapter to the Linux kernel's inotify subsystem, which lets you register directories and receive notifications when files or subdirectories change, create, or delete. Instead of polling directories repeatedly, your code blocks and waits for kernel events, making it far more efficient for file-watching tasks. The library presents events as a generator—you loop through them one at a time, with optional timeouts between cycles, and can optionally receive None values to perform other work between event batches.
The package supports both flat directory watching (via Inotify) and recursive tree watching (via InotifyTree), which automatically manages watches on child directories as they are created. It uses epoll internally to audit kernel events and has been designed to handle Python 3 string/bytes conversions transparently. The library is Linux-only and requires kernel version 2.6 or later.
Use it for
- Monitor a directory for file uploads or changes and trigger processing pipelines when new files arrive.
- Watch a configuration directory and reload application settings when files are modified.
- Implement a recursive directory watcher to track all file system events in a project tree for backup or sync tools.
- Build a file-system-driven event loop where inotify events drive application logic rather than a timer.
- Detect when log files are rotated or new logs appear and react without polling.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if your application runs on Linux and needs efficient file-system event monitoring.
The low install friction, lack of known vulnerabilities, and straightforward generator-based API make it a solid choice for the task. The GPL 2 copyleft license is a hard blocker for proprietary software; open-source projects under compatible licenses should evaluate the aging maintenance status (403 days since last release) and confirm Python version compatibility before committing.
Install
inotify on PyPI
Before you install
Low friction pure-Python wheel. Maintenance status is aging—last release was 403 days ago—but the repository remains active and unarchived with modest community interest (261 stars).
Linux kernel only; inotify is not available on macOS, Windows, or other non-Linux systems.
License in practice
GPL 2 copyleft license. Any application that links this library must be distributed under GPL 2 or a compatible copyleft license; proprietary or permissively-licensed projects cannot use it without legal review.
Quickstart
import inotify.adapters
i = inotify.adapters.Inotify()
i.add_watch('/tmp')
for event in i.event_gen(yield_nones=False):
(_, type_names, path, filename) = event
print(f"PATH=[{path}] FILENAME=[{filename}] EVENT_TYPES={type_names}")
Verify before relying
- Whether the aging maintenance status (403 days since last release) indicates active stewardship or dormancy risk.
- Python version compatibility—requires_python is unspecified; unclear which Python versions are actually supported.
Package facts
| License | GPL 2 copyleft |
| Python support | Not specified |
| Install friction | Low. Pure-Python wheel |
| Runtime dependencies | 1 packagebuild |
| Maintenance | Aging 403 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 393,132 / month, #7,000 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
Evidence: inotify-0.2.12-py2.py3-none-any.whl
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “inotify directory watching”
- inotifyWraps Linux kernel inotify to watch directories for file system…
- asyncinotifyProvides async and sync Python bindings to Linux inotify for…
- pywatchmanpywatchman is a Python client for Watchman, a file watching service…
Give your agent the search over MCP, or paste the wish link into any chat.
More Monitoring packages
Wraps any iterable to display a real-time progress bar in the terminal or Jupyter notebook, showing iteration count, elapsed time, and estimated time remaining.
Provides generated Python code for OpenTelemetry semantic conventions, enabling standardized attribute naming and constant definitions for instrumentation and telemetry collection.
Install it if you are using OpenTelemetry and want to follow semantic conventions correctly.
Provides the reference implementation of the OpenTelemetry API for collecting and exporting traces, metrics, and logs from Python applications.
Provides the abstract API and interfaces for OpenTelemetry instrumentation in Python, defining how to emit traces, metrics, and logs without tying code to a specific SDK implementation.
Exports OpenTelemetry observability data to an OpenTelemetry Collector using Protobuf-encoded messages over HTTP.
Install it if you are using OpenTelemetry in Python and need to send data to a Collector over HTTP.
Provides automatic instrumentation commands and programmatic APIs to inject distributed tracing into Python applications without code changes, detecting and instrumenting packages used by your program.
Install it if you need distributed tracing without code changes and have compatible instrumented packages in your environment.
See also inotify-simple · pyinotify · asyncinotify · watchdog · watchgod · watchfiles · pywatchman · django-watchfiles · dirsql · memory-tempfile