# Mac Task Manager A native macOS system monitor written in SwiftUI and inspired by Windows 11 Task Manager. Validated with automated tests, debug and release builds, packaged-app code-signature checks, and hands-on UI regression through macOS accessibility and screenshots. ## Features - Live process list with CPU, memory, disk I/O, and network usage - Cached native application icons throughout process groups, app history, startup apps, users, services, properties, and dependency views - Search and sortable process columns, including live Disk and Network rates - Column sorting automatically flattens process categories for a true global order; the header menu can restore Group by type - Expandable application groups plus an advanced Details table with persisted optional columns for threads, open handles, architecture, priority/nice, parent PID, CPU time, and other diagnostics - Collapsible Windows-style Apps, Background processes, and macOS processes categories - Native process sampling reports from the Inspect submenu, with save-location memory and completion feedback - Persistent preferences for the default start page, Performance selection and CPU graph mode, update speed, always-on-top behavior, and process/detail table layouts - Expandable application groups with aggregate metrics and individual child processes - Group-wide right-click controls for ending, pausing, resuming, reprioritizing, copying, and inspecting related processes - Nested right-click menus for process control, priority, copying, inspection, and properties - Graceful termination, force quit, process-tree termination, pause, and resume actions - CPU and memory history charts - Right-click CPU graph switching between summary and live per-core views - Live network receive/send throughput with an auto-scaling 60-second chart - Persistent per-app history with cumulative CPU time, network totals, download/upload breakdowns, and reset confirmation - Disk, uptime, process, and thread statistics - One live Performance entry per available removable volume, with capacity, availability, filesystem, mount point, and ejectable status; disconnected volumes are hidden - Detailed memory telemetry for active, cached, wired, compressed, and swap usage plus hardware type, manufacturer, and reported speed/frequency - Native disk read/write throughput, IOPS, active time, and response-time histories - Live Apple GPU utilization with overall, renderer, and tiler histories plus GPU memory and core statistics - User, detail, service, persistent app history, and startup views covering native login items plus LaunchAgents - Estimated live startup impact with Low, Medium, and High classifications and detailed CPU/memory/disk evidence - Combined user and system launchd Services registry with scope filtering, running/stopped state, safe Start/Stop/Restart controls, protected-system labeling, configuration reveal, Details, and Properties actions - Process dependency inspector with relationship chains, network/local sockets, canonical framework dependencies, open files, and handle totals - Persistent Resource values submenu for switching memory, disk, and network cells between values and percentages - Signed-in Users sessions with active-state and aggregate resources plus Lock, home-folder, account-management, Copy, Details, and Properties actions - Configurable 1/5/10-second diagnostic samples with remembered folders and optional automatic timestamped output - Run New Task sheet and persistent update-speed settings - WinUI-style expanded and compact navigation rail controlled by the native title-bar sidebar button, with persisted state, balanced spacing, tooltips, and accessibility labels - Native macOS menus, toolbar, light/dark mode, and accessibility behavior ## Run Open `Package.swift` in Xcode and press Run, or use: ```sh swift run ``` To create a standard double-clickable app bundle: ```sh ./scripts/build-app.sh open "dist/Task Manager.app" ``` To create a drag-to-install disk image containing the app and an Applications shortcut: ```sh ./scripts/build-app.sh ./scripts/build-dmg.sh ``` The app refreshes every two seconds. Some system-owned processes cannot be ended without elevated permissions.