Monitor long-running terminal processes from your macOS menu bar. Get notified when builds, tests, or deploys finish.
I start a cargo build or npm test that takes 10 minutes, switch to something else, and forget to check. ProcessBeacon watches any process I care about and sends a macOS notification when it exits. No more Alt-Tabbing back to check if the build finished.
- Antenna icon in menu bar (animated when watching processes)
- Watched process count badge in menu bar
- Process list sorted by runtime (longest first)
- Category auto-detection: Build, Test, JS/TS, Runtime, Infra, Dev Tool
- Color-coded category icons
- Click eye icon to watch/unwatch any process
- macOS notification when a watched process exits
- Completed processes log with timestamps
- Search/filter by name, PID, or category
- Hover to see full command path
- High CPU indicator (red badge at 5%+)
- Smart filtering hides system daemons, Chrome helpers, etc.
- Auto-refresh every 5 seconds
Using the build script (recommended):
cd ProcessBeacon
chmod +x build.sh
./build.sh
open ProcessBeacon.appOr compile manually:
cd ProcessBeacon
swiftc -parse-as-library -o ProcessBeacon ProcessBeacon.swift
./ProcessBeaconOr build a .app bundle manually (no dock icon, notifications work):
cd ProcessBeacon
swiftc -parse-as-library -o ProcessBeacon ProcessBeacon.swift
mkdir -p ProcessBeacon.app/Contents/MacOS
cp ProcessBeacon ProcessBeacon.app/Contents/MacOS/
cp Info.plist ProcessBeacon.app/Contents/
open ProcessBeacon.app- Build and launch:
swiftc -parse-as-library -o ProcessBeacon ProcessBeacon.swift && ./ProcessBeacon - Look for the antenna icon in your menu bar
- Click to see all running user processes
- Click the eye icon next to a long-running build/test to watch it
- Switch to other work — you'll get a notification when it finishes
Watch a Rust build:
- Start
cargo build --releasein your terminal - Open ProcessBeacon, find "cargo" in the list
- Click the eye icon to watch it
- Continue working — notification appears when build completes
Watch multiple processes:
- Watch a Docker build, npm install, and pytest run simultaneously
- Badge in menu bar shows "3" for 3 watched processes
- Each one triggers a separate notification on completion
Filter by category:
- Use the search bar to type "Build" or "Test"
- Only processes matching that category appear
- Useful when you have dozens of processes running and need to find a specific build
Spot high-CPU processes:
- Processes using more than 5% CPU show a red badge
- Helps you notice a runaway build or stuck test runner without opening Activity Monitor
ProcessBeacon has no automated test suite (single-file SwiftUI app). Verify correctness manually:
- Compile check --
swiftc -parse-as-library -o ProcessBeacon ProcessBeacon.swiftshould complete with zero errors and zero warnings. - Launch check -- run
./ProcessBeaconoropen ProcessBeacon.app. An antenna icon should appear in the menu bar. - Process list -- click the menu bar icon. You should see user-launched processes sorted by runtime. System daemons should be filtered out.
- Watch a process -- start a long-running command in Terminal (e.g.,
sleep 120). Find it in the list and click the eye icon. The menu bar badge should increment. - Notification on exit -- kill the watched process (
kill <PID>or let it finish). A macOS notification should appear saying the process has completed. - Completed log -- after a watched process exits, it should appear in the "Completed" section at the bottom of the popup with a timestamp.
- Search/filter -- type a process name or PID into the search bar. The list should filter to matching results.
- Category detection -- verify that
cargo,swift, orgccprocesses show as "Build",pytestorjestas "Test",nodeorbunas "JS/TS". - Background-only -- verify no dock icon appears. On macOS, run:
osascript -e 'tell application "System Events" to get name of every process whose background only is true'and confirm ProcessBeacon is in the list.
- No processes showing — ProcessBeacon filters out system daemons by default. Only user-launched processes appear.
- Notification permission — macOS will prompt for notification permission on first launch. Allow it for completion alerts to work.
- Process not in list — Use the search bar to filter by name or PID. Some short-lived processes may exit between refreshes.
- macOS 14.0+ (Sonoma or later)
- Swift 6.0+ compiler
- Notification permission (prompted on first launch)
MIT