A featherlight macOS menu bar system monitor. CPU, memory, disk, GPU, network, battery β all in a tiny, beautiful package.
Existing system monitors are either bloated, expensive, or missing key features. Blip takes the best ideas from iStats Menus and Stats Panel, strips away the fluff, and delivers a monitor that's:
- Tiny β ~2 MB app bundle, ~42 MB memory footprint
- Fast β async/await throughout, polls every 2 seconds
- Pretty β clean layout, smooth charts, hover detail panels
- Focused β system metrics only, no weather or clock widgets
- Free β open source under MIT, notarized releases on GitHub
| Category | Menu Bar | Detail Panel |
|---|---|---|
| CPU | Usage bar + percentage | Per-core bars, user/system/idle split, load averages (1m/5m/15m), P-core and E-core counts, top processes with accurate delta-based CPU and app icons |
| Memory | Usage bar + percentage | Total memory, active/wired/compressed/app breakdown, swap usage, memory pressure (factors in swap), top processes with accurate phys_footprint memory and app icons |
| Disk | Usage bar + percentage | All mounted volumes with space used/free, real-time read/write speeds, total data read/written since boot, I/O history chart with Y-axis labels |
| Network | Connectivity dot | Upload/download speeds, total bytes up/down since boot, WAN and router ping latency (configurable target), bandwidth history chart with Y-axis labels, all active interfaces (Wi-Fi + Ethernet), IPv4/IPv6, LAN IP, router IP, MAC address, WAN IP reveal, VPN detection (Tailscale, WireGuard), click-to-copy addresses |
| GPU | β | Apple Silicon GPU utilization, renderer name, GPU core count, historical usage chart |
| Battery | β | Charge %, health %, cycle count, temperature, time remaining, charging status |
| Fans | β | RPM per fan with min/max range bars, CPU and GPU temperatures |
| System | β | Mac model, macOS version, uptime, thermal state, Blip's own memory usage |
Plus:
- Historical charts β sparklines for CPU, memory, GPU; dual-line charts for disk I/O and network bandwidth with auto-scaled Y-axis labels
- Live detail panels β hover any row in the popover to reveal a detailed sub-panel that updates in real-time (like iStats Menus)
- Two layouts β horizontal (default, wide side-by-side) or stacked (compact vertical bars)
- Customizable β category colors, monochrome, or custom color picker; separate measurement and value label toggles; optional utilization colorization
- Launch at login β one toggle in settings
Blip is available on the Mac App Store as Blip Stats for $2.99.
Some advanced features (fan speeds, temperatures, GPU utilization, disk I/O, top processes) require the free Blip Helper companion app.
brew install --cask blaineam/tap/blipGrab the latest notarized Blip.dmg (or BlipHelper.dmg for the companion helper). Open it, drag to Applications, done.
# Prerequisites
brew install xcodegen
# Clone and build
git clone https://github.com/blaineam/blip.git
cd blip
xcodegen generate
xcodebuild -scheme Blip -configuration Release -arch arm64The app lands in .build/DerivedData/Build/Products/Release/Blip.app.
chmod +x Scripts/build-dmg.sh
./Scripts/build-dmg.sh # full build + notarize
./Scripts/build-dmg.sh --skip-notarize # unsigned local build+-----------------------------------------------------------+
| Menu Bar (NSStatusItem) |
| [CPU] [MEM] [HD] * |
+----------------------------+------------------------------+
| click
+----------v-----------+
| Popover | hover +--------+
| CPU 45% > | ------> | Detail |
| Memory 67% > | | Panel |
| Disk 34% > | +--------+
| Network v^ > | | Cores |
| GPU 12% > | | Loads |
| Battery 89% > | | Procs |
| | | Charts |
| MacBook Pro (M4) | +--------+
| Up 3d 2h | Nominal |
| Blip v1.4.2 |
+----------------------+
Blip/
βββ Blip/
β βββ Sources/
β β βββ App/BlipApp.swift # Entry point, NSStatusItem, popover
β β βββ Models/
β β β βββ SystemStats.swift # All data models
β β β βββ HistoryBuffer.swift # Ring buffer for charts
β β βββ Services/
β β β βββ SystemMonitor.swift # Async coordinator
β β β βββ CPUMonitor.swift # host_processor_info
β β β βββ MemoryMonitor.swift # host_statistics64
β β β βββ DiskMonitor.swift # Volume stats + IOKit I/O
β β β βββ GPUMonitor.swift # IOAccelerator + Metal
β β β βββ NetworkMonitor.swift # NWPathMonitor + getifaddrs
β β β βββ BatteryMonitor.swift # IOPSCopyPowerSourcesInfo
β β β βββ FanMonitor.swift # SMC fan keys
β β β βββ ProcessMonitor.swift # proc_pidinfo + proc_pid_rusage
β β β βββ SMCKit.swift # IOKit SMC interface
β β βββ Views/
β β βββ StatusItemView.swift # Menu bar layout (stacked/horizontal)
β β βββ PopoverView.swift # Main overview + detail routing
β β βββ SettingsView.swift # Preferences window
β β βββ Panels/ # Detail panels per category
β β βββ Components/ # Charts, bars, process rows
β βββ Resources/
β βββ Assets.xcassets
β βββ Info.plist
β βββ Blip.entitlements
βββ Scripts/
β βββ build-dmg.sh # Local build + package
β βββ generate-assets.swift # App icon generator
βββ .github/workflows/
β βββ ci.yml # PR build + QA checks
β βββ release.yml # Tag β build β notarize β release
βββ docs/ # GitHub Pages site
βββ project.yml # XcodeGen project definition
βββ CHANGELOG.md
βββ LICENSE # MIT
- Fork and clone the repo
brew install xcodegen && xcodegen generate- Open
Blip.xcodeprojin Xcode or build from the command line - Make your changes, test on Apple Silicon hardware
- Open a PR
- Keep it tiny β no external dependencies
- Match the existing code style (SwiftUI, async/await, value types)
- Test on actual hardware β simulators can't read SMC or IOKit sensors
- Open an issue first for large changes
- macOS 14.0 (Sonoma) or later
- Apple Silicon (M1, M2, M3, M4, or newer)
- Xcode 16+ and XcodeGen (for building from source)
Does Blip work on Intel Macs?
No. Blip targets Apple Silicon exclusively. It uses ARM64-specific page sizes and Apple Silicon IOKit interfaces for GPU and thermal monitoring.
Why does it need to run unsandboxed?
Blip reads hardware sensors (SMC for fans, IOKit for GPU/disk I/O, process list for top apps) which require unsandboxed access. The app is fully open source β you can audit every line, and every release is notarized by Apple.
How much memory does Blip use?
Typically around 42 MB physical footprint. Blip shows its own memory usage in the popover footer so you can always verify.
Why does the App Store version cost $2.99?
The direct download and Homebrew versions are free and always will be. The $2.99 App Store price helps cover Apple Developer Program costs and supports ongoing development and maintenance. If you'd rather not pay, grab the identical free version from GitHub Releases or Homebrew.
MIT β free as in beer and free as in freedom. See LICENSE for details.
Built by Blaine Miller. If Blip saves you from installing a 200 MB monitoring suite, consider starring the repo.