MacPulseのバッテリー駆動時間予測とメモリ監視を表すダークトーンのコンセプトイラスト。

MacPulse:残量%ではなく、Macの駆動時間を予測する

MacPulseはメニューバーのバッテリー/メモリ表示と、任意のroot権限ガバナーを備えます。コードとソースビルドを確認し、導入と権限に関する注意点も整理しました。

要点
  • メニューバーアプリは消費電力から残り時間を予測し、バッテリー状態、メモリ圧力、CPU使用率を基にしたプロセス指標も表示します。
  • 任意のGuardはroot権限のLaunchDaemonとして60秒ごとに動き、低電力モードを変更します。Tuneはさらにバッテリー用の電源設定を書き換えます。
  • 確認時点でApp Store掲載やGitHub Releaseのインストーラーはありません。ここで案内する導入方法はソースビルドです。
  • build.shは確認なしで~/Applications/MacPulse.appを削除・再作成し、アプリを起動します。実行前に既存アプリを退避してください。

MacPulseはmacOSのメニューバーに、バッテリーとメモリの情報をまとめて表示します。特徴は、残量%を時間に置き換えるだけでなく、実測した消費電力から残り駆動時間を推定することです。ソースはMITライセンスで公開されていますが、READMEの説明よりも導入方法と自動制御の権限を慎重に確認したいアプリです。

メニューバーで確認できること

SwiftUIアプリは、充電率、瞬間的な消費電力、バッテリーの状態、メモリ圧力、低電力モードを読み取ります。CPU使用率が最も高いプロセスを電力消費の目安として表示し、10分以上の間隔で常駐メモリが300 MB超増えたプロセスも警告します。これは参考指標であり、プロセスごとの実測電力計でも、メモリを解放する機能でもありません。

駆動時間の推定には、最近の消費電力を使うローカルトレンド型Kalmanフィルターを使います。負荷、バッテリーの劣化、macOSのスケジューリングで変動する予測値なので、終了時刻を保証するカウントダウンではありません。

GuardとTuneはシステム設定を変更する

Guardを有効にすると、/Library/Application Support/MacPulseと/Library/LaunchDaemonsにスクリプトとlaunchdサービスを設置します。rootデーモンは60秒ごとに動作し、バッテリー駆動時に残り時間の下限推定が120分以下、残量40%以下、または空きメモリ25%以下になると低電力モードを有効にします。解除には、駆動時間180分以上・残量50%以上・空きメモリ40%以上という回復条件があります。メモリ傾向は電源接続中も監視します。

Tuneはpmsetでバッテリー用の設定を変更します。Power Napや一部のwake機能を無効にし、画面とディスクのスリープを5分に設定、スタンバイ時間を短縮し、対応するデュアルGPU搭載Intel Macでは内蔵GPUを選びます。管理者パスワードを入力する前に対象のスクリプトを確認してください。READMEが示すrestoredefaultsはMacPulseの変更だけでなく、電源設定全体を戻すコマンドです。

見落としやすい点として、Guard未導入の状態でTuneまたはDeep Scanを押すと、先に特権エンジンとlaunchdサービスを導入します。Deep Scanはその後、ハードウェア、温度、カーネル、プロセス電力などのレポートを保存します。スキャン後にサービスは自動削除されません。アプリでGuardをオフにすると削除処理を呼びますが、その処理はシステム全体の低電力モードもオフにします。

入手方法

2026年9月23日の確認時点では、GitHub Releasesに公開インストーラーがなく、App Store掲載も確認できませんでした。リポジトリ内に置かれたZIPは、継続管理されたReleaseとは異なります。READMEのダウンロード手順は実際のビルド手順と一致しないため、ワンクリックで導入できる案内として扱わないでください。

現在確認できる方法は、AppleのCommand Line Toolsを備えたMacでのソースビルドです。公式リポジトリを取得し、ビルドスクリプトと同梱シェルを確認してから実行します。

git clone https://github.com/1fof4648/MacPulse.git
cd MacPulse

# build.shと同梱シェルスクリプトを確認してから実行
./build.sh

重要:build.shは~/Applications/MacPulse.appに対してrm -rfを実行し、同じ場所にアプリを作り直して起動します。既存アプリの確認やバックアップは行いません。すでにMacPulse.appがある場合は、先に別名へ退避してください。今回の検証ではSwiftソースをコンパイルし、一時バンドルを作成・署名してplistを検査しました。このインストーラーの実行やアプリの起動はしていません。

権限・互換性・プライバシー

サービスの導入・削除、電源設定の変更、Deep Scanなどには管理者権限が使われます。パスワードを入力する前にコードを確認してください。Info.plistの最低対応はmacOS 13.0ですが、READMEはmacOS 27と記載しており、説明に食い違いがあります。古いmacOSへの対応は未確定と考えるのが安全です。

確認したソースにはアプリ独自のネットワーク通信クライアントは見当たらず、計測とレポート作成はローカルで行うように見えます。ただし、これはコード確認であり、通信の独立監査ではありません。レポートには端末やプロセスの情報が含まれるため、ファイルの取り扱いにも注意してください。

ソースコードはMIT Licenseで公開されています。著作権表示とライセンス文を保持すれば再利用できます。Appleのプラットフォーム素材はこのライセンスの対象外です。

どんな人向け?

Swiftやシェルスクリプトを確認できる開発者向けのシステムユーティリティとして見るのが妥当です。予測やメモリ傾向の発想は興味深い一方、rootデーモン、広範な電源設定変更、OS対応表記の不一致、build.shの既存アプリ置換を理解したうえで試してください。

プロジェクト情報

ライセンス
MIT
対応環境
macOS。Info.plistは13.0以降、READMEはmacOS 27と記載しており、互換性の説明は一致しません。
実装言語
Swift、SwiftUI、zsh
確認したバージョン
2.0(Info.plist)、main @ e35a717(2026-09-23確認)

インストール

git clone https://github.com/1fof4648/MacPulse.git
cd MacPulse

# build.shと同梱シェルスクリプトを確認してから実行
./build.sh

ライセンスの概要

リポジトリのMIT LicenseはMacPulseのソースコードを対象とします。Appleのプラットフォーム素材や商標には別の条件があり、プロジェクトはAppleとの提携を否定しています。