Skip to content

About

terminal-based macOS process and resource analyzer inspired by tools like `htop`, but built specifically for macOS using native system APIs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

11 Commits

Folders and files

Repository files navigation

macmon

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.


Features

  • 📊 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

Screenshots

Coming soon

(Add screenshots or a short GIF once the UI is stable — this dramatically improves GitHub appeal.)


Tech Stack

  • Language: Rust
  • TUI: ratatui + crossterm
  • System Info: sysinfo
  • Platform: macOS (Intel & Apple Silicon)

Requirements

  • macOS
  • Rust (stable)
  • Xcode Command Line Tools

Installation

1. Install Rust

curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

Verify installation:

rustc --version
cargo --version

2. Install Xcode Command Line Tools

xcode-select --install

Running Locally

Clone the repository:

git clone https://github.com/your-username/macmon.git
cd macmon

Run the application:

cargo run

You should see a fullscreen terminal interface. Press q to quit.

If the terminal looks broken after a crash, run:

reset

Controls

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)

Project Structure

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/

Architecture Overview

macmon is split into three main layers:

  1. System Layer Collects raw data from macOS (CPU, memory, battery, processes)

  2. Application Layer Aggregates metrics, manages state, sorting, and actions

  3. UI Layer Renders data using a responsive terminal interface

This separation keeps the codebase modular and easy to extend.


Roadmap

  • Process table with scrolling
  • Sorting & filtering
  • Battery and energy impact metrics
  • Per-process network I/O
  • Export reports (JSON)
  • Homebrew formula
  • Plugin system

Contributing

Contributions are welcome!

  1. Fork the repository
  2. Create a feature branch
  3. Commit your changes
  4. Open a pull request

Please keep code clean, documented, and tested where possible.


License

MIT License


Author

Built by Your Name

If you find this project useful, feel free to ⭐️ the repo!

About

terminal-based macOS process and resource analyzer inspired by tools like `htop`, but built specifically for macOS using native system APIs

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages