A GUI prototype for Batt (developed by https://github.com/charlie0129)
See the codeA comprehensive power monitoring solution for macOS featuring:
π₯ GUI application with real-time power flow visualization
π Detailed battery health analytics
β‘οΈ CLI tools for low-level power monitoring
π System load statistics collection
Initial app icon (This icon is open to creative reinterpretation by anyone.)

graph TD
Suite[Power Management Suite] --> GUI{GUI Application}
GUI --> App[appApp.swift]
App --> CV[ContentView.swift]
CV --> PFV[PowerFlowView.swift]
CV --> BM[Battery.swift]
BM --> OC[powerInfo.m Objective-C Bridge]
OC --> SMC["SMC API (System Management Controller)"]
PFV --> SW["SwiftUI Graphics Pipeline"]
App --> SM[StatusBar Menu]
SM --> POP["Popover Window (NSHostingView)"]
SM --> MM[Menu Items]
classDef swift fill:#F05138,color:white;
classDef objc fill:#4381ff,color:white;
classDef system fill:#666,color:white;
classDef suite fill:#8e44ad,color:white;
class Suite suite
class App,CV,PFV,BM,SW,SM,POP,MM swift
class OC objc
class SMC system
.dmg package from our Releases pageApplications folder# Clone repository
git clone https://github.com/clzoc/BattGUI.git
cd power-suite
xcodebuild -workspace app.xcodeproj/project.xcworkspace -scheme app
sudo batt install --allow-non-root-access
GateKeeper Configuration If you encounter security warnings:
System Settings β Privacy & Security β scroll down to SecurityAdvanced Configuration (Admin required) For system-level monitoring access:
# Temporarily disable GateKeeper (resets after reboot)
sudo spctl --master-disable
GUI Application:
open app/build/Release/app.app
Adapter Voltage Detection: Current implementation fixes adapter voltage at 20.00V due to missing SMC key in VirtualSMC documentation. Amperage is calculated using I = P / U. Contributions welcome to identify the correct SMC key.
UI/UX Optimization: Ongoing improvements to power management workflows including:
GUI Charge Limit Adjustment Permission Denied: When attempting to adjust battery charge limit through the GUI, users encounter permission errors depending on installation method.
powerInfo.m (Objective-C)/var/run/batt.sock| Installation Method | Behavior | Command |
|---|---|---|
With --allow-non-root-access | β Works correctly | sudo batt install --allow-non-root-access |
| Default installation | β "Permission denied" error | sudo batt install |
The Unix domain socket (/var/run/batt.sock) implements strict permission controls:
See CONTRIBUTING.md for development setup and guidelines.
GPLv3 (see LICENSE)
21 followers Β· starred Apr 2025
Swift
60.3%
Objective-C
39.6%
A GUI prototype for Batt (developed by https://github.com/charlie0129)
See the codeA comprehensive power monitoring solution for macOS featuring:
π₯ GUI application with real-time power flow visualization
π Detailed battery health analytics
β‘οΈ CLI tools for low-level power monitoring
π System load statistics collection
Initial app icon (This icon is open to creative reinterpretation by anyone.)

graph TD
Suite[Power Management Suite] --> GUI{GUI Application}
GUI --> App[appApp.swift]
App --> CV[ContentView.swift]
CV --> PFV[PowerFlowView.swift]
CV --> BM[Battery.swift]
BM --> OC[powerInfo.m Objective-C Bridge]
OC --> SMC["SMC API (System Management Controller)"]
PFV --> SW["SwiftUI Graphics Pipeline"]
App --> SM[StatusBar Menu]
SM --> POP["Popover Window (NSHostingView)"]
SM --> MM[Menu Items]
classDef swift fill:#F05138,color:white;
classDef objc fill:#4381ff,color:white;
classDef system fill:#666,color:white;
classDef suite fill:#8e44ad,color:white;
class Suite suite
class App,CV,PFV,BM,SW,SM,POP,MM swift
class OC objc
class SMC system
.dmg package from our Releases pageApplications folder# Clone repository
git clone https://github.com/clzoc/BattGUI.git
cd power-suite
xcodebuild -workspace app.xcodeproj/project.xcworkspace -scheme app
sudo batt install --allow-non-root-access
GateKeeper Configuration If you encounter security warnings:
System Settings β Privacy & Security β scroll down to SecurityAdvanced Configuration (Admin required) For system-level monitoring access:
# Temporarily disable GateKeeper (resets after reboot)
sudo spctl --master-disable
GUI Application:
open app/build/Release/app.app
Adapter Voltage Detection: Current implementation fixes adapter voltage at 20.00V due to missing SMC key in VirtualSMC documentation. Amperage is calculated using I = P / U. Contributions welcome to identify the correct SMC key.
UI/UX Optimization: Ongoing improvements to power management workflows including:
GUI Charge Limit Adjustment Permission Denied: When attempting to adjust battery charge limit through the GUI, users encounter permission errors depending on installation method.
powerInfo.m (Objective-C)/var/run/batt.sock| Installation Method | Behavior | Command |
|---|---|---|
With --allow-non-root-access | β Works correctly | sudo batt install --allow-non-root-access |
| Default installation | β "Permission denied" error | sudo batt install |
The Unix domain socket (/var/run/batt.sock) implements strict permission controls:
See CONTRIBUTING.md for development setup and guidelines.
GPLv3 (see LICENSE)
21 followers Β· starred Apr 2025
Swift
60.3%
Objective-C
39.6%