// macOS · menu bar · 100% local

The dev server you killed
is still running.

ProcWatch sits in your menu bar, watches every running process, and logs the ones that cross your CPU threshold — so you can see exactly what's torching your battery, and end it yourself.

Code-signed & notarized  ·  No accounts  ·  No telemetry

// the problem

Ctrl+C lied to you.

When you run npm run dev, npm spawns a shell, and that shell spawns the actual dev server — Vite, webpack-dev-server, nodemon — as a child process. Press Ctrl+C and you often kill only the parent. The child gets orphaned and keeps running, invisible, with no terminal attached.

And orphaned doesn't mean idle. File watchers keep polling your filesystem. Rebuild loops keep rebuilding. Ports stay held — that's the EADDRINUSE you hit on restart. They accumulate: three forgotten node processes later, your fans are spinning and your battery is gone.

Same story with node server.js &, test runners in watch mode, build watchers, and bundlers that spawn workers. Your terminal looks clean. Your CPU isn't.

// how it works

Three steps. Zero accounts.

  1. Set your threshold

    Pick the CPU percentage that counts as "misbehaving" — and how long a process must stay above it, so momentary spikes don't cry wolf.

  2. ProcWatch watches & logs

    It continuously reads running processes. When one sustains above your threshold, you get a native macOS notification and the event is logged to a local, on-device database.

  3. Review the history. Act.

    A full dashboard shows which process spiked, when, and how often — with a one-click jump to Activity Monitor when it's time to act.

// in action

This is what busted looks like.

Clean captures from the current ProcWatch design: two node dev-server processes — orphaned by a single Ctrl+C — caught at 164.9% and 100% CPU, logged, and charted.

ProcWatch main window in dark mode. The process list pins two node processes above the CPU threshold at 164.9% and 100%, with everything else idle below. A detail pane shows the selected node process: a red CPU history graph, 136 MB memory, thread and open-file counts, plausible causes, the command line, and Sample Stack and Activity Monitor buttons.
The live process list — two orphaned node processes pinned above the threshold, with full history, memory, and a one-click jump to Activity Monitor.

Then see the whole story.

Every sustained crossing is logged locally and turned into a dashboard: when it happened, which hour gets noisy, which processes repeat, how severe the spikes were, and which ones stayed hot the longest.

ProcWatch Over Time chart: alerts per day across the selected week as a glowing area curve, climbing into a sharp recent spike, with the busiest day marked.
Alerts over time — the week the dev servers piled up is impossible to miss.
ProcWatch Top Offenders chart ranking processes by peak CPU: node at 396 percent, Google Chrome Helper Renderer 216, swift-frontend 167, vitest 145, vite 137, esbuild 128, webpack 114, nodemon 103.
Top offenders, ranked by peak CPU.
ProcWatch Severity by Process chart: horizontal bars colored yellow to red by average CPU, ranked by longest stretch over threshold — esbuild 6m26s, node 4m43s, Chrome Helper 4m28s, webpack, vitest, vite, swift-frontend, nodemon.
Severity — longest stretches over the line.
ProcWatch By Hour chart: vertical bars showing which hours of the day rack up the most CPU alerts, peaking around mid-morning and mid-afternoon.
By hour — see when the spikes cluster.
ProcWatch Duration versus CPU scatter plot: each alert is a colored dot, showing short mild spikes low and left and long high-CPU offenders farther right and higher up.
Duration vs. CPU — separate quick spikes from sustained offenders.
ProcWatch alert history table listing every threshold crossing with process name, how long it exceeded the threshold, CPU percentage, and timestamp. A snapshot pane details one alert: CPU at alert, memory, threshold, exceeded duration, required hold, and an Inspect Process Now button.
The receipts: every crossing — who, how hard, for how long, and when — kept on your Mac.

Always one glance away.

ProcWatch lives in your menu bar, not your dock. The icon flags how many processes are over the line right now; click it for the live top offenders with sparklines — and a jump straight into the full app.

The ProcWatch menu-bar popover open from the macOS menu bar: badge reading 2 above 50%, two node processes at 164.9% and 100% with red sparklines, and an Open ProcWatch button. The full ProcWatch window is visible behind it.
Menu-bar placement — top-right of your screen, right where it works.

// features

One job, done properly.

  • Sustained-threshold alerts

    Set the CPU line and how long a process must hold above it before it counts. Native macOS notifications, with a cooldown so one offender can't spam you.

  • Local history dashboard

    Alerts by time, hour, offender, severity, and duration-vs-CPU — so the pattern is visible instead of buried in Activity Monitor.

  • Private by architecture

    Every event is stored in a local on-device database. No cloud, no accounts, no telemetry — there's nothing to opt out of.

  • Inspect, don't guess

    Search the live process list, see memory, threads, open files, and the command path, then jump to Activity Monitor or capture a stack sample.

  • Menu-bar native

    A compact top-offenders popover stays one glance away. Open the full dashboard only when you want the receipts.

  • Signed & notarized

    Code-signed and notarized, so it opens cleanly — no "unidentified developer" warnings, no right-click workarounds. Updates arrive securely, right inside the app.

