VS Code の Codex に少し長めの作業を任せていると、完了したことに気づかず別の作業を続けてしまうことがあります。
Codex CLI には notify の設定がありますが、VS Code 拡張で実行した Codex の完了通知には使えませんでした。
そこで、VS Code版Codexのフック機能を使い、Stop イベントで通知音を鳴らすようにしました。
設定
~/.codex/config.toml に以下を追加します。
# Codexのメイン作業ターンが完了・停止したときに音を鳴らす
[[hooks.Stop]]
[[hooks.Stop.hooks]]
type = "command"
command = "/usr/bin/afplay /System/Library/Sounds/Glass.aiff"
timeout = 10
statusMessage = "完了音を再生中"
macOS では afplay を使うと、標準のシステム音を再生できます。Glass.aiff の部分は、好みの音声ファイルに変えても大丈夫です。
すでに notify を設定している場合は、Codex CLI で二重に鳴るのを避けるため、削除しておくのがおすすめです。
# 削除しておく
notify = ["/usr/bin/afplay", "/System/Library/Sounds/Glass.aiff"]
有効化手順
設定を保存しただけでは、開いているCodexにフックが反映されません。まずVS Codeのウィンドウを再読み込みします。
1. VS Codeを再読み込みする
⌘⇧P の3つのキーを押してコマンドパレットを開き、Developer: Reload Window を実行します。

2. Codexのフック設定を開く
再読み込み後、Codexパネル右上の歯車アイコンから「Codex の設定」を選びます。設定画面の左メニューにある「フック」を開くと、「ユーザー設定」に追加したフックが表示されます。

3. Stopフックを信頼して有効にする
「ユーザー設定」を選択し、停止 のフックを開きます。
コマンドが /usr/bin/afplay /System/Library/Sounds/Glass.aiff になっていることと、右側のスイッチがオンになっていることを確認します。

フックは外部コマンドを実行できる機能なので、初回は内容を確認したうえで明示的に信頼(許可)します。
動作
これで Codex の作業ターンが終了すると、Glass の音が鳴るようになります。
まとめ
VS Code版Codexで完了通知が欲しい場合は、~/.codex/config.toml の Stop フックから afplay を呼び出せば音を鳴らすことが可能です。


コメント