Get an alert the moment a price drops or a web page changes
Pick the price you'd pay and your phone buzzes the moment the shop hits it, or the moment a sold-out item is back. changedetection.io runs on your own computer: free, open source, no account.
- Your own page watcher running on your computer, with no account and no monthly fee
- A Windows 11, Mac or Linux computer
- About 400MB of free disk space
- Optional: the free ntfy app on your phone for push alerts. No account needed.
Install changedetection.io
One command installs the whole thing as an app you start from the terminal. No Docker, no admin rights.
changedetection.io is free and open source (Apache-2.0), with about 34,800 stars on GitHub. It visits the pages you give it on a schedule, compares each visit with the last one, and tells you what changed.
We install it with uv, a small tool that sets up Python apps in their own tidy folder. On Windows open PowerShell (search for it in the Start menu); on a Mac or Linux open Terminal. Paste these:
Windows (only if you don't have uv)winget install --id astral-sh.uv -eMac with Homebrew (only if you don't have uv)brew install uvMac / Linux without Homebrew (only if you don't have uv)curl -LsSf https://astral.sh/uv/install.sh | shTerminaluv tool install changedetection.io --python 3.12 --prerelease=allowIf you just installed uv, close the terminal and open a new window before the second line. It pulls in about 170 packages and takes a minute or so. The last line should be:
OutputInstalled 2 executables: changedetection.io, changedetection.pyCarefulDon't leave out--prerelease=allow. The current version needs one test-release package, and without that flag uv quietly installs an old version (0.45.14) that crashes on Python 3.12 withNo module named 'distutils'.
Installed 2 executables: changedetection.io, changedetection.py.If it breaksIt crashes with 'No module named distutils' + 1 more
It crashes with 'No module named distutils'
uv tool uninstall changedetection.io, then the install command above with --prerelease=allow.'changedetection.io' is not recognised
uv tool update-shell, close the terminal, open a new one and try again.