// for developers

You already know the suspects.

Every one of these has quietly survived a Ctrl+C on someone's machine this week. Probably yours.

  • vite / webpack-dev-server orphaned by the npm shell that spawned it
  • vitest --watch & jest --watch re-running tests for a repo you closed an hour ago
  • esbuild / bundler worker processes that outlived their parent
  • node server.js & — backgrounded, then forgotten
  • nodemon and file watchers polling the filesystem on every save, forever

Stop guessing why your fans are screaming.
See the process. See the spike. Kill it.

ProcWatch doesn't kill anything automatically and won't fix Node's process management — it surfaces and logs the culprits, puts them one click from Activity Monitor, and can capture a stack sample of what they're doing, so you can act with a record instead of a hunch.

// for everyone else

Not a developer? Even simpler.

Your Mac gets hot. The fans get loud. The battery that used to last all day is gone by lunch. Usually, that's one misbehaving program working hard in the background where you can't see it.

ProcWatch lives in the menu bar at the top of your screen and keeps a simple record: which program was working too hard, when, and how often. When your battery drains fast, you open ProcWatch and see the name of the culprit — instead of guessing or restarting everything. Everything it records stays on your Mac.

// privacy

100% local. No cloud. No accounts. No telemetry.

Every event ProcWatch records is written to a local, on-device database. There is no server to sync with, no account to create, and no analytics SDK phoning home. The only network calls the app ever makes are verifying your license key and checking for updates — never your data. Your process history is yours — it never leaves your Mac.

// one product · one price

ProcWatch is $9.97.

One lightweight macOS app, one one-time purchase, no subscription tiers. Buy it once and use the full local process monitor.

Checkout is handled by Dodo Payments, our merchant of record. Your license key and download link arrive by email right after purchase; payment details never touch this site.

Included

  • Full ProcWatch app for macOS
  • Sustained CPU alerts and native notifications
  • Live process inspector with Activity Monitor handoff
  • Local alert history, charts, and analytics
  • Code-signed app with secure in-app updates

Requires macOS 14 (Sonoma) or later · Universal — runs natively on every modern Mac

14-day money-back guarantee — refund policy

// faq

Questions, answered straight.

Does ProcWatch kill processes for me?

No — by design. ProcWatch watches, logs, and shows you exactly which process crossed your threshold and when, then puts it one click from Activity Monitor (it can grab a stack sample too). Terminating things is your call; ProcWatch's job is to make sure it's an informed one.

Does it upload my data anywhere?

No. Your monitoring data — processes, events, history — lives in a local on-device database and never leaves your Mac. There's no telemetry and no analytics. For full transparency: the app makes exactly two kinds of network calls — verifying your license key with Dodo Payments, our merchant of record, and checking procwatch.app for updates. Neither carries your data.

Does it work offline?

Monitoring, logging, and the dashboard are fully offline — none of it needs a network. Activating your license key requires a connection once; after that, a licensed Mac keeps working through a 14-day offline grace period before it needs to re-verify.

Why isn't it in the App Store?

App Store apps run inside a strict sandbox that limits how much an app can observe about other running processes — and observing processes is ProcWatch's entire job. Distributing it directly lets it do that job properly. It's still code-signed and notarized, so it opens cleanly — no warnings, no right-click workarounds.

Will my Mac warn me about an "unidentified developer"?

No. ProcWatch is code-signed and notarized, so it opens like any other Mac app — no security warnings, no right-click workarounds.

Which Macs does it run on?

ProcWatch ships as a universal binary, so it runs natively on every modern Mac. It requires macOS 14 (Sonoma) or later.

Won't a monitoring app drain my battery itself?

That would defeat the point. ProcWatch samples process activity every couple of seconds through macOS's native process APIs — cheap by design — and it does one thing only.

// support

Need a hand?

Real help, straight from the developer. Most questions are answered in the FAQ — for anything else, here's how to get unstuck.

Email support

Bugs, questions, feature ideas — write in and you'll get a real reply.

Contact address coming soon.

Lost your license key?

Your key is in your purchase confirmation email from Dodo Payments. Can't find it? Email us from the address you bought with and we'll resend it.

Moving to a new Mac?

Open Settings → License and deactivate on the old Mac to free the seat, then activate on the new one. A licensed Mac also keeps working offline for up to 14 days between checks.

Not getting notifications?

Tap Enable in ProcWatch's in-app banner, or allow notifications for ProcWatch in System Settings → Notifications. Monitoring and history work with or without them.

Billing, receipts, and refunds are handled by Dodo Payments, our merchant of record — see the refund policy.