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, ~250 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 split, load averages (1m/5m/15m), P-core and E-core counts, top processes with app icons |
| Memory | Usage bar + percentage | Total memory, active/wired/compressed/app breakdown, memory pressure, top processes with app icons |
| Disk | Usage bar + percentage | All mounted volumes with space used/free, real-time read/write speeds, I/O history chart |
| Network | Connectivity dot | Upload/download speeds, WAN and router ping latency (configurable target), bandwidth history chart, 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
- Hover detail panels β hover any row in the popover to reveal a detailed sub-panel (like iStats Menus)
- Two layouts β stacked (compact vertical bars) or horizontal (wide side-by-side)
- Customizable β category colors, monochrome, or custom color picker; separate measurement and value label toggles
- Launch at login β one toggle in settings
brew install --cask blaineam/tap/blipGrab the latest notarized .dmg from Releases. Open it, drag Blip 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
ββββββββββββΌβββββββββββ hover βββββββββββββββ
β Popover β βββββββΊ β Detail Panel β
β ββ CPU 45% βΊ β β Per-core β
β ββ Memory 67% βΊ β β Load avgs β
β ββ Disk 34% βΊ β β Top procs β
β ββ Network ββ βΊ β β Charts β
β ββ GPU 12% βΊ β β ... β
β ββ Battery 89% βΊ β βββββββββββββββ
β β
β Mac14,7 Β· macOS 15 β
β β± 3d 2h β Nominal β
β Blip v1.1.0 β
βββββββββββββββββββββββ
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 # ps + NSRunningApplication
β β β βββ 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 250 MB. Blip shows its own memory footprint in the popover footer so you can always verify.
Will there be a Mac App Store version?
Possibly. The unsandboxed requirement makes App Store distribution more complex, but it's on the radar.
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.