skillfed

watchfiles

Simple, modern and high performance file watching and code reload in python.

watchfiles Permissive license MIT Active 2,522 v1.2.0 released

Install

watchfiles on PyPI

pip

pip install watchfiles

uv

uv add watchfiles

poetry

poetry add watchfiles

Package facts

License MIT (permissive)
Python support supports the current Python release (>=3.10)
Install friction medium — platform-specific wheel
Runtime dependencies 1 — anyio
Maintenance actively maintained — 87 days since the last release
Last repo commit
First released
Popularity one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13)
Known vulnerabilities none known (OSV.dev, checked 2026-08-13)

Evidence: watchfiles-1.2.0-cp310-cp310-macosx_10_12_x86_64.whl; watchfiles-1.2.0-cp310-cp310-macosx_11_0_arm64.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl; watchfiles-1.2.0-cp310-cp310-manylinux_2_31_riscv64.whl; watchfiles-1.2.0-cp310-cp310-musllinux_1_1_aarch64.whl; watchfiles-1.2.0-cp310-cp310-musllinux_1_1_x86_64.whl; watchfiles-1.2.0-cp310-cp310-win32.whl; watchfiles-1.2.0-cp310-cp310-win_amd64.whl; watchfiles-1.2.0-cp311-cp311-macosx_10_12_x86_64.whl; watchfiles-1.2.0-cp311-cp311-macosx_11_0_arm64.whl; watchfiles-1.2.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl; watchfiles-1.2.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl; watchfiles-1.2.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl; watchfiles-1.2.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl; watchfiles-1.2.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl

Development Status :: 5 - Production/StableEnvironment :: ConsoleEnvironment :: MacOS XFramework :: AnyIOIntended Audience :: DevelopersIntended Audience :: Information TechnologyIntended Audience :: System AdministratorsLicense :: OSI Approved :: MIT LicenseOperating System :: MacOSOperating System :: Microsoft :: WindowsOperating System :: POSIX :: LinuxProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3 :: OnlyProgramming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Programming Language :: Python :: 3.15Topic :: Software Development :: Libraries :: Python ModulesTopic :: System :: Filesystems

About watchfiles

from the package's own PyPI description — quoted content, verbatim

watchfiles

CI (image) Coverage (image) pypi (image) CondaForge (image) license (image)

Simple, modern and high performance file watching and code reload in python.


Documentation: watchfiles.helpmanual.io

Source Code: github.com/samuelcolvin/watchfiles


Underlying file system notifications are handled by the Notify rust library.

This package was previously named "watchgod", see the migration guide for more...

Read as markdown · JSON record · Source repository · Homepage · Docs

AI interpretation — verify before relying

AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page

watchfiles provides high-performance file system monitoring and automatic code reloading for Python applications, using the Notify Rust library for efficient file change detection across platforms.

Medium install friction due to compiled Rust bindings, but pre-built wheels are available for most common architectures (x86_64, ARM, etc.) on Linux, macOS, and Windows. The package is actively maintained with recent releases and depends only on anyio, keeping the dependency tree minimal.

Licensed under MIT (permissive), allowing use in both open-source and commercial projects with minimal restrictions.

Usage

pip install watchfiles

from watchfiles import watch

for changes in watch('./path/to/dir'):
    print(changes)

Requires Python 3.10 or later; if pre-built wheels are unavailable for your platform, Rust stable must be installed to build from source.

Verdict: watchfiles is a production-ready, actively maintained file watcher with strong platform coverage and no known vulnerabilities. The medium install friction is justified by its Rust-backed performance and is mitigated by comprehensive pre-built wheel availability. Suitable for development tools, auto-reload systems, and file monitoring tasks where performance matters.

Needs verification

  • Whether the Rust dependency is automatically handled during installation on platforms without pre-built wheels
  • Performance characteristics compared to pure-Python alternatives in typical use cases
file system watcher pythonautomatic code reload on file changefile change detectionpython file monitoringwatch directory for changeshot reload developmentfilesystem event listener

Similar packages