Menu-bar system monitor for Apple Silicon (optional local AI agent).
Apple Silicon only (arm64). Intel Macs are not supported by the published DMG / Homebrew cask.
Free MIT · local-first · no cloud telemetry. Core glanceable metrics in the menu bar; optional Ollama / Discord agent when you want it — off by default.
Two products in one binary — pick your path:
| Just the monitor | Monitor + AI agent | |
|---|---|---|
| What you get | Menu-bar CPU + SSD (and °C when known), glass window, themes, process list, website monitors, Disk Cleanup | Everything left + local Ollama chat, Discord bot, schedules, Agent Ops |
| Needs | macOS on Apple Silicon | + Ollama + a model |
| Config | Zero — AI is off by default | Set aiAgentEnabled: true or use Settings |
📋 Changelog · ✨ Features · 📘 Getting Started · 🗺 Roadmap · 🍺 Homebrew · 🌐 Landing · 🔬 How we compare
- Quick start — Just the monitor
- Quick start — Monitor + AI agent
- Screenshots
- vs. Stats / iStat Menus / MenuMeters
- Install options
- Privacy
- Updates
- Full features
- Build from source
brew tap raro42/mac-stats https://github.com/raro42/mac-stats
brew install --cask mac-stats
# or: ./scripts/quickstart.sh # from a clone; installs + seeds ~/.mac-stats
open -a mac-statsLook at the menu bar → click for the window. No Ollama required. Disk Cleanup, monitors, and themes are all in the glass window.
- Install the app (above).
- Install Ollama and pull a model:
curl -fsSL https://ollama.com/install.sh | sh ollama pull llama3.2 - Enable AI in Settings (Enable local AI agent) or:
# in ~/.mac-stats/config.json { "aiAgentEnabled": true, "menuBarCompact": true }
- Open the window → AI Chat (Ollama) → try: What's my CPU temp?
Details: docs/GETTING_STARTED.md.
~49s live window capture — real mac_stats --cpu session (ScreenCaptureKit, window-only): live gauges, monitors (including a red down site), Agent Ops, Ollama chat. Letterboxed to 1080p with light voiceover.
Full theme gallery and capture notes: screens/README.md.
Repo: github.com/raro42/mac-stats
Closest peers from a 2026 menu-bar monitor scan (how we compare):
| mac-stats | Stats (exelban) | iStat Menus | MenuMeters | |
|---|---|---|---|---|
| Menu-bar CPU / RAM / disk | ✅ | ✅ | ✅ | ✅ (basic) |
| Apple Silicon focus | ✅ arm64 only | ✅ | ✅ | ✅ |
| Themes / glass UI | ✅ | ✅ | ✅ | — |
| Disk Cleanup (scopes · soft-delete → Trash) | ✅ | — | — | — |
| Local LLM agent (Ollama) | ✅ optional | — | — | — |
| Discord bot / schedules | ✅ optional | — | — | — |
| Deep sensors / history / weather | lean essentials | strong | deepest | minimal |
| Price | Free (MIT) | Free / donate | Paid | Free |
| Cloud telemetry | ❌ none | — | — | — |
How to pick:
- vs Stats — Stats is the classic free OSS monitor; mac-stats keeps that spirit with glass/themes, Disk Cleanup (scoped reclaim with soft-delete to Trash by default), and optional local AI / Discord / schedules.
- vs iStat Menus — iStat Menus is the paid deep-sensor benchmark; mac-stats stays on essentials + Apple Silicon glanceability + lightweight cleanup (we are not a full iStat replacement).
- vs MenuMeters — MenuMeters is minimal bars; mac-stats adds richer metrics, themes, Disk Cleanup, and optional agent workflows without forcing AI on.
Leave AI off for a Stats-like monitor only. Local-first: core metrics never need the cloud.
| Method | Command / link |
|---|---|
| Homebrew cask | brew tap raro42/mac-stats https://github.com/raro42/mac-stats && brew install --cask mac-stats |
| Quick Start script | ./scripts/quickstart.sh (clone) — app + ~/.mac-stats defaults + Ollama check |
| DMG | Releases |
| Source | Pin a release tag; see Build from source |
Gatekeeper / notarization: Prefer signed+notarized builds (docs/NOTARIZATION.md). Until CI secrets are set, use Right-click → Open.
Config templates in repo root: config.minimal.json (monitor-only), config.example.json (AI enabled).
No cloud telemetry — everything stays in ~/.mac-stats/. Secrets: Keychain and/or .config.env (never commit). See docs/CONFIG.md.
In-app banner checks GitHub Releases. Or: brew upgrade --cask mac-stats.
- Compact menu bar by default (CPU + SSD, plus °C when known); set
menuBarCompact: falsefor CPU/GPU/RAM/SSD. - Nine themes, process list, website monitors (menu bar shows a red Mon ✕ cue when any site is down).
- GPU usage ring gauge alongside CPU / frequency / temperature.
- ~0.5% idle CPU (menu bar only).
Built-in reclaim panel (no AI required):
- Preview reclaimable size; Clean now, or automatic runs on app launch and every 24h while running.
- Scopes you can turn on/off: mac-stats data, Trash, Downloads, Temp, plus custom paths (age in days + recurse). Saved in
diskCleanupScopes. - Soft-delete by default — cleaned files go to Trash so you can recover them. Uncheck Move cleaned items to Trash (or set
diskCleanupSoftDelete: false) for permanent delete. Emptying the Trash scope is always permanent. - Details: FEATURES.md · screenshot above.
- Ollama chat, Discord (Werner), FETCH_URL, Brave, Perplexity, CDP browser, tasks, scheduler, MCP, Agent Ops.
- Off until
aiAgentEnabled: true.
docs/CONFIG.md · Settings → Reset to monitor defaults.
| Command | Description |
|---|---|
mac_stats / open -a mac-stats |
Start |
mac_stats --cpu |
Start with window open |
mac_stats -vv |
Verbose debug.log |
git clone https://github.com/raro42/mac-stats.git
cd mac-stats
git checkout v0.1.257 # pin when possible
./runRequires Rust + Xcode CLT (macOS Tauri). Checksums: ./scripts/print-release-checksums.sh v0.1.257.
Contributor docs: docs/design/. Workflow: docs/agent_workflow.md.
Discord · Discussions · Issues · Feedback








