# MStat
**MStat** is a native macOS menu bar utility built with Rust that shows live system stats in the top bar.
It supports:
- CPU usage
- Memory usage
- Storage usage
- Swap usage
- Load average
You can customize:
- Which stats are visible
- Warning and critical thresholds
- Theme (including transparent mode)
- Memory/storage display style (`used/total` vs `%`)
## Requirements
- macOS
- Rust toolchain (`cargo`)
## Build
```bash
cargo build --release
```
Binary:
```bash
target/release/mstat
```
## Run
```bash
cargo run --release
```
Or run the built binary directly:
```bash
./target/release/mstat
```
## Install as macOS app (.app)
You can package it as an app bundle:
```bash
mkdir -p "$HOME/Applications/MStat.app/Contents/MacOS"
mkdir -p "$HOME/Applications/MStat.app/Contents/Resources"
cp target/release/mstat "$HOME/Applications/MStat.app/Contents/MacOS/mstat"
chmod +x "$HOME/Applications/MStat.app/Contents/MacOS/mstat"
```
Add `Info.plist` under:
```bash
$HOME/Applications/MStat.app/Contents/Info.plist
```
## Auto-start on login
Create a LaunchAgent:
```bash
$HOME/Library/LaunchAgents/com.pnkjsng.mstat.plist
```
Then load it:
```bash
launchctl bootstrap "gui/$(id -u)" "$HOME/Library/LaunchAgents/com.pnkjsng.mstat.plist"
launchctl enable "gui/$(id -u)/com.pnkjsng.mstat"
```
## Install from crates.io
```bash
cargo install mstat
```
## Run in background at login
After install, enable startup once:
```bash
mstat --install-startup
```
Check status:
```bash
mstat --startup-status
```
Disable startup:
```bash
mstat --uninstall-startup
```
## License
MIT