You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A Speccy-style system information and hardware utility for macOS — Apple-standard UI, real-time monitoring, fan control, hardware tests, and diagnostics. Built with SwiftUI and native system APIs.
Terms and Conditions; Privacy Policy (sidebar). First launch requires acceptance to use the app.
Status bar
Optional menu bar icon with live stats (CPU %, memory %, CPU temp, etc.); customizable items; launch at login; start minimized
Screenshots
Main application
Status bar menu
The main app shows the Summary dashboard: overview cards, health score, stress history, SSD lifespan, display aging, thermal map, and live CPU/memory charts. Use the status bar icon to see live CPU temperature (and other optional stats) without opening the window.
Features in detail
Summary
Overview grid — Cards for OS, CPU, RAM, motherboard, graphics, storage with key metrics.
System health score — Single score from temperatures, fan usage, battery cycle count and max capacity.
Hardware stress history — Aggregated CPU/GPU temps and fan usage over the last 30 days.
SSD lifespan predictor — SMART data (TB written, % used) and optional writes/day → years remaining.
Display aging monitor — Tracks display usage over time for aging metrics.
Thermal map — Top-down MacBook-style view with temperature labels and heat indication (e.g. red for hot zones).
Live charts — CPU usage (overall + per-core) and memory usage, updating every second.
Export report — Save a .txt report (OS, CPU, RAM, GPU, storage, network) from the Summary screen.
Operating System
Field
Description
Name, version, build
macOS version string and build number
Architecture
e.g. arm64, x86_64
Kernel, boot mode
Kernel version; boot mode (e.g. EFI)
Install date, uptime
OS install date; system uptime
Computer / host name
Network and host identifiers
Users
Current user — Name, UID, GID, full name, home directory, shell.
Local users — List of local accounts (from dscl), excluding system users.
Slots — Per-slot details (vendor, part number, size) when available (e.g. from system_profiler SPMemoryDataType).
Graphics
GPU — List from IOKit; VRAM, Metal support.
Displays — Per-display: resolution, scale, rotation, main display flag.
Storage
Volumes & partitions — Capacity, used, free per volume.
Pie chart — Storage usage by partition.
Fan Control
Read — Actual RPM, min/max per fan; CPU, GPU, battery temperatures from SMC.
Write — Manual target RPM and manual/auto mode (requires administrator privileges; see Permissions).
Error handling — Clear message and instructions (e.g. run with sudo) if write is denied.
Sensors
SMC readings — Temperatures, voltages, current, power, fan speeds (all defined SMC keys).
System state — Lid open/closed, clamshell mode, AC power, ambient light, keyboard backlight where available.
Trackpad Scale
Uses Force Touch trackpad pressure (MultitouchSupport) to estimate weight (e.g. grams).
Calibration factor in UI for scaling the reading.
Task Manager
Process list — Name (friendly where possible), icon, PID, CPU %, memory; sortable columns.
Kill — End non-system processes (uses kill; no sudo in-app).
Tests
Test
Description
Display colors
Red, green, blue, white, black blocks; pass when verified
Trackpad
Live pressure; auto-pass above threshold or manual pass
Keyboard
Opens window with visual Mac/Windows keyboard; keys turn green when pressed; pass when all keys pressed
Trace
Draw on canvas; pass after drawing
Microphone
Live level meter; pass when confirmed working
Camera
Live preview; pass when confirmed working
Speaker
Play test sound; pass when confirmed
Audio devices
Lists default input/output; pass when OK
Sensors
Checks CPU/GPU/SSD temps and SMC availability; pass when OK
Status for each test: Pending / Pass / Fail, with a summary card at the top.
Status bar
Show/hide — Toggle menu bar icon in Settings.
Customizable items — Choose what appears in the dropdown and what appears next to the icon (e.g. CPU temperature without opening the menu).
Options — App version, current user, CPU usage, memory usage, GPU usage, CPU/GPU/SSD/battery temperature, fan speed, lid state, power adapter.
Launch at login — Register with SMAppService (macOS 13+).
Start minimized — Start with window closed (e.g. only status bar visible).
First launch
On first launch, Terms and Conditions and Privacy Policy are shown; user must tap I Accept to use the app. Acceptance is stored locally; the Agreements item is not in the sidebar.
Private MultitouchSupport (C bridge) for Force Touch pressure
Persistence
UserDefaults (settings, agreement); JSON in Application Support (stress history, display aging)
Privileges
No App Sandbox (for SMC, process list); optional run with sudo for fan write
Build & run
Open OSXecs.xcodeproj in Xcode.
Select the OSXecs scheme and My Mac.
Product → Run (⌘R).
Minimum: macOS 26 (Xcode 26). For older macOS, lower the deployment target in the project.
Permissions
The app is built without App Sandbox so Fan Control can open AppleSMC and Task Manager can list processes.
Fan control reading (RPM, temps) works without admin.
Fan control writing (manual speed, manual/auto mode) requires administrator access. If you see “denied” or “administrator access required”, quit the app, open Terminal, and run: sudo open -a OSXecs
(Enter your password. Use at your own risk.)
Microphone and camera tests use system permission prompts; grant access in System Settings if needed.
Contributing
Feel free to fork this repository and open pull requests for bug fixes, new features, or documentation improvements. Contributions are welcome.
About
Speccy-style system information app for macOS — real-time monitoring, fan control, hardware tests