# I put a local LLM agent inside a menu-bar Mac monitor (and you can leave it off)

> Source: <https://github.com/raro42/mac-stats>
> Published: 2026-08-10 18:57:59+00:00

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

**off by default**`aiAgentEnabled: true`

or use Settings📋 [Changelog](/raro42/mac-stats/blob/main/CHANGELOG.md) · ✨ [Features](/raro42/mac-stats/blob/main/FEATURES.md) · 📘 [Getting Started](/raro42/mac-stats/blob/main/docs/GETTING_STARTED.md) · 🗺 [Roadmap](/raro42/mac-stats/blob/main/docs/ROADMAP.md) · 🍺 [Homebrew](/raro42/mac-stats/blob/main/docs/homebrew.md) · 🌐 [Landing](/raro42/mac-stats/blob/main/docs/site/index.html) · 🔬 [How we compare](/raro42/mac-stats/blob/main/docs/042_how_we_compare.md)

[Quick start — Just the monitor](#quick-start--just-the-monitor)[Quick start — Monitor + AI agent](#quick-start--monitor--ai-agent)[Screenshots](#screenshots)[vs. Stats / iStat Menus / MenuMeters](#vs-stats--istat-menus--menumeters)[Install options](#install-options)[Privacy](#privacy)[Updates](#updates)[Full features](#full-features)[Build from source](#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-stats
```

Look 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](/raro42/mac-stats/blob/main/docs/GETTING_STARTED.md).

[~49s live window capture](https://cdn.jsdelivr.net/gh/raro42/mac-stats@main/docs/screens/mac-stats-features.mp4) — 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. ([repo file](/raro42/mac-stats/blob/main/docs/screens/mac-stats-features.mp4))

Full theme gallery and capture notes: [docs/screens/README.md](/raro42/mac-stats/blob/main/docs/screens/README.md).

Repo: [github.com/raro42/mac-stats](https://github.com/raro42/mac-stats/)

Closest peers from a 2026 menu-bar monitor scan ([how we compare](/raro42/mac-stats/blob/main/docs/042_how_we_compare.md)):

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

**Source**[Build from source](#build-from-source)** Gatekeeper / notarization:** Prefer signed+notarized builds ([docs/NOTARIZATION.md](/raro42/mac-stats/blob/main/docs/NOTARIZATION.md)). Until CI secrets are set, use Right-click → **Open**.

Config templates in repo root: [ config.minimal.json](/raro42/mac-stats/blob/main/config.minimal.json) (monitor-only),

[(AI enabled).](/raro42/mac-stats/blob/main/config.example.json)

`config.example.json`

**No cloud telemetry** — everything stays in ** ~/.mac-stats/**. Secrets: Keychain and/or

`.config.env`

(never commit). See [docs/CONFIG.md](/raro42/mac-stats/blob/main/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: 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).

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](/raro42/mac-stats/blob/main/FEATURES.md#disk-cleanup)· screenshot above.

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

.

[ docs/CONFIG.md](/raro42/mac-stats/blob/main/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
./run
```

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

.

Contributor docs: [docs/design/](/raro42/mac-stats/blob/main/docs/design). Workflow: [docs/agent_workflow.md](/raro42/mac-stats/blob/main/docs/agent_workflow.md).

[Discord](https://discord.com/users/687953899566530588) · [Discussions](https://github.com/raro42/mac-stats/discussions) · [Issues](https://github.com/raro42/mac-stats/issues) · [Feedback](https://github.com/raro42/mac-stats/issues/3)
