Skip to content

Releases: SuooL/OmniStats

v1.7.0

Choose a tag to compare

@github-actions github-actions released this 31 Oct 06:52
1baa446

New

  • Battery history and charts. OmniStats now records the battery once a minute, when macOS's battery gauge refreshes (no polling), and keeps 30 days on your Mac (~/Library/Application Support/OmniStats, about 1.2 MB, never uploaded). The Battery page charts charge, power, current and temperature over 2 hours, 24 hours, 7 days or 30 days. One crosshair reads all four at once, a light band keeps peaks, and gaps show when the Mac slept.
  • A Battery page that leads with the battery. It opens with your charge and the limit and resume point on one bar, then adapter input, system load, battery power, temperature, voltage and current. While charging toward a limit, it shows the time to your limit; macOS only estimates the time to 100 %.
  • Health and today. Full-charge vs design capacity, cycles against the rated count, and a daily capacity trend. Today's energy drawn from power, and the time held at the limit, at full charge and on battery.
  • A two-hour charge trend in the menu-bar panel.
  • Theme: System. The app can follow macOS between light and dark.

Improved

  • One design across every page: the same cards, rows, buttons and messages, consistent spacing and type, and icons in one style. Pages fade in, and the sidebar highlight slides.
  • Two-column layouts where pages are long, falling back to one column in narrow windows. The Settings window opens a little larger, never beyond the screen.
  • General is grouped into Appearance, Menu bar & panel, Charts, and Startup & sampling, with the refresh intervals as a table.
  • About shows the version, links to GitHub, releases, issues and the license, and a Components card for the privileged helper. It explains that fan control and battery management use the helper, and asks before removing it.
  • Uninstall Apps fills the window: the list and the details scroll on their own, and empty states explain what to do.
  • Menu Bar Icons shows a clearer example of the hidden and shown sections.
  • Panel: the resource meters share one color, so they no longer look like the chart series above them.
  • Fan speeds print the same way everywhere. Chinese and Japanese text uses full-width punctuation.

Updating

  • Use Check for Updates in OmniStats, or download OmniStats.dmg below.
  • The privileged helper is unchanged (protocol 8); no administrator password is needed for this update.
  • Battery history starts with this version, so the charts fill in over the first minutes, and the 7- and 30-day views over the following days.

新增

  • 电池历史与图表。 OmniStats 现在会在 macOS 电池计量芯片每分钟刷新时记录一次(不轮询),在本机保留 30 天(~/Library/Application Support/OmniStats,约 1.2 MB,不会上传)。电池页可查看 2 小时、24 小时、7 天或 30 天的电量、功率、电流和温度曲线:一条十字线同时读出四张图,浅色带保留峰值,空白处是 Mac 睡眠的时段。
  • 电池页以电池状态开头。 先显示电量,电量条上标出上限和恢复点,然后是适配器输入、整机功耗、电池功率、温度、电压和电流。向上限充电时显示充到上限还需多久;macOS 只估算充到 100% 的时间。
  • 健康度与今日。 满电容量对比设计容量、循环次数对比设计寿命、每日容量趋势;今天从电源取了多少电,在上限暂停、满电停留和用电池的时长。
  • 菜单栏面板新增 2 小时电量趋势。
  • 主题:跟随系统,随 macOS 在深色和浅色之间切换。

改进

  • 所有页面统一设计: 卡片、设置行、按钮和提示统一,间距和字号一致,图标风格统一;换页淡入,侧栏高亮滑动。
  • 内容较长的页面改为双栏排版,窗口窄时自动变回单栏;设置窗口默认稍大一些,但不会超出屏幕。
  • 通用分为外观、菜单栏与面板、图表、启动与采样四组,刷新频率改为表格。
  • 关于页显示版本号,以及 GitHub、版本发布、反馈问题和许可证链接;新增「组件」卡片管理特权助手,说明风扇控制和电池管理都依赖它,移除前会先确认。
  • 应用卸载铺满窗口:列表和详情各自滚动,没有内容时会提示下一步。
  • 菜单栏图标的示意图更清楚地展示隐藏区和显示区。
  • 面板: 资源条统一一种颜色,不会再被误认为是上方图表里的曲线。
  • 风扇转速在各处显示一致;中文和日文改用全角标点。

更新说明

  • 可在应用中选择「检查更新」,或下载下方的 OmniStats.dmg。
  • 特权助手没有变化(协议 8),这次更新不需要管理员密码。
  • 电池历史从这个版本开始记录:几分钟后就能看到曲线,7 天和 30 天视图会在之后几天逐渐填满。

Full Changelog: v1.6.2...v1.7.0

v1.6.2

Choose a tag to compare

@github-actions github-actions released this 31 Oct 03:05
78bf56d

Fixed

  • Battery calibration no longer stops halfway through the discharge. Discharging from 100 % to 15 % can take most of a day on a lightly used Mac, about 5 % an hour. The old 8-hour limit ended real runs at around 60 %. That step now gets 24 hours.
  • Low Power Mode no longer slows calibration's discharge. If your battery profile uses Low Power Mode, OmniStats switches it to Automatic while calibration discharges and puts it back afterwards. It also restores it if the run stops, the helper quits, or after a crash. A mode you pick in the meantime is kept.
  • "Full" now means full. macOS can show 100 % while the battery keeps charging for 20 minutes or more, and a charge paused by your limit also reads "not charging". Calibration now waits until macOS reports the charge finished before it starts the one-hour hold.

Updating

  • Use Check for Updates in OmniStats, or download OmniStats.dmg below.
  • The privileged helper has a new version (protocol 8). OmniStats asks you to update it once, which needs an administrator password.
  • If a calibration ended early on 1.6.1, start it again under Settings → Battery. The whole run can take about a day with light use.

修复

  • 电池校准不再在放电途中中止。 轻度使用时每小时大约耗电 5%,从 100% 放到 15% 可能要大半天。原来 8 小时的上限会让校准在 60% 左右就结束,现在这一步最长等 24 小时。
  • 低电量模式不再拖慢校准放电。 如果电池配置开着低电量模式,校准放电期间 OmniStats 会暂时换成「自动」,结束后恢复。校准中止、助手退出或程序崩溃后也会恢复;期间你自己改过的模式会保留。
  • 「充满」以真正充满为准。 macOS 可能显示 100% 后还要再充 20 分钟以上,被充电上限暂停时也会显示「未在充电」。校准现在会等 macOS 报告充电完成,才开始 1 小时的保持阶段。

更新说明

  • 可在应用中选择「检查更新」,或下载下方的 OmniStats.dmg。
  • 特权助手有新版本(协议 8),OmniStats 会提示更新一次,需要输入管理员密码。
  • 如果在 1.6.1 中校准提前结束,请在设置 → 电池中重新开始。轻度使用时全程可能需要一天左右。

Full Changelog: v1.6.1...v1.6.2

v1.6.1

Choose a tag to compare

@github-actions github-actions released this 30 Oct 13:59
07c35ab

Fixed

  • Battery calibration no longer stalls at 99%.
    • macOS can stay at 99% for a long time while it tops the battery off.
    • Steps 1 and 4 now count 99% with charging finished as full.
    • A top-off still at 99% after six hours moves on instead of ending the calibration. The following one-hour hold keeps charging allowed, so the last percent fills there.
  • The Battery pane shows calibration progress: the current charge and the minutes spent in a charging step (e.g. "Step 1/5: charging to 100% · now 99%, 61 min so far"), and the charge while discharging. Every step runs on its own; there is nothing to click between steps.

Updating

  • Use Check for Updates in OmniStats, or download OmniStats.dmg below.
  • The privileged helper has a new version (protocol 7). OmniStats asks you to update it once, which needs an administrator password.
  • If a calibration ended early on 1.6.0, start it again under Settings → Battery.

修复

  • 电池校准不再卡在 99%。
    • macOS 在最后补电时可能长时间停在 99%。
    • 第 1、4 步现在把「99% 且充电已结束」也算作充满。
    • 停在 99% 超过 6 小时也会继续下一步,不再中止校准。随后 1 小时的保持阶段仍允许充电,最后 1% 会在这时补满。
  • **电池页显示校准进度:**充电步骤显示当前电量和已用分钟数(如「第 1/5 步:充电到 100% · 当前 99%,已 61 分钟」),放电时显示当前电量。每一步都自动进行,中间不需要任何操作。

更新说明

  • 可在应用中选择「检查更新」,或下载下方的 OmniStats.dmg。
  • 特权助手有新版本(协议 7),OmniStats 会提示更新一次,需要输入管理员密码。
  • 如果在 1.6.0 中校准提前结束,请在设置 → 电池中重新开始。

Full Changelog: v1.6.0...v1.6.1

v1.6.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 11:16
76650d9

What's new

OmniStats grows from a monitor into a small Mac management tool.

  • Battery (Settings → Battery):
    • Charge, health and power flow.
    • A charge limit with sailing mode, enforced by the helper.
    • Heat protection, top up, sleep options and MagSafe LED control.
    • Discharge to a target, auto-discharge and calibration.
    • Schedules and omnistats://battery/… automation links.
  • Menu bar icons (Settings → Menu Bar): hide icons behind ‹, with an always-hidden section, auto re-hide and a global shortcut. No Accessibility or Screen Recording permission needed.
  • Uninstall apps (Settings → Uninstall Apps):
    • Moves an app to the Trash together with its data, caches, preferences, launch agents and daemons, helpers and receipts.
    • Reset… clears an app's data but keeps the app.
    • Recognizes Homebrew casks and offers their brew uninstall --zap command.
    • Finds leftovers of apps you've already deleted. Nothing is ticked until you review it.
  • Launch at login (Settings → General).

Updating

  • Use Check for Updates in OmniStats, or download OmniStats.dmg below.
  • The privileged helper has a new version. OmniStats asks you to update it once, which needs an administrator password.
  • Releases are now signed with one fixed certificate, instead of a new ad-hoc signature each time. After this update macOS asks once more for permissions you granted, such as Full Disk Access; later updates should keep them.
  • Still not notarized. A manual first install needs System Settings → Privacy & Security → Open Anyway (macOS 15+) or right-click → Open (macOS 13–14).
  • Battery control writes nothing while AlDente, batt or Battery Toolkit is running. A lower macOS charge limit (System Settings → Battery) still applies. Battery control was tested on an M5 Pro MacBook Pro with macOS 26.5.1.

更新内容

OmniStats 从监控工具扩展为一个小型 Mac 管理工具。

  • 电池(设置 → 电池):
    • 电量、健康度与电流流向。
    • 由助手执行的充电上限,含区间(sailing)模式。
    • 高温保护、临时充满、睡眠相关选项和 MagSafe 指示灯控制。
    • 放电到目标电量、自动放电和电池校准。
    • 定时计划和 omnistats://battery/… 自动化链接。
  • 菜单栏图标(设置 → 菜单栏):把图标收进 ‹ 后面,支持「始终隐藏」区、自动收起和全局快捷键,不需要辅助功能或屏幕录制权限。
  • 应用卸载(设置 → 应用卸载):
    • 连同数据、缓存、偏好设置、后台项与系统服务、特权助手和安装记录一起移到废纸篓。
    • 重置… 只清空应用数据、保留应用。
    • 识别 Homebrew 安装的应用并提供 brew uninstall --zap 命令。
    • 查找已删除应用的残留,所有项目默认不勾选,需要你逐项确认。
  • 登录时启动(设置 → 通用)。

更新说明

  • 可在应用中选择「检查更新」,或下载下方的 OmniStats.dmg。
  • 特权助手有新版本,OmniStats 会提示更新一次,需要输入管理员密码。
  • 发布版改为用一张固定证书签名,不再每次都是新的 ad-hoc 签名。本次更新后,macOS 会再要求一次之前授予的权限(如完全磁盘访问),之后的更新应当会保留。
  • 仍未经公证。手动首次安装需在系统设置 → 隐私与安全性 → 仍要打开(macOS 15+),或右键 → 打开(macOS 13–14)。
  • AlDente、batt 或 Battery Toolkit 运行时,电池控制不做任何写入。系统自带的更低充电上限(系统设置 → 电池)仍然生效。电池控制在 M5 Pro MacBook Pro、macOS 26.5.1 上测试。

Full Changelog: v1.5.0...v1.6.0

OmniStats v1.5.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 04:21
bf87cc3

What’s new

  • Added system CPU usage to the resource card, ordered CPU, memory, GPU and startup disk. CPU usage is normalized across all cores: 100% means all cores are busy.
  • Network history and per-app rates now open in a compact panel beside the dashboard. Expanding or collapsing details keeps the dashboard size and position unchanged.
  • Settings sidebar buttons now respond across the entire row, including the space between icons and text.

Window behavior

  • Network details share the dashboard appearance, prefer the left side and move to the right when space is limited.
  • Use the network row or the detail close button to collapse details. Escape closes details first, then the dashboard. Clicking outside dismisses both windows.

Updating

Use Check for Updates in OmniStats, or download OmniStats.dmg below. No privileged helper reinstall is required.

更新内容

  • 新增整机 CPU 使用率,资源卡片依次显示 CPU、内存、GPU、启动盘。
  • 网络历史与应用网速改为紧邻主面板的独立小窗,展开、收起不再改变主面板大小或位置。
  • 设置侧栏整行均可点击,包括图标与文字之间的空白。
  • 详情窗沿用主面板外观;Esc 先关闭详情,再关闭主面板,点击外部同时关闭两窗。

可在应用中选择“检查更新”安装,无需重新安装风扇控制辅助程序。

v1.4.1

Choose a tag to compare

@github-actions github-actions released this 26 Oct 01:27
29f56c4

Fixed

  • Fixed excessive nettop CPU usage caused by stdin EOF. In a controlled local seven-second comparison, keeping stdin open reduced nettop CPU from 142.28% to 1.49% with the same three-second sampling interval.
  • Added an unprivileged, event-driven supervisor so closing the network panel, quitting, crashing or force-quitting OmniStats terminates and reaps its network reader.
  • Added bounded termination and regression checks for CPU spinning and orphan processes.

Updating

Use Check for Updates in OmniStats to install this patch. No privileged helper reinstall is required. Sampling intervals and existing history-chart smoothing are unchanged.

Short CPU samples vary with hardware, macOS and network activity; they are not battery-life estimates.

v1.4.0

Choose a tag to compare

@github-actions github-actions released this 25 Oct 15:06
b099a1a

OmniStats 1.4.0 adds resource usage and smoother history charts with slower display sampling.

New dashboard readings

  • System memory: used / total physical RAM, in GiB.
  • Startup disk: used / total capacity, in GB; shared APFS volumes are not double-counted.
  • GPU: driver-reported utilization percentage, or Unavailable when unsupported.

These readings require no administrator permission. They refresh immediately when the menu panel opens, then every 10 seconds, and stop when it closes. Disk usage means capacity, not I/O throughput.

Requested sampling intervals

Temperature / network / CPU process ranking:

  • Default background: 10 / 3 / 10 seconds.
  • Eco background: 30 / 10 / 30 seconds.
  • Open panel: Default 10 / 3 / 10 seconds.

Curve-control safety still uses a separate fresh internal snapshot; display/history updates retain the chosen cadence. Existing fan-control behavior and the temperature-to-speed curve remain unchanged.

Smooth history and layout

History lines now use shape-preserving cubic interpolation. The lines pass through actual samples without inventing peaks, and sleep/missing-data gaps remain visible. Raw measurements and bar charts are unchanged. Tall dashboards scroll within the visible screen.

Local regression and read-only API checks passed, including repeated panel teardown/reopen and overflow scrolling. GPU support depends on the device and driver. No privileged-helper protocol update is required for these additions.

v1.3.5

Choose a tag to compare

@github-actions github-actions released this 25 Oct 14:07
7477292

OmniStats 1.3.5 reduces background sampling overhead and strengthens fan-control safety.

Energy and responsiveness

  • New Fast / Balanced / Eco background refresh modes; Balanced is the default (temperature 5 s, network 2 s, CPU ranking 10 s).
  • Faster updates while panels are visible, reduced work when hidden, and automatic Eco display sampling in Low Power Mode.
  • Sensor and process reads move off the main thread; cached metadata avoids unnecessary hardware round trips.
  • Manual/curve fan control retains fast sampling and its independent control loop.

Correctness and interaction

  • Duration-weighted CPU averages, bounded chart history, reset-safe network counters and reliable nettop stream parsing/cleanup.
  • Clear network warmup/error states, corrected curve dragging, Fahrenheit menu labels and improved keyboard/accessibility behavior.
  • Debounced settings persistence and fewer unnecessary view updates.

Fan-service safety — action required for existing installations

After updating the app, open Settings → Fan Control and choose Update service, then approve the macOS administrator prompt. App updates do not silently replace the privileged helper.

Protocol 2 prevents health checks from renewing stale manual control, rejects invalid values, retries failed automatic-mode restoration and improves reconnect/time-out handling. Curve control returns to firmware auto when temperature data is stale.

Validation

Local logic, helper-safety, socket-transport and GUI lifecycle regressions passed. GUI checks include real read-only nettop restarts and 12 window close/reopen cycles. CI and release now run the isolated safety checks and enforce tag/version consistency.

Read-only sensor microbenchmarks showed lower per-read cost. These measurements do not establish whole-app battery-life gains; long-duration energy profiling and broader hardware testing remain ongoing work. Automated tests do not perform real fan writes.

OmniStats v1.3.4

Choose a tag to compare

@github-actions github-actions released this 25 Oct 08:39
b8c16ad

Fixes and improvements

  • Reduce background UI work by releasing closed panel/settings hosting trees and moving appearance updates out of SwiftUI view rendering.
  • Coalesce menu-bar refresh notifications and reuse images when visible readings have not changed.
  • Keep process rows stable between samples and allow sampling timer coalescing.
  • Preserve settings navigation and window position/size when reopening.
  • Include the pending native panel resizing fixes and true 64-bit network counter sampling from dev.

Updating

Use Settings → About → Check for Updates in OmniStats, or download the DMG. The release includes the signed Sparkle appcast and ZIP used by in-app updates.

Validation

The local optimized build, bundle signature validation, and runtime regression suite pass. Regression checks cover menu image batching/caching, panel resizing, and 12 window release/reopen cycles with simulated sensors. Long-running real-device energy and memory improvements are still being evaluated; no percentage reduction is claimed.

v1.3.3

Choose a tag to compare

@github-actions github-actions released this 13 Aug 01:24
d21dc8e

What's Changed

  • fix(panel): shrink MenuBarExtra window on network collapse (v1.3.3) by @SuooL in #18
  • release: v1.3.3 by @SuooL in #19

Full Changelog: v1.3.2...v1.3.3