Mac のファン制御ツールを自作した理由

6分で読めます · 2026年9月28日

ファンが回り出しても、メニューバーには何も表示されない。無料・オープンソース・メニューバー常駐を満たすツールが見つからず、FanBar を作りました。

1. きっかけ:ファンがうるさいのに、何も分からない

少し前、深夜に Xcode でアーカイブしていたら、MacBook のファンが急に全開になり、静かな部屋に音が響きました。反射的にメニューバーを見ても、何もありません。温度は?回転数は?大丈夫なのか?すべて勘に頼るしかありませんでした。

macOS はこの点で昔から「エレガントだが冷たい」。ファンは自動で制御してくれますが、何をしているかは教えてくれません。状況を把握したり手動で介入したりするには、サードパーティ製ツールが必要です。いくつか選択肢はあるものの、どれも自分の希望と完全には一致しなかったので(詳しくは次の節で)、自分で作ることにしました。名前は FanBar です。

2. Macs Fan Control や iFan を使わない理由

結論から言うと、どちらも試して良いツールだと思いましたが、自分の求めるものとは少しずれていました。

Macs Fan Control はこの分野の老舗です。Intel と Apple Silicon の両方に対応し、温度監視(他社製ドライブの S.M.A.R.T. まで読めます)、回転数のカスタム設定、センサー連動と、機能面では文句なしです。ただしフル機能には Pro 版(約 $15) が必要で、クローズドソースです。ハードウェアに直接触れるものなので、個人的にはコードが公開され、監査できるほうが安心です。

iFan(Better365 製)は私の希望に最も近く、M シリーズと Intel にネイティブ対応し、ワンクリック最大回転、ファンごとの手動調整、温度ベースのポリシー設定があり、更新も続いています。ただしこちらもクローズドソースの商用ソフトです。

私の条件は短く、無料・オープンソース・メニューバー常駐の三つだけ。三つすべてを満たすものがなかったので、自分で作りました。

FanBar Macs Fan Control iFan(Better365)
価格 無料 基本無料、Pro 版 約 $15 価格表示なし(.pkg を直接ダウンロード)
オープンソース ✅ ❌ ❌(商用)
チップ Apple Silicon + Intel Intel + Apple Silicon Apple M シリーズ + Intel にネイティブ対応
ファン制御 プリセット 4 種 + 温度→回転数カーブ 回転数指定 / センサー連動 + プリセット ワンクリック最大 / ファン個別の手動調整 / 温度ポリシー
温度監視 CPU/GPU/SSD/バッテリー + 10 分間グラフ リアルタイム、他社製ドライブの S.M.A.R.T. CPU/GPU/ディスク/バッテリー/無線 LAN
メニューバー常駐 ✅ ✅ 不明(主に独立アプリ)
安全策 終了・異常時にシステム制御へ自動復帰 終了時に Auto へ復帰 記載なし
署名・公証 Developer ID 署名 + 公証 ✅ .pkg 配布(正規メーカー)
言語 中国語・英語 多言語 主に中国語
開発状況 活発 活発(商用) 活発(現行 1.1.3)

3. FanBar の見た目

メニューバーに温度と回転数を表示する FanBar

FanBar はメニューバーに常駐し、普段は CPU 温度とファン回転数の二つの数字だけを表示します。ひと目で状況が分かります。クリックすると小さなパネルが開き、CPU、GPU、SSD、バッテリーのリアルタイム温度と、10 分間の温度グラフが表示されます。さっきファンが回った原因も一目瞭然です。

FanBar の温度パネルと 10 分間の温度グラフ

ファン制御には四つのプリセットがあり、抽象的な段階ではなく、実際の場面に対応しています。

  • コーディング、ビルド、動画書き出し →「パフォーマンス」または「最大」:多少うるさくても温度を下げることを優先し、重い作業が終わったら戻す
  • 深夜作業、会議、図書館 →「静音」:回転数を最小にしつつ温度カーブは維持。本当に熱くなればファンは回り、静かさのために高温を我慢させることはありません
  • 普段使い →「バランス」:何もせず、任せておけば大丈夫

各プリセットの温度–回転数カーブは自分で描けます。たとえば 60°C 以下は 2,500 回転、75°C で 4,500 回転、85°C で最大。カーブはドラッグで調整でき、SMC キーを覚える必要はありません。

FanBar のファンプリセット
FanBar の温度–回転数カーブ設定

ほかにも毎日使っている小さな機能があります。90°C を超えたときの通知(任意)、macOS 14 以降のデスクトップウィジェット、中国語・英語のワンクリック切り替えです。

4. 作るうえで最も大切にした三つのこと

ファン制御はハードウェアに直接触れる処理です。雑に作れば、うるさいだけならまだしも、リスクにもなります。そこで最初から三つのルールを決めました。

第一に、権限の分離:アプリ本体はハードウェアに直接触れない。

FanBar は二つの部分に分かれています。メニューバーアプリはデータの読み取り、画面表示、設定の保存だけを担当し、AppleSMC の読み書きは独立した root 権限の Helper が行います。両者は XPC で通信し、Helper は「N 番のファンを X 回転にする」といったごく限られた命令しか受け付けません。アプリにバグがあっても、触れてはいけないものには届きません。

第二に、安全策:ファンが「暴走」することはない。

Helper はハードウェアが報告する回転数の範囲内でしか調整しないため、おかしな値を書き込むことはありません。さらに重要なのは終了時の挙動です。アプリを終了したり Helper が異常終了したりすると、制御は自動的に macOS に戻り、システム標準の温度制御に復帰します。最悪の場合でも「インストールしていないのと同じ」で、ファンが全開のまま、あるいは止まったままになることはありません。これがこのツールの譲れない一線です。

第三に、署名と公証:ダウンロードしてすぐ使え、システムをいじる必要はない。

GitHub Releases の DMG はすべて Developer ID で署名され、Apple の公証を受けています。SIP を無効にしたり Gatekeeper を回避したりする必要はなく、Applications にドラッグするだけで使えます。ハードウェアを扱うツールがシステム保護を先に切れと言うなら、それ自体が信頼に値しません。

実装上の落とし穴にも触れておくと、M シリーズと Intel では SMC のファン制御の挙動が異なり、手動モードに入るタイミングもキーの名前も違うため、デバッグにはかなり苦労しました。コードはすべてリポジトリで公開しているので、AppleSMC 周りの実装に興味があればぜひ覗いてみてください。

5. 対応環境と入手方法

macOS 11 以降に対応し、Apple Silicon 搭載機はすべて使えます。Intel 機は AppleSMC からファンの情報を読める必要があります(2016 年以降のほとんどの機種は問題ありません)。

FanBar は無料・オープンソースです。

https://github.com/helson-lin/FanBar

現在の四つのプリセットカーブは自分の MacBook に合わせて調整したもので、機種によって冷却性能は大きく異なります。Intel 機や Mac mini、iMac をお持ちの方は、ぜひ試して issue で実際の挙動を教えてください。カーブはもっと正確に調整していきたいと思っています。