macmon is a fast, terminal-based macOS process and resource analyzer inspired by tools like htop, but built specifically for macOS using native system APIs.
It provides real-time visibility into CPU, memory, battery usage, and running processes — all inside a clean, interactive TUI.
- 📊 Real-time CPU and memory monitoring
- 🧠 Process-level statistics (CPU %, memory usage)
- 🔋 Battery status (planned)
- 🖥 macOS-native metrics via system APIs
- ⌨️ Keyboard-driven terminal UI
- ⚡ Lightweight and fast
Coming soon
(Add screenshots or a short GIF once the UI is stable — this dramatically improves GitHub appeal.)
- Language: Rust
- TUI: ratatui + crossterm
- System Info: sysinfo
- Platform: macOS (Intel & Apple Silicon)
- macOS
- Rust (stable)
- Xcode Command Line Tools
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shVerify installation:
rustc --version
cargo --versionxcode-select --installClone the repository:
git clone https://github.com/your-username/macmon.git
cd macmonRun the application:
cargo runYou should see a fullscreen terminal interface.
Press q to quit.
If the terminal looks broken after a crash, run:
reset
| Key | Action |
|---|---|
q |
Quit |
↑ ↓ |
Navigate processes (planned) |
c |
Sort by CPU (planned) |
m |
Sort by memory (planned) |
k |
Kill process (planned) |
r |
Refresh |
e |
Export snapshot (planned) |
macmon/
├── src/
│ ├── app/ # Application state & actions
│ ├── ui/ # TUI layout and widgets
│ ├── process/ # Process sampling & sorting
│ ├── macos/ # macOS-specific system APIs
│ └── main.rs
├── docs/ # Architecture & design notes
├── assets/ # Screenshots & demos
└── tests/
macmon is split into three main layers:
-
System Layer Collects raw data from macOS (CPU, memory, battery, processes)
-
Application Layer Aggregates metrics, manages state, sorting, and actions
-
UI Layer Renders data using a responsive terminal interface
This separation keeps the codebase modular and easy to extend.
- Process table with scrolling
- Sorting & filtering
- Battery and energy impact metrics
- Per-process network I/O
- Export reports (JSON)
- Homebrew formula
- Plugin system
Contributions are welcome!
- Fork the repository
- Create a feature branch
- Commit your changes
- Open a pull request
Please keep code clean, documented, and tested where possible.
MIT License
Built by Your Name
If you find this project useful, feel free to ⭐️ the repo!