A plain-English activity monitor for macOS built with native SwiftUI.
Quick Start · Installation · Usage · Architecture · Development · Resources
Tip
From the repo root, run cd Lucid && make run to build Lucid.app and launch it locally on macOS.
Lucid turns cryptic process names like mds_stores, configd, and distnoted into plain-English descriptions so you can quickly understand what is running on your Mac, how much CPU or memory it is using, and whether it is safe to terminate.
git clone https://github.com/tanRdev/lucid-task-manager.git
cd lucid-task-manager/Lucid
make runThis builds Lucid.app from source and opens it locally.
- macOS 14 or newer
- A Swift toolchain that supports
swift-tools-version: 6.2
git clone https://github.com/tanRdev/lucid-task-manager.git
cd lucid-task-manager/Lucid
make appThe generated app bundle is placed in the Swift build output directory.
cd Lucid
make runcd Lucid
make installOr open Lucid/Package.swift in Xcode and run the app there.
Note
Lucid disables App Sandbox so it can inspect running processes. Development builds work locally; distributing the app outside development requires Developer ID signing and notarization.
macOS may display a message that the app cannot be verified. To open it:
Option 1: Right-click
- Right-click (or Control-click) Lucid.app in Finder.
- Select Open from the context menu.
- Click Open in the dialog that appears.
Option 2: Terminal
xattr -d com.apple.quarantine /Applications/Lucid.appYou only need to do this once. After that, Lucid opens normally.
- Launch Lucid.
- Browse live processes sorted by CPU, memory, name, or PID.
- Search by process name or description.
- Filter by safety category or by listening port from the sidebar.
- Use the context menu to kill processes, copy executable paths, or reveal binaries in Finder.
| Category | Meaning |
|---|---|
| System | Protected macOS processes that Lucid treats as unsafe to kill |
| User | User-installed or user-owned apps and processes |
| Unknown | Processes that could not be confidently classified |
| Feature | Description |
|---|---|
| Plain-English process names | Maps hundreds of common macOS processes to human-readable descriptions |
| Real-time monitoring | Tracks CPU and memory usage with compact history charts |
| Port visibility | Shows which processes are listening on which ports |
| Safer process termination | Confirms destructive actions and protects system processes |
| Native macOS interface | Built in SwiftUI with macOS-focused visuals and controls |
| Zero third-party dependencies | Uses Swift Package Manager with Apple frameworks only |
Lucid/
├── LucidApp.swift # App entry point
├── ContentView.swift # Main table and process actions
├── Models/
│ ├── LucidProcess.swift # Process model and derived fields
│ ├── ProcessSortMode.swift # Sorting options
│ └── Safety.swift # Safety classification
├── Services/
│ ├── ProcessMonitor.swift # Observable app state and refresh loop
│ ├── DarwinProcess.swift # Darwin process API interop
│ ├── ProcessDictionary.swift # Human-readable process name mapping
│ └── PortScanner.swift # `lsof`-based listening port detection
├── Views/
│ ├── Content/ # Header and process table UI
│ ├── Dashboard/ # Metrics and sparklines
│ ├── Shared/ # Shared safety/status components
│ └── Sidebar/ # Filters, ports, and system summary
└── Theme/
└── GlassModifiers.swift # Shared surface styling
Lucid combines Darwin process APIs, AppKit metadata, and periodic polling to build a readable live view of macOS activity:
proc_listallpids()enumerates running processes.proc_pidinfo()collects CPU time and resident memory.proc_name()andproc_pidpath()identify executables.NSWorkspace.shared.runningApplicationsfills in full GUI app names when system APIs truncate them.lsof -iTCP -sTCP:LISTEN -n -Pmaps listening ports back to PIDs.
ProcessMonitor refreshes this data on a task-based loop and keeps the UI state synchronized through @Observable state.
Warning
Some root-owned processes expose limited metrics without elevated privileges, so they may appear with partial CPU or memory information.
cd Lucid
make test
make app
make runThe repository's CI workflow is configured to run:
swift build --target Lucidswift build -Xswiftc -warn-concurrency --target Lucidswift test./build-app.sh debug
Contributions are welcome. Lucid is open source under the MIT License.
- Report bugs — Open an issue with steps to reproduce
- Suggest features — Describe the problem you're solving before proposing solutions
- Improve process mappings — Add or refine human-readable descriptions in
ProcessDictionary.swift - Submit pull requests — Fork the repo, branch off
main, and open a PR with a clear description
git clone https://github.com/tanRdev/lucid-task-manager.git
cd lucid-task-manager/Lucid
make test- Follow existing Swift conventions and formatting
- Add tests for new functionality
- Keep commits focused and descriptive
- Run
make testbefore opening a PR
Lucid is licensed under the MIT License. See the LICENSE file for details.