English · 简体中文
Personal Build 19 fork. This repository is derived from ResistanceTo/MiniWatts and keeps its original attribution and licence. This personal branch adds configurable Dynamic Island telemetry, selectable component temperatures, system thermal state and a Picture in Picture floating monitor. These additions are maintained independently and are not endorsed or supported by the upstream author.
An iPhone battery and charging monitor built on Apple's private APIs. It reads the phone's own power-management sensors — the ones iOS uses to run the charge — and shows what the charger is delivering, how much of it reaches the cell, the difference (including phone power use and conversion losses), and what every temperature sensor in the phone is doing while it happens.
| Power | Thermal | Adapter | History |
|---|---|---|---|
![]() |
![]() |
![]() |
![]() |
The manually enabled Live Activity can show charging power, temperatures, CPU usage, or whole-device upload and download speeds in the Dynamic Island and on the Lock Screen, whether or not a charger is connected. Choose the left, right, and multi-activity readings independently on the dashboard. Network speed is measured from adjacent Wi-Fi/cellular interface byte counters, not from MiniWatts alone.
Settings also has a user-started floating monitor built with system Picture in Picture. Its generated video surface refreshes every second and can show charging power, SoC, battery, charger and hottest-component temperatures. Power and temperatures can be enabled independently; when both are enabled they can share one screen or alternate as separate pages. While this window is open, its Picture in Picture background mode keeps sensor sampling active.
The Live Activity refreshes while MiniWatts is running, including in the background while the floating monitor is active. A Live Activity alone does not keep sampling alive. iOS may pause, dismiss or eventually end it; close the floating monitor when you no longer need background sampling.
Sideload only. Private APIs mean this can never be on the App Store — you sign and install it yourself. It reads local network counters but makes no network requests or uploads: nothing it reads leaves your phone.
Download MiniWatts-1.0.1-build19-unsigned.ipa from this fork's
Releases and sign it with your own
Apple ID — Sideloadly, AltStore,
SideStore and Xcode all do this. A free Apple ID works; the app
then expires after seven days and you re-sign it.
Requires iPhone, iOS 17 or later.
Only what iOS actually hands a sandboxed app. Battery health and cycle count are
filtered out of the registry; accessory batteries (Watch, AirPods) come back empty;
wireless charging exposes no input current, so on MagSafe you only see what reaches the
cell; discharge power has no sensor and is estimated from the percentage. Charging holds
can only be inferred, and the app labels them inferred when that is what happened.
Xcode 26 or later, iOS 17 deployment target, no dependencies.
./scripts/build-ipa.sh # unsigned, what Releases ships
TEAM_ID=ABCDE12345 ./scripts/build-ipa.sh signed # signed, for your own deviceCLAUDE.md is the engineering notebook: which APIs the sandbox blocks and
how that was established, what each sensor turned out to be, and the Swift 6 isolation
traps this project has already fallen into.
Apache 2.0 — see LICENSE. The method for reading the PMU is derived from
ios-charging-monitor (MIT);
BatteryCenterBridge owes two details to Batsie.
Both are credited in NOTICE, which carries the upstream MIT notice.
The original MiniWatts work is Copyright 2026 ZhaoHe Studio. The personal-fork modifications and their scope are identified in NOTICE and in this repository's commit history.
Private APIs can change or disappear in any iOS update.



