Skip to content

blaineam/Blip

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

57 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Blip

A featherlight macOS menu bar system monitor. CPU, memory, disk, GPU, network, battery β€” all in a tiny, beautiful package.

macOS Apple Silicon License App Size


πŸ’‘ Why Blip?

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

✨ Features

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

πŸ“¦ Install

Mac App Store

Blip is available on the Mac App Store as Blip Stats for $2.99.

Download on the Mac App Store

Some advanced features (fan speeds, temperatures, GPU utilization, disk I/O, top processes) require the free Blip Helper companion app.

Homebrew (Recommended for Direct Download)

brew install --cask blaineam/tap/blip

Download DMG

Grab the latest notarized Blip.dmg (or BlipHelper.dmg for the companion helper). Open it, drag to Applications, done.

Build from Source

# 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 arm64

The app lands in .build/DerivedData/Build/Products/Release/Blip.app.

Build DMG Locally

chmod +x Scripts/build-dmg.sh
./Scripts/build-dmg.sh              # full build + notarize
./Scripts/build-dmg.sh --skip-notarize  # unsigned local build

πŸ”§ How It Works

+-----------------------------------------------------------+
|                   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         |
                  +----------------------+

πŸ—‚ Project Structure

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

🀝 Contributing

  1. Fork and clone the repo
  2. brew install xcodegen && xcodegen generate
  3. Open Blip.xcodeproj in Xcode or build from the command line
  4. Make your changes, test on Apple Silicon hardware
  5. Open a PR

Guidelines

  • 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

πŸ–₯ Requirements

  • macOS 14.0 (Sonoma) or later
  • Apple Silicon (M1, M2, M3, M4, or newer)
  • Xcode 16+ and XcodeGen (for building from source)

❓ FAQ

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.

πŸ“„ License

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.

About

A featherlight macOS menu bar system monitor

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors