- ¿Qué es MonitorPro?
- Capturas de pantalla
- Características
- Requisitos
- Instalación
- Uso
- Arquitectura del proyecto
- Tecnologías utilizadas
- Contribuir
- Licencia
MonitorPro es una aplicación nativa de barra de menú para macOS que te permite monitorear los recursos de tu Mac en tiempo real, directamente desde la barra superior del sistema. Sin ventanas flotantes, sin distracciones — siempre a un clic de distancia.
💡 Diseñado para ser ligero, discreto y siempre visible en tu flujo de trabajo diario.
Dashboard desplegable de MonitorPro V2 en acción
| Métrica | Descripción | Actualización |
|---|---|---|
| 🟠 CPU | Nombre y modelo del procesador | Al inicio |
| 🔵 Núcleos | Número de núcleos activos | Al inicio |
| 🟢 Uptime | Tiempo de actividad del sistema | Cada segundo |
| ⚫ Disco | Espacio libre y total en GB | Cada segundo |
| 📊 Carga CPU | Uso real por diferencial de ticks (user+sys vs idle) | Cada segundo |
| 💾 RAM App | Memoria RAM usada por la app | Cada segundo |
- ✅ Vive en la barra de menú — no ocupa espacio en el Dock
- ✅ Interfaz nativa SwiftUI — fluida y eficiente
- ✅ Actualizaciones en tiempo real (cada 1 segundo)
- ✅ Carga de CPU medida con precisión real por núcleo (diferencial de ticks)
- ✅ Botón para cerrar la app desde el propio dashboard
- ✅ 0 dependencias externas — usa únicamente frameworks de Apple
- macOS 13 Ventura o superior
- Xcode 15 o superior
- Swift 5.9 o superior
- Mac con arquitectura Apple Silicon o Intel
-
Clona el repositorio:
git clone https://github.com/alberto2005-coder/MonitorPro.git cd MonitorPro -
Abre el proyecto en Xcode:
open MonitorPro.xcodeproj
-
Selecciona tu Mac como destino en la barra de Xcode.
-
Compila y ejecuta con
⌘ + R.
⚠️ Es posible que necesites configurar tu Team de desarrollo en Signing & Capabilities con tu Apple ID.
- Al ejecutar la app, verás un icono dinámico en tu barra de menú superior con el % de CPU.
- Haz clic en el icono para abrir el dashboard.
- Visualiza en tiempo real el estado de tu sistema (Gráfica de CPU, Red, Disco, etc).
- Haz clic en el engranaje ⚙️ superior derecho para habilitar el Auto-arranque o salir de la app.
MonitorPro/
├── MonitorPro/
│ ├── MonitorProApp.swift # Punto de entrada — MenuBarExtra
│ ├── ContentView.swift # UI principal del dashboard
│ ├── MonitorPro.entitlements # Permisos de la app
│ └── Assets.xcassets/ # Recursos (iconos, colores)
├── SystemMonitor.swift # Lógica de monitoreo del sistema
├── MonitorProTests/ # Tests unitarios
├── MonitorProUITests/ # Tests de interfaz
├── MonitorPro.xcodeproj/ # Configuración del proyecto Xcode
├── .gitignore
├── .gitattributes
└── README.md
SystemMonitor (ObservableObject)
│
├── init() ──► getCPUName() (una sola vez)
│
├── Timer cada 1s ──► getMemoryUsage() → usageMB
│ ──► updateDiskSpace() → diskFreeGB, diskTotalGB
│ ──► getUptime() → uptime
│ ──► updateCPULoad() → cpuLoad (ticks reales)
│
├── deinit ──► timer.invalidate() (limpieza de memoria)
│
└── @Published vars ──► ContentView (SwiftUI) ──► UI actualizada
| Tecnología | Uso |
|---|---|
| SwiftUI | Framework de interfaz de usuario |
| Foundation | Manejo de procesos y sistema |
| MenuBarExtra | Integración en barra de menú |
| mach / sysctlbyname | Lectura de métricas del sistema a bajo nivel |
| FileManager | Consulta del espacio en disco |
¡Las contribuciones son bienvenidas! Si quieres mejorar MonitorPro:
- Haz un fork del repositorio
- Crea una rama:
git checkout -b feature/nueva-funcionalidad - Haz tus cambios y commitea:
git commit -m "feat: añadir nueva funcionalidad" - Haz push:
git push origin feature/nueva-funcionalidad - Abre un Pull Request
Este proyecto está bajo la licencia MIT. Consulta el archivo LICENSE para más detalles.
- What is MonitorPro?
- Screenshots
- Features
- Requirements
- Installation
- Usage
- Project Architecture
- Technologies Used
- Contributing
- License
MonitorPro is a native macOS menu bar application that lets you monitor your Mac's resources in real time, directly from the system's top bar. No floating windows, no distractions — always one click away.
💡 Designed to be lightweight, unobtrusive, and always visible in your daily workflow.
| Metric | Description | Refresh Rate |
|---|---|---|
| 🟠 CPU | Processor name and model | On start |
| 🔵 Cores | Number of active processor cores | On start |
| 🟢 Uptime | System uptime | Every second |
| ⚫ Disk | Free and total disk space in GB | Every second |
| 📊 CPU Load | Real usage via tick differential (user+sys vs idle) | Every second |
| 💾 App RAM | RAM memory used by the app | Every second |
- ✅ Lives in the menu bar — no Dock icon
- ✅ Native SwiftUI interface — smooth and efficient
- ✅ Real-time updates (every 1 second)
- ✅ CPU load measured with real per-core tick differential
- ✅ Close button built into the dashboard
- ✅ Zero external dependencies — uses only Apple frameworks
- macOS 13 Ventura or later
- Xcode 15 or later
- Swift 5.9 or later
- Mac with Apple Silicon or Intel architecture
-
Clone the repository:
git clone https://github.com/alberto2005-coder/MonitorPro.git cd MonitorPro -
Open the project in Xcode:
open MonitorPro.xcodeproj
-
Select your Mac as the target in Xcode's toolbar.
-
Build and run with
⌘ + R.
⚠️ You may need to configure your development Team in Signing & Capabilities with your Apple ID.
- When you launch the app, a dynamic icon appears in your top menu bar showing the CPU %.
- Click the icon to open the dashboard.
- View your system's stats in real time (CPU Chart, Network, Disk, etc).
- Click the gear icon ⚙️ at the top right to enable Launch at login or quit the app.
MonitorPro/
├── MonitorPro/
│ ├── MonitorProApp.swift # Entry point — MenuBarExtra
│ ├── ContentView.swift # Main dashboard UI
│ ├── MonitorPro.entitlements # App permissions
│ └── Assets.xcassets/ # Resources (icons, colors)
├── SystemMonitor.swift # System monitoring logic
├── MonitorProTests/ # Unit tests
├── MonitorProUITests/ # UI tests
├── MonitorPro.xcodeproj/ # Xcode project configuration
├── .gitignore
├── .gitattributes
└── README.md
SystemMonitor (ObservableObject)
│
├── init() ──► getCPUName() (once)
│
├── Timer every 1s ──► getMemoryUsage() → usageMB
│ ──► updateDiskSpace() → diskFreeGB, diskTotalGB
│ ──► getUptime() → uptime
│ ──► updateCPULoad() → cpuLoad (real ticks)
│
├── deinit ──► timer.invalidate() (memory cleanup)
│
└── @Published vars ──► ContentView (SwiftUI) ──► Updated UI
| Technology | Usage |
|---|---|
| SwiftUI | User interface framework |
| Foundation | Process and system management |
| MenuBarExtra | Menu bar integration |
| mach / sysctlbyname | Low-level system metrics reading |
| FileManager | Disk space queries |
Contributions are welcome! To improve MonitorPro:
- Fork the repository
- Create a branch:
git checkout -b feature/new-feature - Make your changes and commit:
git commit -m "feat: add new feature" - Push:
git push origin feature/new-feature - Open a Pull Request
This project is licensed under the MIT License. See the LICENSE file for details.


