Jeremy Neely Text Jeremy

Desktop Apps · Production

AppWatcher

Keeps important tray apps running and alerts when they keep failing.

Built for: Anyone who runs always-on helper apps in the Windows tray

The crash-loop alert that holds focus until someone answers, recreated.
The crash-loop alert that holds focus until someone answers, recreated.

The problem

Small helper apps that run all day in the tray get killed by a Windows update or a one-off crash. Nobody notices until the thing they were meant to catch has already been missed.

What I built

I built a Windows tray app that watches a list of programs and relaunches any that have stopped. If one dies again right after a relaunch, it treats it as a crash loop, plays a sound, and shows an alert that holds focus until someone answers.

How it works

  1. Start at login with a colored tray icon.
  2. Add apps by hand or pick them from what is running.
  3. Choose a mode: at startup, hourly, continuous or every N minutes.
  4. Relaunch any stopped app and show a notification.
  5. Hold a crash-looping app and alert a person instead.
How AppWatcher is wiredA per-user tray app rather than a service, because the alerts need an interactive desktop to be seen.
Comes inInside AppWatcherGoes out Watched app list by hand or from running Running processes via WMI Poll startup, hourly, continuous Relaunch any stopped app Crash-loop detect dies right after relaunch Running app plus a notification Focus-holding alert sound, until answered

Built with

  • C#
  • .NET 8
  • WPF
  • WMI
  • Windows toast notifications
  • Serilog
Text Jeremy about this Next: MyDash All 38 tools Texting opens your Messages app with a note already written. He replies himself.

More of Jeremy's work

All 38 tools, by category