VAULT-TEC // SYSTEMS
// MENU-BAR UTILITY · macOS 13+

FREE MAC MONITOR

A minimal macOS menu-bar system monitor with a retro CRT / Pip-Boy aesthetic. Pure Swift + AppKit + WebKit — zero third-party dependencies.

  • 1 HzPOLL RATE
  • 0DEPENDENCIES
  • 320×460PANEL SIZE
  • 2THEMES
01

FEATURES

Menu-bar indicator

A small ">>" icon that turns red when any metric breaches its alert threshold.

Live-metrics mode

The icon becomes a rolling readout cycling every 3 s through CPU → MEM → GPU → DSK. When a threshold is breached, rotation locks on the offender in red.

Expanding panel

Left-click to open a 320×460 dashboard with live bar charts. Click outside to collapse.

Dual theme v1.2

Liquid Glass by default — translucent NSVisualEffectView popover with SF Pro and gradient pill bars. Or switch to Fallout Terminal: VT323 CRT phosphor-green with ASCII bars and scanlines. Right-click → Theme ▸.

Memory breakdown v1.1

Toggle Show Memory Breakdown — the MEMORY row becomes a 5-colour stacked chart (App / Wired / Compressed / Cached / Free) with a 5-row legend and GB values, matching Activity Monitor's categorisation.

Auto-release memory v1.1

At sustained 98 % memory pressure, optionally fire /usr/sbin/purge and run a live status-bar animation ([FLUSH ▓▓▓▓] → MEM 82 % ▼16). ▼N shows the real measured drop — ▼0 when nothing actually released. Three modes in right-click → Auto-Release Memory ▸.

Always-on polling

1 Hz sampling keeps the menu-bar state current whether the panel is open or not.

Zero dependencies

Pure Swift + AppKit + WebKit. Darwin and IOKit handle all metric sampling directly.

Persistent preferences

Theme, Show Live Metrics, Show Memory Breakdown, and Auto-Release mode all persist in UserDefaults and restore on next launch.

02

SHOWCASE

Liquid Glass theme (default)
LIQUID GLASS default · translucent NSVisualEffectView, SF Pro, gradient pills
Fallout Terminal theme
FALLOUT TERMINAL right-click Theme ▸ · VT323 CRT, phosphor green, scanlines
Right-click menu with all toggles
RIGHT-CLICK MENU every preference lives here — theme, breakdown, auto-release
03

DOWNLOAD & INSTALL

A

One-line installer

Downloads the latest release, verifies the SHA-256, strips the quarantine flag, installs to /Applications and launches the app.

curl -fsSL https://raw.githubusercontent.com/pekinlcc/FreeMacMonitor/main/scripts/install.sh | bash
B

Direct download

Grab the signed .zip from Releases, unzip, drag into /Applications.

C

Build from source

If you have Xcode 15 / Command Line Tools installed.

git clone https://github.com/pekinlcc/FreeMacMonitor.git && cd freemacmonitor && ./build.sh
⚠ GATEKEEPER

The app is ad-hoc signed, not notarised — macOS will flag it as unsigned on first launch. Easiest fix: xattr -cr "/Applications/Free Mac Monitor.app" (the one-line installer does this for you). Or right-click the app → Open, or System Settings → Privacy & Security → Open Anyway.

REQUIREMENTS
  • OSmacOS 13 Ventura+
  • SWIFT5.9+
  • TOOLSXcode 15 / CLT
  • ARCHApple Silicon · Intel
ALERT THRESHOLDS
  • CPU80%
  • MEMORY80%
  • GPU80%
  • DISK85%
~/freemacmonitor — zsh
# quick install
$ curl -fsSL https://raw.githubusercontent.com/\
    pekinlcc/FreeMacMonitor/main/scripts/install.sh | bash
» resolving latest release
» downloading Free-Mac-Monitor-v1.0.0.zip
» checksum OK
» installing to /Applications
» launching

# or build from source
$ git clone https://github.com/pekinlcc/FreeMacMonitor.git
$ cd freemacmonitor && ./build.sh
$ open "Free Mac Monitor.app"
04

HOW IT WORKS

▶ 01

Accessory app

Runs with LSUIElement = true. No Dock icon, no app-switcher entry — just a status item in the menu bar.

▶ 02

Single 1 Hz timer

Drives both the menu-bar rendering and the optional WebKit panel update. Simple, synchronous, predictable.

▶ 03

Local HTML dashboard

Loaded via WKWebView.loadFileURL. Metric updates pushed in with evaluateJavaScript — no IPC, no server.

▶ 04

Click-outside to close

NSEvent.addGlobalMonitorForEvents catches clicks in other apps' windows, avoiding re-toggle races with the status-bar button.

PROJECT LAYOUT
Sources/FreeMacMonitor/
├─ main.swift                # NSApplication bootstrap
├─ AppDelegate.swift         # wires up status bar controller
├─ StatusBarController.swift # status item + panel + polling + alerts
├─ SystemMetrics.swift       # Darwin + IOKit sampling
└─ Resources/
   ├─ index.html             # Pip-Boy dashboard markup
   ├─ app.js                 # metric renderer
   └─ style.css              # CRT / Pip-Boy theme
scripts/make_icon.swift      # Core Graphics icon generator
build.sh                     # SPM release + .app assembly
Info.plist                   # LSUIElement, CFBundleIconFile