MacTaskMan is a native, read-only macOS system monitor with a familiar task-manager layout. SwiftUI provides the desktop interface, while a narrow C bridge reads macOS system APIs.
This repository distributes source code only. It does not provide prebuilt, signed, or notarized application downloads. Clone the repository and build it locally with Apple's toolchain.
- Live overall and per-logical-processor CPU utilization with 60-second history
- Memory usage, availability, compression, wired memory, and swap
- APFS/block-device read and write throughput
- Per-interface network receive and send throughput
- Processes with CPU, memory, threads, state, lifetime CPU time, and path
- Ascending and descending sorting from table column headers
- Current users aggregated from the process table
- Read-only LaunchAgent and LaunchDaemon inventory
- Thermal pressure, uptime, process count, provider health, and manual refresh
- Optional Apple Silicon GPU, Neural Engine, power, temperature, and fan data
All system information stays on the Mac. MacTaskMan has no network client, account system, analytics upload, privileged helper, or automatic updater.
- macOS 14 or later
- Swift 5.10 or later
- Xcode Command Line Tools or full Xcode
Native CPU, memory, disk, network, process, and launch-item providers work without optional dependencies. Advanced sensor metrics require Apple Silicon and a separately installed copy of mactop.
git clone https://github.com/gheorgheiuga/MacTaskMan.git
cd MacTaskMan
./script/build_and_run.shThe development script builds with SwiftPM, stages an ignored local
dist/MacTaskMan.app, and launches it. It is a local development helper, not a
release or distribution pipeline.
Optional modes:
./script/build_and_run.sh --verify
./script/build_and_run.sh --telemetry
./script/build_and_run.sh --logs
./script/build_and_run.sh --debugInstall mactop separately:
brew install mactopThen open MacTaskMan > Settings and enable Apple Silicon sensors. MacTaskMan keeps this provider off by default, displays the canonical executable path before use, limits its input stream, and stops it when the switch is disabled. Native providers continue working if mactop is absent, disabled, stale, malformed, or stopped.
MacTaskMan detects mactop through /opt/homebrew/bin/mactop or
/usr/local/bin/mactop. mactop uses hardware-sensitive Apple IOReport, SMC,
IOKit, and IOHID surfaces for these additional measurements.
| Metric | macOS source |
|---|---|
| CPU cores | Mach host_processor_info(PROCESSOR_CPU_LOAD_INFO) deltas |
| Memory | Mach host_statistics64, hw.memsize, and vm.swapusage |
| Processes | sysctl(KERN_PROC_ALL), proc_pidinfo, and proc_pidpath |
| Network | getifaddrs and if_data counters |
| Disk I/O | IOKit AppleAPFSVolume, with IOBlockStorageDriver fallback |
| Capacity | FileManager.attributesOfFileSystem |
| Thermal pressure | ProcessInfo.thermalState |
| GPU, ANE, power, temperatures, fans | Opt-in local mactop --headless stream |
swift build -c release
swift run -c release MetricsSmokeCheck
swift run -c release MactopSecuritySmokeCheckThe smoke checkers validate native providers plus the optional-provider opt-in and stream-size boundaries without requiring XCTest or the Swift Testing macro runtime.
MacTaskMan is available under the MIT License. mactop is a separate MIT-licensed project; its notice is preserved in THIRD_PARTY_NOTICES.md.
MacTaskMan is an independent project and is not affiliated with Apple or Microsoft.
