{"full_name":"dgtlmoon/changedetection.io","owner":"dgtlmoon","name":"changedetection.io","url":"https://github.com/dgtlmoon/changedetection.io","description":"Best and simplest tool for website change detection, web page monitoring, and website change alerts. Perfect for tracking content changes, price drops, restock alerts, and website defacement monitoring— MCP included! all for free or enjoy our SaaS plan!","homepage":"https://changedetection.io","topics":[],"language":"Python","license":"Apache-2.0","avatar":"https://avatars.githubusercontent.com/u/275001?u=94abd34c8fa06db18e09f1e6ade5a3f4f1202f9f&v=4","created_at":"2021-01-27T16:03:30Z","pushed_at":"2026-11-10T08:51:38Z","metrics":{"stars":35702,"forks":2230,"watchers":111,"issues":1823,"prs":1808,"releases":227,"issues_open":null,"issues_closed":null,"prs_open":null,"prs_closed":null,"prs_merged":null,"discussions":935},"growth":{"day":{"stars":38,"forks":8,"base_day":"2026-11-09"}},"history":{"dates":["2026-11-09","2026-11-10"],"stars":[35664,35702],"forks":[2222,2230],"watchers":[111,111],"issues_open":[null,null],"prs_open":[null,null]},"boards":{},"same_owner":[],"issues":[{"number":2053,"title":"UI - 304 'Not Modified' cached handling causes some requests to fail, can affect reverse-proxies","comments":40,"created_at":"2023-12-21T11:08:42Z"},{"number":2318,"title":"`'str' object has no attribute '__name__'` error on some xpath filters","comments":37,"created_at":"2024-04-18T16:31:03Z"},{"number":2198,"title":"Improve \"bot-detection\" evasion techniques","comments":33,"created_at":"2024-02-16T11:11:23Z"},{"number":2943,"title":"[feature] Abilty to include headers in the text for changedetection.io - PCI DSS 11.6.1 Compliance: Detecting Unauthorized HTTP Header Changes with Chrome CDP & Changedetection.io","comments":24,"created_at":"2025-02-05T21:05:54Z"},{"number":3831,"title":"Telegram Notifications error for some pages","comments":18,"created_at":"2026-02-03T12:23:03Z"},{"number":2538,"title":"BrightData's Scraping Browser doesn't work (wss protocol not supported)","comments":18,"created_at":"2024-08-01T23:41:20Z"},{"number":3657,"title":"RSS with space add additional blank output that brings to horizontal scroll","comments":17,"created_at":"2025-11-26T10:04:33Z"},{"number":1678,"title":"[feature] Notification for all types of errors (or every time a check has failed)","comments":17,"created_at":"2023-07-06T01:15:12Z"}],"discussions":[{"number":4696,"title":"Proposal: Watch health states + rules (replacing ad-hoc failure counters)","comments":0,"category":"Ideas","created_at":"2026-11-07T11:52:41Z"},{"number":4631,"title":"Onetrust - with Global Filters","comments":1,"category":"General","created_at":"2026-10-30T08:41:50Z"},{"number":4576,"title":"Local ollama doesn't work","comments":3,"category":"General","created_at":"2026-10-21T13:34:32Z"},{"number":4567,"title":"PLACEMARKER in Discord notifications","comments":4,"category":"Q&A","created_at":"2026-10-16T20:54:57Z"},{"number":4499,"title":"Display user‑defined selector values on the main watch dashboard","comments":0,"category":"Ideas","created_at":"2026-09-30T03:59:34Z"},{"number":4478,"title":"价格百分比变动批量更改","comments":0,"category":"Ideas","created_at":"2026-09-23T03:09:59Z"},{"number":4468,"title":"chould you ple add the time between checks for every group.","comments":1,"category":"Ideas","created_at":"2026-09-20T08:20:36Z"},{"number":4465,"title":"How to get notified by email?","comments":3,"category":"Q&A","created_at":"2026-09-19T19:34:34Z"}],"latest_release":{"name":"0.70.2","tag":"0.70.2","published_at":"2026-11-05T22:55:35Z","body":"## What's Changed\r\n* MCP - \"MCP Note\" sub-tab, set what assistants are told when they connect by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4670\r\n* MCP - More monitor settings, test notifications, word diffs, and permission rows for notifications and browser steps by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4669\r\n* MCP OAuth - Claude Code can sign in: loopback redirect URIs match on any port (RFC 8252 7.3) by @kris-anderson in https://github.com/dgtlmoon/changedetection.io/pull/4673\r\n* Clear history - don't fail when a save renames its .tmp file away mid-clear by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4674\r\n* MCP - \"Public MCP address\" setting, separate from the notification Base URL by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4676\r\n* gitignore: local AI configs to avoid credential leaks by @skkzsh in https://github.com/dgtlmoon/changedetection.io/pull/4677\r\n* Fix two races behind flaky tests: favicon cache, and a new monitor queued twice by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4681\r\n* CI - Third-party licence list: regenerate weekly and on release, drift is only a warning on PRs by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4684\r\n* MCP - Clearer tool descriptions (list_tags, list_notifications, notification_services, restock_status, limit/offset) by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4678\r\n* MCP plugins - their own permission rows, a tool 'area', and open_world by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4679\r\n* MCP - \"Allow read-only access without sign-in\" setting, for public demos by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4680\r\n* AI settings - saving no longer switches off checkboxes the page didn't show by @kris-anderson in https://github.com/dgtlmoon/changedetection.io/pull/4683\r\n* AI settings - API key field could not be typed in by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4687\r\n* API - Watch list and search show each watch's paused and notification_muted by @dgtlmoon in https://github.com/dgtlmoon/changedetection.io/pull/4686\r\n\r\n## New Contributors\r\n* @kris-anderson made their first contribution in https://github.com/dgtlmoon/changedetection.io/pull/4673\r\n\r\n**Full Changelog**: https://github.com/dgtlmoon/changedetection.io/compare/0.70.1...0.70.2"},"readme":true,"readme_zh":false,"news":[],"stale":false,"snapshot_at":"2026-11-10T09:35:25Z","history_start":"2026-09-06"}