Process discovery uses sysctl + NSRunningApplication. Kill signals go through POSIX kill() with SIGKILL — no graceful shutdown, just immediate termination. For the I/O monitor, I'm polling per-process disk and network stats via IOKit.
The fuzzy matching was the trickiest part. macOS processes often have different executable names vs. what Activity Monitor shows (localized display names). PIDKill checks against the executable name, the display name, and the full path — so partial input like "chrome" or "adobe" usually catches what you want.
I went with DMG + Gumroad license keys instead of the App Store. At $3.99 the 30% cut would have made it hard to justify the time spent maintaining it.
One thing I'm still iterating on: the Inspect tab (I/O monitor) can record activity and replay it frame-by-frame. It's useful for debugging intermittent disk/network spikes, but I'm not sure how many people will discover it. Feedback welcome on that.
Question for HN — what processes drive you crazy on macOS? I seeded the initial use cases from my own pain (Xcode, Simulator, Adobe, Chrome), but I'm sure there are offenders I'm not thinking of.
thomasmillerGo•2h ago
You know that moment when your Mac fan starts screaming and you open Activity Monitor to find six Chrome Helper processes eating 4 GB of RAM? And you kill them, and thirty seconds later they're back?
That's what PIDKill automates.
You tell it which processes to watch. It scans at intervals you set (3–60s), and kills matches automatically. Daemon restarts itself? PIDKill kills it again. That's the whole idea.
Matching is fuzzy by default — "chrome" catches "Google Chrome Helper (Renderer)" because it checks executable names, localized display names, and paths. You don't need to know the exact process name.
Common targets people use it for:
- Chrome Helper processes hogging RAM - Adobe Creative Cloud daemons that run even when you're not using Adobe - Docker orphan processes after container stops - Spotlight indexing (mds_stores) hammering your SSD - photoanalysisd pegging CPU for hours after importing photos - Xcode/Simulator zombie processes after crashes - Microsoft Office background updaters - Slack Helper eating memory while "idle"
v1.0.3 added Inspect — real-time disk and network I/O ranked by process, with record and replay. Useful for figuring out why your fan just spun up.
Native Swift + AppKit. macOS 12+. $3.99 one-time, not subscription. 3-day free trial with full functionality. One license covers 2 Macs.
Distributed via DMG with Apple Notarization (not App Store — wanted to keep the price under $5 without the 30% cut eating it).
Happy to answer questions about the implementation or take feature requests.