Cleatby Jetto
オープンソースmacOS・オープンソース(MIT)
Mac のオーディオデバイスを、あなたが決めた場所に留めておきます。
正しいスピーカーから音を出し、正しいマイクを正しい音量に保ち、AirPods をスマートフォンから取り戻します。Rust で書かれ、ポーリングではなく Core Audio のイベントに反応し、作者の Mac ではメモリ約 29 MB、バイナリは 3.9 MB です。
無料ダウンロード・macOS 14 以上

イメージ図:デバイス名は一般的な名前にしています。
Rust で作られています
一日中動いて、ほとんどリソースを使いません
Cleat は一日中バックグラウンドで動くので、Mac への負荷をできるだけ小さくしています。デーモン、メニューバー項目、設定ウインドウは 1 つの Rust プログラムで、objc2 バインディングを通じて Core Audio と AppKit を直接呼び出します。Electron も Web ビューも使いません。変化を確認しに行くのではなく、Core Audio のイベントを待ちます。
- メモリ
- 29 MB(アクティビティモニタの「メモリ」列の値)
- CPU
- アイドル時 0.0%、2 日間の稼働平均で 1 コアの約 0.06%
- バイナリ
- 3.9 MB(Cleat.app/Contents/MacOS/Cleat)
- 反応時間
- 変更から書き戻しまでの中央値 36 ms(cleat status、直近 20 回)
作者の Mac での実測:Cleat 0.4.3、Apple M4 Max、macOS 27.0.1、2026-10-22、作者自身の設定で測定。数値は設定や設定ウインドウを開いているかどうかで変わります。
機能
AirPods をスマートフォンから取り戻す
リストに入れたヘッドセットが接続されているのに音声がスマートフォンや iPad 側にあり、Mac で再生中で、あなたが Mac の前にいるとき、Cleat はそれを取り戻します。スマートフォンで実際に再生中や通話中なら、スマートフォンに残します。
マイク音量を固定
ビデオ会議アプリは「マイク音量を自動調整」して、別の値のまま放置します。Cleat は設定した値に戻します。すべてのマイクに 1 つの値、デバイスごとに個別の値も設定できます。
指定したプログラムによる出力音量の変更を元に戻す
Parallels Desktop(または追加した任意のアプリ)が出力音量を変えると、Cleat が戻します。あなた自身の変更はそのまま残ります。
出力とマイクの優先順位
リストの中で最初に接続されているデバイスから音を出し、最初に接続されているマイクがデフォルト入力になります。ブロックリストで AirPods Max(や Zoom、Teams の仮想デバイス)をその席に入れません。デジタル無音だけを送る受信機は飛ばされ、リストの次のマイクが引き継ぎます。どちらのリストにもない、自分で選んだマイクはそのまま残ります。
Bluetooth ヘッドフォンが接続されたら切り替え
ヘッドセットがつながると、有線ヘッドフォンと同じように音がそちらへ移ります。バランスを中央(または設定した位置)に固定します。
ディスプレイの配置を記憶
再接続のあと、Cleat は前回設定したディスプレイの配置を元に戻します(rememberDisplays、既定はオフ)。
しくみ
- ポーリングではなくイベント
- 6 つのルールは同じ形をしています。Core Audio のプロパティを購読し、設定ファイルと比べ、違っていれば書き戻します。
- 誰が音量を変えたかを知る
- 出力音量のルールは、どのプログラムが変更したかも知る必要がありますが、Core Audio はそれを教えてくれないので、システムログから読み取ります。
- 別のデーモンにヘッドセットを返してもらう
- ヘッドセットを取り戻すルールは、別のデーモンにヘッドセットを返すよう依頼します。スマートフォンに取られたヘッドセットは、書き込める Core Audio のプロパティではないからです。
動作環境
- macOS 14 以上
- Cleat を初めて実行したときに macOS がマイクの許可を確認します。必要なのは無音検出(liveness)だけで、拒否してもほかのルールはすべて動き続けます
- 設定ウインドウとメニューはシステムの言語に合わせます。システムが繁体字中国語なら繁体字中国語、それ以外は英語です
よくある質問
- Cleat とは何ですか?
- Cleat は Jetto が作ったオープンソースの macOS メニューバーアプリです。スマートフォンに取られた AirPods を取り戻し、マイクと出力の音量を設定した値に戻し、出力とマイクを優先順位のリストに従って選びます。
- Cleat はリソースを多く使いますか?
- 使いません。Cleat は Rust で書かれ、ポーリングではなく Core Audio のイベントに反応します。作者の Mac(Cleat 0.4.3、Apple M4 Max、macOS 27.0.1)ではメモリ約 29 MB、アイドル時の CPU 0.0%、バイナリ 3.9 MB です。数値は設定によって変わります。
- Cleat はオープンソースですか? 料金はかかりますか?
- Cleat は MIT ライセンスのオープンソースで、ソースコードは GitHub にあり、無料でダウンロードして使えます。
- Cleat は Mac の外にデータを送りますか?
- 2 つのものを送ります。1 つ目は匿名の利用状況 ping で、デフォルトでオンです。デーモンの起動時と、動作中は約 1 日に 1 回、ランダムなデバイス ID、Cleat のバージョン、製品名を jetto.ai に送り、インストール数とアクティブユーザー数を数えるために使います。設定、デバイス名、ファイルの内容は送りません。設定ファイルで usagePing を false にすれば、何も送られなくなります。2 つ目はクラッシュとエラーのレポートで、既定はオフです。errorReports を true にするまで Sentry には何も送られません。
- Cleat を使うのに何が必要ですか?
- macOS 14 以上です。Cleat を初めて実行したときに macOS がマイクの許可を確認しますが、必要なのは無音検出(liveness)だけで、拒否してもほかのルールはすべて動き続けます。