π Localized in 7 languages: πΊπΈ English | πΉπ· TΓΌrkΓ§e | π©πͺ Deutsch | π«π· FranΓ§ais | πͺπΈ EspaΓ±ol | π―π΅ ζ₯ζ¬θͺ | π¨π³ δΈζ
A lightweight, native macOS menu bar app that displays real-time system metrics with beautiful mini graphs.
Features
- CPU monitoring - Usage percentage, temperature, frequency (Intel), per-core tracking with history graph
- Memory monitoring - Used/free memory, active/wired/compressed breakdown
- GPU monitoring - Utilization percentage, temperature, display refresh rate (Hz)
- Network monitoring - Download/upload speeds, local & public IP, session totals
- Disk monitoring - Usage percentage, free space, SSD health (when available)
- Battery monitoring - Charge level, charging status, time remaining, power consumption
- Fan monitoring - RPM for each fan (when available)
- System info - Load average, process count, swap usage, kernel version, uptime, screen brightness
- Multi-language support - Choose your language from the menu (7 languages available)
Interactive features
- Click any card to open the corresponding system app (Activity Monitor, Disk Utility, System Settings, etc.)
- Right-click the menu bar icon for a quick menu with settings and language selection
Comparison with Paid Alternatives
| Feature | DodoPulse | iStat Menus | TG Pro | Sensei |
|---|---|---|---|---|
| Price | Free | ~$14 | $10 | $29 |
| CPU monitoring | β | β | β | β |
| GPU monitoring | β | β | β | β |
| Memory monitoring | β | β | β | β |
| Network monitoring | β Multi-interface | β Per-app | β | β |
| Disk monitoring | β | β | β | β |
| Battery monitoring | β | β + Bluetooth | β | β |
| Fan control | β | β | β | β |
| Weather | β | β | β | β |
| Optimization tools | β | β | β | β |
| Open source | β | β | β | β |
| Single file | β (~2000 lines) | β | β | β |
Why DodoPulse? Free, open source, lightweight (~1-2% CPU), privacy-focused (no analytics), and easy to audit/modify.
Requirements
- macOS 12.0 (Monterey) or later
- Apple Silicon or Intel Mac
Installation
About notarization: DodoPulse is not currently notarized by Apple. Notarization is Apple's security process that scans apps for malware before distribution. Without it, macOS may show warnings like "app is damaged" or "can't be opened". This is safe to bypass for open-source apps like DodoPulse where you can inspect the code yourself. Fix: Run
xattr -cr /Applications/DodoPulse.appin Terminal, then open the app. Notarization is planned for a future release.
Option 1: Homebrew (recommended)
brew tap dodoapps/tap brew install --cask dodopulse
On first launch, right-click the app β Open β confirm. Or run: xattr -cr /Applications/DodoPulse.app
Option 2: Download DMG
- Download the latest DMG from Releases
- Open the DMG and drag DodoPulse to Applications
- On first launch, right-click β Open β confirm (see note above about notarization)
Option 3: Build from source
-
Clone the repository:
git clone https://github.com/dodoapps/dodopulse.git cd dodopulse -
Build the app:
swiftc -O -o DodoPulse DodoPulse.swift -framework Cocoa -framework IOKit -framework Metal
-
Run:
Option 4: Create an app bundle (optional)
If you want DodoPulse to appear as a proper macOS app:
-
Create the app structure:
mkdir -p DodoPulse.app/Contents/MacOS cp DodoPulse DodoPulse.app/Contents/MacOS/
-
Create
DodoPulse.app/Contents/Info.plist:<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>CFBundleExecutable</key> <string>DodoPulse</string> <key>CFBundleIdentifier</key> <string>com.bluewave.dodopulse</string> <key>CFBundleName</key> <string>DodoPulse</string> <key>CFBundleVersion</key> <string>1.0</string> <key>LSMinimumSystemVersion</key> <string>12.0</string> <key>LSUIElement</key> <true/> </dict> </plist>
-
Move to Applications (optional):
mv DodoPulse.app /Applications/
Option 5: Run with Automator
This method allows DodoPulse to run independently of Terminal, so it keeps running even after you close Terminal.
-
Build DodoPulse first (see Option 1 above)
-
Open Automator (search for it in Spotlight)
-
Click New Document and select Application
-
In the search bar, type "Run Shell Script" and drag it to the workflow area
-
Replace the default text with the full path to your DodoPulse binary:
/path/to/dodopulse/DodoPulse
For example, if you cloned to your home folder:
-
Go to File > Save and save it as "DodoPulse" in your Applications folder
-
Double-click the saved Automator app to run DodoPulse
Tip: You can add DodoPulse to your Login Items to start automatically at boot:
- Open System Settings > General > Login Items
- Click + and select your DodoPulse Automator app
Usage
Once running, DodoPulse appears in your menu bar showing CPU and memory usage.
- Left-click the menu bar item to open the detailed panel
- Right-click for a quick menu with settings, language selection, and quit option
- Click a card to open the related system app
Changing language
- Right-click the DodoPulse icon in the menu bar
- Select Language from the menu
- Choose your preferred language from the submenu
Technical details
DodoPulse uses native macOS APIs for accurate metrics:
- CPU:
host_processor_info()Mach API - Memory:
host_statistics64()Mach API - GPU: IOKit
IOAcceleratorservice - Network:
getifaddrs()for interface statistics - Battery:
IOPSCopyPowerSourcesInfo()from IOKit - Temperature/Fans: SMC (System Management Controller) via IOKit
Contributing
Contributions are welcome! Please feel free to submit a pull request.
Adding translations
DodoPulse supports adding new languages easily. To add a new language:
- Add a new case to the
Languageenum - Add translations for all strings in the
L10nstruct - Submit a pull request
License
MIT License - see LICENSE for details.
KDE Plasma Support
DodoPulse is also available as a KDE Plasma widget for Linux users!
Features the same system monitoring capabilities with beautiful sparkline graphs:
- CPU, Memory, GPU monitoring with real-time graphs
- Network speeds with session totals
- Disk usage with external drive detection
- Battery status and system info
Installation:
kpackagetool6 -t Plasma/Applet -i dodopulse.plasmoid
For more details, see KDE/README.md
Acknowledgments
Built with Swift and AppKit for native macOS performance.