0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSL2(Ubuntu)でCodexCLIの作業完了時にWindowsデスクトップ通知を表示する方法

Posted at

はじめに

Codexの作業完了時に、デスクトップ通知を表示させる方法を紹介します。
対象環境は WSL2(Ubuntu) および Windows 11 です。

※デスクトップ通知完成イメージ:
スクリーンショット 2025-11-01 221759.png


設定ファイルに通知スクリプトを登録する

Codexの設定ファイル ~/.codex/config.toml に、通知スクリプトを呼び出す設定を追加します。

notify = ["bash", "/home/user_name/.codex/notify_wsl2.sh"]

※他のセクション(例:[tool])の中には記載せず、独立した設定として追加してください。


BurntToast モジュールをインストールする

PowerShellで以下を実行し、Windowsの通知機能を操作できるモジュールをインストールします。

Install-Module -Name BurntToast -Scope CurrentUser -Force

実行中に以下のようなメッセージが表示される場合があります。

続行するには NuGet プロバイダーが必要です
...
今すぐ PowerShellGet で NuGet プロバイダーをインストールしてインポートしますか?
[Y] はい(Y)  [N] いいえ(N)  [S] 中断(S)  [?] ヘルプ (既定値は "Y"):

この場合は Y を入力して続行してください。

再度、以下のコマンドで BurntToast をインストールします。

Install-Module -Name BurntToast -Scope CurrentUser -Force

PowerShellでの動作確認

以下を実行して通知が出れば成功です。

New-BurntToastNotification -Text "テスト", "BurntToastが正常に動作しています!" -Sound Default

Windowsの右下に通知が表示されます。


WSL2からの通知テスト

次のコマンドをWSL2上で実行します。

powershell.exe -Command "Import-Module BurntToast; New-BurntToastNotification -Text 'WSL2通知テスト', 'これはWSLからの通知です'"

こちらもWindowsの通知センターに表示されれば設定完了です。


通知スクリプトの作成

~/.codex/notify_wsl2.sh を作成し、以下の内容を記載します。

#!/bin/bash
# ~/.codex/notify_wsl2.sh

# JSONから最後のエージェント発言を抽出
LAST_MESSAGE=$(echo "$1" | jq -r '.["last-assistant-message"] // "Codex task completed"')

# デスクトップ通知
powershell.exe -Command "Import-Module BurntToast; New-BurntToastNotification -Text 'Codex', '$LAST_MESSAGE'"

実行権限の付与

作成したスクリプトを実行可能にします。

chmod 755 ~/.codex/notify_wsl2.sh

jq のインストール

スクリプト実行時に次のようなエラーが出た場合:

jq: command not found

jq コマンドがインストールされていないため、以下を実行してください。

sudo apt update && sudo apt install -y jq

動作確認

以下のコマンドでスクリプト単体の動作を確認します。

bash ~/.codex/notify_wsl2.sh '{"last-assistant-message":"テスト通知"}'

Windowsの通知センターにメッセージが表示されれば成功です。


Codexでの通知確認

Codexを再起動し、タスクを実行します。
作業完了時に、設定した通知が表示されることを確認します。


トラブルシューティング

notify設定を[tool]セクション内に記載していた

初めは notify[tool] セクション内に記載していたため、通知が動作しませんでした。
config.toml の仕様上、notify は独立した設定として記述する必要があります。
TOML構文を正しく理解していなかったことが原因でした。


notify-sendは使用できない

Ubuntuでデスクトップ通知を行う際によく紹介される notify-send コマンドを試しましたが、
WSL2環境では通知デーモンが存在しないため、通知が表示されませんでした。
そのため、PowerShell経由でWindowsの通知機能を利用する方法に切り替えました。


おわりに

これで、Codexのタスク完了時にデスクトップ通知を表示できるようになりました。
作業終了に気づきやすくなり、より効率的にCodexを活用できます。


参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?