A beautiful, easy-to-use desktop application that watches websites for you and plays a sound when something changes. Perfect for tracking price drops, news updates, stock availability, or any website content you care about!
- Beautiful Dashboard - Clean, modern interface that anyone can use
- Multiple Monitors - Watch as many websites as you want at the same time
- One-Click Control - Start, stop, or remove monitors with a single click
- Remembers Everything - Your monitors stay saved even after you close the app
- Whole Page or Specific Parts - Watch entire pages or just the parts you care about
- Three Detection Modes - Choose how to detect changes (simple text, full page, or fast)
- Custom Schedules - Set how often each website should be checked (every minute, hour, etc.)
- Real-Time Status - See exactly what's happening with each monitor
- Light & Dark Themes - Choose the look that suits you best
- Custom Alert Sounds - Use the built-in sound or upload your own
- Text-to-Speech Alerts - Add custom spoken messages when changes are detected
- Edit Job Configurations - Modify monitoring settings anytime without recreating
- Your Settings Saved - Theme and preferences saved automatically
- Configuration History - Quickly reuse previous monitoring setups
- Individual Logs - Each monitor has its own activity history
- Export Logs - Save logs to review later
- Add Notes - Keep track of why you're monitoring each site
- Statistics - See how many changes detected and alerts played
Just one command! Open a terminal/command prompt and type:
pip install web-alertThat's it! The app and all its requirements install automatically. โจ
If you don't have Python yet:
-
Install Python:
- Visit python.org
- Download Python 3.10 or newer
โ ๏ธ Important: During installation, check "Add Python to PATH"
-
Install Web Alert:
pip install web-alert
Want to modify the code? Clone the repository:
git clone https://github.com/Almas-Ali/web-alert.git
cd web-alert
# Using uv (recommended)
uv sync
uv run main.py
# Or with pip
pip install -e .
python main.pyAfter installation, simply run:
web-alertThe dashboard will open with a beautiful purple header and a clean interface.
That's it! No need to navigate to any folder or run Python directly. The web-alert command works from anywhere! ๐
- Click the "+ Add" button in the top right
- A window opens - enter the website URL (e.g.,
https://example.com/product) - Leave other settings as default for now
- Click "Add Job"
- Click the green "โถ Start" button next to your website
- The status will change to "Running" (in green)
- You'll see when it was last checked
- When the website changes, you'll hear an alert sound
- Check the "Logs" to see what changed and when
That's it! ๐
Top Buttons:
- โถ Start - Start monitoring all websites at once
- โธ Stop - Stop all monitoring
- + Add - Add a new website to monitor
For Each Website:
- Green "Start" button - Begin checking this website
- Red "Stop" button - Pause checking (appears when running)
- ๐ Logs button - View activity history and add notes (hover for tooltip)
- โ๏ธ Edit button - Modify job settings without recreating (hover for tooltip)
- ๐๏ธ Remove button - Delete this monitor (hover for tooltip)
Menu Bar:
- File โ Quick access to add/start/stop operations
- View โ Change between Light, Dark, or System theme
- History โ See and reuse previous monitoring setups
Previously monitored something? Load it again instantly:
- While Adding: Click "๐ Load from History" button
- From Menu: Go to History โ View All History
- Click "Add as Job" - All settings restored automatically!
Every website you monitor is saved automatically. No need to remember settings!
These are optional - the defaults work great! But if you want more control:
Choose how to detect changes (default is "text" - recommended for most users):
-
Text Mode โญ (Recommended)
- Watches the actual words on the page
- Ignores design changes, ads, and timestamps
- Perfect for: prices, availability, news articles
-
HTML Mode
- Watches everything including page structure
- Detects even tiny changes
- Perfect for: complete page monitoring
-
Hash Mode
- Super fast checking
- Detects any change at all
- Perfect for: frequent checks, simple pages
How often to check the website:
- Quick checks: 5-10 seconds (careful - don't overload websites!)
- Normal: 60 seconds (1 minute) - good default
- Relaxed: 300 seconds (5 minutes) or more
Tip: Start with 60 seconds and adjust based on how often the site changes.
Want to watch just part of a page? Use CSS selectors:
- Leave empty - Watch the whole page (easiest!)
#price- Watch the price element.stock-status- Watch stock availabilityh1.title- Watch the page title
Don't know CSS? No problem! Just leave it empty to watch everything.
Don't like the default beep?
- Click "Browse" next to Alert Sound
- Pick your own WAV sound file
- Or leave default for the built-in alert
Want to hear a custom message when changes are detected?
- In the "Text-to-Speech Message" field, enter your custom message
- Examples:
- "Alert! The website has changed!"
- "Price drop detected on your item!"
- "New content available!"
- Leave it empty if you only want the sound alert
How it works:
- If TTS message is configured: Only your spoken message plays (no sound)
- If TTS is empty: Regular sound alert plays instead
- They work exclusively to prevent audio overlap
- No additional setup required!
Pro Tips:
- Keep messages short and clear for best results
- The voice uses your system's default text-to-speech engine
- Choose either TTS or sound - they don't play together
Need to change a job's settings? No need to delete and recreate!
- Stop the job if it's running (click the red "Stop" button)
- Click the "โ๏ธ" edit button (hover to see tooltip)
- Modify any settings:
- Change the URL
- Adjust check interval
- Update CSS selector
- Switch detection mode
- Change alert sound
- Update TTS message
- Click "Save Changes"
What you can edit:
- โ Website URL
- โ CSS Selector
- โ Check Interval
- โ Comparison Mode
- โ Alert Sound
- โ TTS Message
- โ Job Notes
Note: Jobs must be stopped before editing to prevent conflicts.
Change the app's appearance to match your preference:
- Click View in the menu bar
- Choose Theme:
- โ๏ธ Light - Bright, clean look
- ๐ Dark - Easy on the eyes
- ๐ป System - Matches your computer's theme
Your choice is saved automatically!
All your data is stored locally on your computer:
- Monitoring settings: Saved in
web_alert_store.db - Activity logs: Saved with each monitor
- Theme preference: Remembered automatically
- Alert sound: Stored in
sounds/folder
Nothing is sent to the internet - everything stays on your computer!
Here are some real-world examples:
- ๐ Track product availability: Know the moment that sold-out item is back in stock
- ๐ฐ Watch prices: Get notified when your favorite product goes on sale
- ๐ Monitor deals: Catch limited-time offers before they expire
- ๐ผ Job postings: Be the first to apply when a new position opens
- ๐ University admissions: Know when results or announcements are posted
- ๐ซ Course registration: Get alerts when spots open up
- ๐ฐ Breaking news: Track updates on topics you care about
- ๐๏ธ Government updates: Monitor official documents or announcements
- ๐ Sports scores: Track game results or league standings
- ๐ฎ Game servers: Check if your favorite server is online
- ๐ฑ App updates: Know when a new version is released
- ๐ Website changes: Track updates to any webpage you're interested in
The possibilities are endless! If it's on the web, you can monitor it.
- Total changes detected
- Total alerts played
- Active URL being monitored
- Price Monitoring: Track price changes on e-commerce sites
- News Updates: Get alerted when news sites publish new articles
- Product Availability: Monitor "Out of Stock" to "In Stock" changes
- Content Updates: Track blog posts or website content changes
- API Status Pages: Monitor service status dashboards
- Competition Tracking: Watch competitor website updates
- โฑ๏ธ Start with 60 seconds - Don't check too often or websites might block you
- ๐ฏ Watch specific parts - Use CSS selectors to avoid false alarms from ads
- ๐ Test your alert - Click "Test Sound" before you start monitoring
- ๐พ Use History - Save configs for websites you check often
- ๐ Use Text mode - Ignores changing ads and timestamps
- Don't set intervals too short (under 30 seconds)
- Respect websites by not overloading them
- Some websites might block frequent checks
To run this app, you need:
- Operating System: Windows (7, 10, or 11)
- Python: Version 3.10 or newer
- Internet: Active connection to check websites
- Sound: Speakers or headphones for alerts (or use TTS instead)
Solutions:
- โ Make sure your computer sound is turned on
- โ Check if you configured TTS message (it replaces sound)
- โ Try using TTS message instead of sound alert
- โ Try using the default alert (leave sound path empty)
- โ Check if your speakers/headphones are connected
Solutions:
- โ Switch to Text Mode (ignores ads and animations)
- โ Use a CSS selector to watch just the part you care about
- โ Some websites have timestamps that change constantly
Solutions:
- โ Check if the website opens in your web browser
- โ Try increasing the check interval (60 seconds)
- โ Make sure your CSS selector is correct (or leave it empty)
- โ Try switching to HTML Mode for more sensitive detection
Solutions:
- โ Make sure Python is installed correctly
- โ
Run
uv syncagain to install dependencies - โ Check if your antivirus is blocking it
Solutions:
- โ Reinstall Python from python.org
- โ During installation, check "Add Python to PATH"
- โ Restart your computer after installing
Open an issue on GitHub with:
- What you were trying to do
- The exact error message
- Screenshots if possible
Found a bug? Have an idea for a new feature? Contributions are welcome!
- Report bugs: Open an issue on GitHub
- Suggest features: Tell us what you'd like to see
- Improve code: Submit a pull request
- Share feedback: Let us know how you're using it!
MIT License - Free to use, modify, and share!
Be Respectful:
- Don't check websites too frequently (use 30+ second intervals)
- Respect website terms of service
- Excessive requests may get you blocked
- Use this tool responsibly!
Created with โค๏ธ for anyone who needs to track website changes without constantly refreshing their browser.
Made possible by: Python, CustomTkinter, and coffee โ
- Install:
pip install web-alert - Run:
web-alert - Add your first monitor
- Sit back and let it watch for you! ๐
Installation troubleshooting? Check the Common Issues section above.
