A lightweight, native macOS menu bar app for real-time system monitoring.
LiteStats lives in your menu bar and gives you an instant overview of your Mac's health — CPU, memory, disk, battery, network, thermals, and more — with zero external dependencies and minimal resource usage.
- CPU — real-time usage percentage with core count
- Memory — used vs. total RAM (matches Activity Monitor's calculation)
- Storage — free and total space on the boot volume
- Network — live upload/download speeds and local IP address
- Charge level and charging status
- Battery health percentage and condition
- Cycle count
- CPU Temperature — live reading via SMC (Apple Silicon and Intel)
- Thermal Pressure — system thermal state (Nominal / Fair / Serious / Critical)
- System Uptime — time since last boot
- Device Health Summary — automatic warnings for high CPU/RAM, low disk, degraded battery, or thermal throttling
- Process List — top memory consumers with app icons, sorted by RAM usage. Right-click to show in Finder, bring to front, quit, or force-quit.
- Performance Trends — sparkline charts tracking CPU and memory usage over the last 60 samples
- Adjustable polling interval (1–10 seconds)
- Adjustable text size (5 levels)
- Device info at a glance
- macOS 14.0+ (Sonoma)
- Xcode 15.3+ (to build from source)
git clone https://github.com/8tp/LiteStats.git
cd LiteStats
open LiteStats.xcodeproj- Set Signing & Capabilities → Team to your Apple ID (free personal team works)
- Press ⌘R to build and run
Or build from the command line:
xcodebuild -project LiteStats.xcodeproj -scheme LiteStats -configuration Debug buildNote: Sandboxing is disabled so IOKit battery and SMC access works without entitlements. For App Store distribution, you would need to add appropriate entitlements or use a helper process.
LiteStats/
├── LiteStatsApp.swift — @main entry point, MenuBarExtra scene
├── StatsModel.swift — @Observable polling engine (all metrics)
├── ContentView.swift — Menu bar panel UI and components
├── PreferencesView.swift — Settings panel (interval, text size, device info)
├── PreferencesWindowController.swift — NSWindow wrapper for preferences
└── Assets.xcassets/ — App icon and accent color
- StatsModel is
@Observable(Swift 5.9 Observation framework) and uses a timer on the.commonrun-loop mode so updates continue during UI interaction. - CPU usage is computed as a delta between successive snapshots to avoid first-read spikes.
- The app hides from the Dock and App Switcher (
LSUIElement = YES). - No external dependencies — everything is built on Foundation, SwiftUI, and IOKit.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
MIT — see the LICENSE file for details.