Skip to content

Repository files navigation

mac-stats

Menu-bar system monitor for Apple Silicon (optional local AI agent).

GitHub release CI Release License: MIT

Rust Tauri JavaScript Python macOS

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

Table of contents


Quick start — Just the monitor

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

Look at the menu bar → click for the window. No Ollama required. Disk Cleanup, monitors, and themes are all in the glass window.


Quick start — Monitor + AI agent

  1. Install the app (above).
  2. Install Ollama and pull a model:
    curl -fsSL https://ollama.com/install.sh | sh
    ollama pull llama3.2
  3. Enable AI in Settings (Enable local AI agent) or:
    # in ~/.mac-stats/config.json
    { "aiAgentEnabled": true, "menuBarCompact": true }
  4. Open the window → AI Chat (Ollama) → try: What's my CPU temp?

Details: docs/GETTING_STARTED.md.


Screenshots

Themes

Apple theme Data Poster theme Neon theme

Features

CPU metrics Website monitors Disk Cleanup Agent Ops AI chat (Ollama) Top processes

Demo video

~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


vs. Stats / iStat Menus / MenuMeters

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.


Install options

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).


Privacy

No cloud telemetry — everything stays in ~/.mac-stats/. Secrets: Keychain and/or .config.env (never commit). See docs/CONFIG.md.


Updates

In-app banner checks GitHub Releases. Or: brew upgrade --cask mac-stats.


Full features

Menu bar & glass UI

  • Compact menu bar by default (CPU + SSD, plus °C when known); set menuBarCompact: false for 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).

Disk Cleanup

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.

Local AI agent (opt-in)

  • Ollama chat, Discord (Werner), FETCH_URL, Brave, Perplexity, CDP browser, tasks, scheduler, MCP, Agent Ops.
  • Off until aiAgentEnabled: true.

Configuration

docs/CONFIG.md · Settings → Reset to monitor defaults.

Commands

Command Description
mac_stats / open -a mac-stats Start
mac_stats --cpu Start with window open
mac_stats -vv Verbose debug.log

Build from source

git clone https://github.com/raro42/mac-stats.git
cd mac-stats
git checkout v0.1.257   # pin when possible
./run

Requires Rust + Xcode CLT (macOS Tauri). Checksums: ./scripts/print-release-checksums.sh v0.1.257.

Contributor docs: docs/design/. Workflow: docs/agent_workflow.md.


Contact

Discord · Discussions · Issues · Feedback

MIT License

About

Menu-bar system monitor for Apple Silicon (optional local AI agent). Rust + Tauri. No cloud telemetry.

Topics

Resources

Stars

12 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages