Mac のファン制御ツールを自作した理由
ファンが回り出しても、メニューバーには何も表示されない。無料・オープンソース・メニューバー常駐を満たすツールが見つからず、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 はメニューバーに常駐し、普段は CPU 温度とファン回転数の二つの数字だけを表示します。ひと目で状況が分かります。クリックすると小さなパネルが開き、CPU、GPU、SSD、バッテリーのリアルタイム温度と、10 分間の温度グラフが表示されます。さっきファンが回った原因も一目瞭然です。

ファン制御には四つのプリセットがあり、抽象的な段階ではなく、実際の場面に対応しています。
- コーディング、ビルド、動画書き出し →「パフォーマンス」または「最大」:多少うるさくても温度を下げることを優先し、重い作業が終わったら戻す
- 深夜作業、会議、図書館 →「静音」:回転数を最小にしつつ温度カーブは維持。本当に熱くなればファンは回り、静かさのために高温を我慢させることはありません
- 普段使い →「バランス」:何もせず、任せておけば大丈夫
各プリセットの温度–回転数カーブは自分で描けます。たとえば 60°C 以下は 2,500 回転、75°C で 4,500 回転、85°C で最大。カーブはドラッグで調整でき、SMC キーを覚える必要はありません。


ほかにも毎日使っている小さな機能があります。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 で実際の挙動を教えてください。カーブはもっと正確に調整していきたいと思っています。