Skip to content

Repository files navigation

Auspex icon

Auspex

A lightweight, beautiful macOS menu bar monitor for your system's vital signs.

Disk · RAM · CPU · Network · Battery · Temperatures — at a glance, with a glassy native UI.

PlatformApple SiliconSwiftUILicense

Download Auspex

⬇ Download the latest release · All releases


Auspex lives in your menu bar. Click the pulse icon for a live, glassy panel of everything your Mac is doing right now. It's native SwiftUI, uses only built-in macOS APIs (zero third-party dependencies), and idles at roughly 0.5% CPU.

In ancient Rome, an auspex read the signs to divine the state of things. This one reads your Mac's.

Screenshots

Tip: drop a panel screenshot at docs/panel.png and uncomment the line above to show it here.

Features

  • CPU — overall load ring, per-core bars (Performance/Efficiency labeled), and a load sparkline.
  • Memory — used / wired / compressed, with live memory-pressure color (green → yellow → red).
  • Storage — every mounted volume incl. external drives; free space matches Finder.
  • Network — live up/down throughput with trend sparklines and session totals.
  • Battery — charge, charging state, health %, and cycle count (laptops only).
  • Temperatures — on-die sensors plus the system thermal state.
  • Custom menu bar mark with an optional inline CPU/RAM %.
  • Animated, glassy UI — Liquid Glass cards, glowing rings, rounded type; tuned for light & dark.
  • Frugal — one shared timer; fast updates while open, a slow tick while closed, and it pauses entirely if you hide the inline stat.
  • Open at login via SMAppService.

Requirements

  • macOS 26 (Tahoe) or later — the UI uses the system Liquid Glass APIs.
  • Apple Silicon (arm64).
  • To build: Xcode 26+ and XcodeGen (brew install xcodegen).

Install

Option A — Download (no Xcode needed)

  1. Download Auspex.zip (always the newest release) and unzip it. (Or pick a specific version from the Releases page.)

  2. Move Auspex.app to your /Applications folder.

  3. Because the app is open-source and not signed with a paid Apple Developer ID, macOS Gatekeeper will quarantine it on first launch. Clear it with one command:

    xattr -dr com.apple.quarantine /Applications/Auspex.app

    Then open it normally. (Alternative: right-click the app → OpenOpen; on recent macOS you may instead need System Settings → Privacy & Security → Open Anyway.)

  4. Look for the pulse icon in your menu bar. To keep it around, enable Open at Login in the app's Settings.

Why the extra step? Notarizing apps for friction-free download requires a paid Apple Developer account. Building from source (Option B) avoids this entirely, since your Mac signs the app locally.

Option B — Build from source (recommended)

git clone https://github.com/breadoncee/Auspex.git
cd Auspex
brew install xcodegen # one-time, if you don't have it
make run # generates the project, builds, and launches

That's it. make install copies an optimized build to /Applications.

Usage

  • Click the menu bar pulse icon to open/close the panel.
  • Settings (in the panel footer): refresh interval, which stat shows inline in the menu bar (CPU %, RAM %, or icon only), and Open at Login.
  • Quit from the panel footer.

Building & packaging

This project is generated from project.yml by XcodeGen, so the .xcodeproj is not checked in — make regenerates it for you.

CommandWhat it does
make runBuild (Debug) and launch
make buildBuild the Debug .app
make releaseBuild the optimized Release .app
make distPackage dist/Auspex-<version>.zip for a GitHub Release
make installCopy a Release build into /Applications
make iconRegenerate the app icon + menu bar glyph
make cleanRemove build artifacts and the generated project

Prefer Xcode? Run xcodegen generate, then open Auspex.xcodeproj.

Cutting a release

make dist

Then create a new GitHub Release and upload dist/Auspex-<version>.zip. Bump the version in project.yml (MARKETING_VERSION) and pass it through, e.g. make dist VERSION=1.1.

How it works

Everything is read with native macOS APIs — no dependencies:

MetricAPI
DiskFileManager.mountedVolumeURLs + URLResourceValues
Memoryhost_statistics64 + sysctl kern.memorystatus_vm_pressure_level
CPUhost_processor_info (tick diffing, per core)
Networkgetifaddrs + if_data (byte-counter diffing)
BatteryIOKit power sources + AppleSmartBattery
Temperaturesprivate IOHIDEventSystemClient (best-effort) + ProcessInfo.thermalState

A single @ObservableSystemMonitor owns one timer and orchestrates per-metric collectors on a background queue, publishing snapshots to the SwiftUI views.

Project structure

project.yml XcodeGen spec (target, signing, IOKit linkage, app icon)
Makefile build / package / install tasks
Sources/
AuspexApp.swift @main — MenuBarExtra(.window) + Settings
Assets.xcassets/ app icon + menu bar glyph
Bridging/ private IOHID temperature declarations
Model/ value types, thresholds, formatters, SystemMonitor
Collectors/ one collector per metric (native APIs)
Views/ panel, cards, gauges, sparklines, settings, logo
Services/ launch-at-login (SMAppService)
Tools/ icon/glyph generators + a CLI verification harness

Notes & caveats

  • Unsigned distribution. The prebuilt download is ad-hoc signed, so first-launch needs the Gatekeeper step above. Building from source avoids it.
  • Temperatures are best-effort. Apple Silicon has no public temperature API, so Auspex uses a private IOKit API (the same approach as similar tools). It can break on future macOS releases and rules out Mac App Store distribution; it degrades gracefully to the public thermal state. Every other metric uses stable, public APIs.
  • Not sandboxed — it's a personal/local utility, not an App Store app.

Changelog

See CHANGELOG.md for the version history.

Contributing

Issues and PRs welcome. Run make run to build locally; Tools/main.swift is a CLI harness that prints a snapshot for cross-checking values against df, top, pmset, etc.

License

MIT © breadoncee

About

A lightweight, beautiful macOS menu bar monitor for your system's vital signs — disk, RAM, CPU, network, battery, temperatures.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages