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
- Localized β English plus German, Spanish, French, Italian, Japanese, Korean, Brazilian Portuguese, and Simplified Chinese
- 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, S.M.A.R.T. drive health β SSD life remaining, available spare, drive temperature, lifetime bytes written/read, power-on hours, power cycles, unsafe shutdowns (NVMe health log, internal + NVMe enclosures), disk speed test β uncached sequential write/read + random IOPS benchmark with optional interval testing, runnable on any volume in one click via its gauge button |
| Network | Connectivity dot | Upload/download speeds, accurate session totals up/down (64-bit, wrap-corrected), 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, live Traceroute / MTR with per-hop loss & latency, multi-gig speed test (download/upload throughput against Cloudflare or a self-hosted OpenSpeedTest LAN server) with optional interval testing |
| Processes | β | Top processes by CPU and memory with app icons; kill a process right from the list (user-owned processes; routed through the helper when sandboxed) |
| GPU | Usage bar + percentage (optional, off by default) | 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
- Shortcuts support (App Intents) β automate Blip from the Shortcuts app: Get System Metric (37 metrics, chainable numeric results, optional 2-minute average/min/max for charted metrics), Run Drive Speed Test on any mounted volume, Run Network Speed Test (public or self-hosted OpenSpeedTest), Run/Stop Traceroute with an MTR summary, Open Traceroute Map, and Get/Set Setting over a curated, validated settings catalog
Blip 2.0 brings a native companion app (BlipMobile/) to iPhone and iPad β the honest subset of what iOS exposes to a sandboxed app, plus the things a phone does best:
- Overview β CPU, memory, storage, battery, thermal, network and device cards, each opening a full detail screen; tap-to-copy on reference values, tap-to-reveal WAN IP, VPN + radio (5G/LTE) awareness, boot-derived uptime, human device names, and honest suggestions when a real signal fires (storage nearly full, throttling, Low Data Modeβ¦)
- Blip Bench β the same fixed-reference-unit benchmark as the Mac (scores are comparable across every device running Blip), with an animated running view and sustained-phase throttle measurement
- Speed β public OpenSpeedTest service or your own server, live curve, capped history, share cards
- Network β ping and traceroute over sandbox-legal ICMP datagram sockets, with offline GeoIP hop annotations (same DB-IP database as the Mac)
- Storage β disk speed tests on internal storage or any Files-accessible external volume
- Widgets β bench score, storage, last speed test; every fact stamped with its age
- Shortcuts β Run Benchmark, Run Speed Test, Get Device Snapshot (Markdown)
- Snapshot export β one file with everything Blip knows, ready for the share sheet
Same repo, same xcodegen project: build the BlipMobile scheme. Ships on the App Store as Blip Stats for iOS.
Blip is available free on the Mac App Store as Blip Stats β the same app as the direct download and Homebrew builds.
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.
xcodebuild test -scheme Blip -destination 'platform=macOS,arch=arm64'
# Or with the coverage ratchet (fails below the gated minimum):
./Scripts/coverage-check.shchmod +x Scripts/build-dmg.sh
./Scripts/build-dmg.sh # full build + notarize
./Scripts/build-dmg.sh --skip-notarize # unsigned local buildBlip is free β no ads, no tracking, no subscription. If it earns a place on your Mac, you can help fund what comes next.
Sponsor on GitHub Β· Buy me a coffee on Ko-fi
+-----------------------------------------------------------+
| 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.7 |
+----------------------+
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
β β βββ Intents/ # App Intents (Shortcuts): metrics,
β β β # speed tests, traceroute, settings
β β βββ 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
βββ BlipTests/ # Hermetic unit tests (intents, models)
βββ Scripts/
β βββ build-dmg.sh # Local build + package
β βββ coverage-check.sh # App-logic coverage ratchet (xccov)
β βββ 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 menu bar readout look blurry on one of my displays?
When two displays run at different pixel densities (a Retina MacBook next to a standard-DPI external, say), macOS renders a status item once β at the scale of the display whose menu bar is currently active β and mirrors a scaled copy to the other display. Every menu bar app with a custom view behaves this way; it isn't something Blip can override. The workaround is to run both displays at the same backing scale: give the external a HiDPI ("Retina") scaled resolution in System Settings β Displays, or with a tool like BetterDisplay.
Is Blip really free?
Yes. The direct download, the Homebrew cask and the Mac App Store build are all free and identical β there is no paid tier and nothing to unlock. If you'd like to support development, use the links in the Support future development section above.
Blip is better because people send patches β thank you!
Made with contrib.rocks; updates automatically as PRs land.
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.