Claude Code や Codex の完了を通知で知る方法
2026年10月6日 更新
Claude Code や Codex に長いタスクを任せて別の作業をし、10 分後に戻ってみたら、2 分目で「はい」を待って止まっていた。そんな経験はありませんか。エージェントが終わったときやあなたの OK を待っているときに音や通知が届けば、それは防げます。
どちらのツールにも無料の方法があります。このガイドではまずそれを紹介し、そのあとで同じことを自動で設定してくれる Clacky の Agent Alerts(エージェント通知)を紹介します。
要点まとめ
- Claude Code は Ghostty、Kitty、iTerm2 ならそのまま通知できます(iTerm2 は設定がひとつ必要)。ほかのターミナルではフックを追加します。
- Claude Code の Stop フックは終わったときに、Notification フックはあなたが必要なときに動きます。どちらも、音なら
afplay、通知ならosascriptを実行させます。 - Codex は
~/.codex/config.tomlにnotifyの行を追加するか、内蔵のターミナル通知をオンにします。 - 設定ファイルを編集したくない? Clacky の Agent Alerts がフックを追加し、「完了」と「確認待ち」で違う音を鳴らします。
エージェントが「終わった」を伝えるしくみ
どちらのツールも、決まったタイミングであなたのコマンドを実行できます。通知の正体はそれだけです。Claude Code ではこれをフック、Codex では notify と呼びます。コマンドの中身(音を鳴らす、バナーを出す、画面を光らせる)は、エージェントが止まったときや入力を求めたときに実行されます。
Claude Code:内蔵の通知
Claude Code は、作業が終わったときや許可の確認を待っているときに、自分でデスクトップ通知を送れます。Anthropic のドキュメントによると、Ghostty と Kitty ではそのまま動きます。iTerm2 では一度だけ設定をオンにします。
- iTerm2 → Settings → Profiles → Terminal を開きます。
- Notification Center Alerts にチェックを入れます。
- Filter Alerts をクリックし、Send escape sequence-generated alerts をオンにします。
tmux の中で Claude Code を動かしている場合は、~/.tmux.conf に set -g allow-passthrough on を追加してください。これがないと通知がターミナルまで届きません。通知の方法(たとえばターミナルのベル)は、Claude Code の /config 設定でも選べます。
Claude Code:音を鳴らすフック
Apple のターミナル、VS Code、そのほかのターミナルでは、フックを使います。フックは ~/.claude/settings.json(すべてのプロジェクト)または .claude/settings.json(ひとつのプロジェクト)に書きます。大事なイベントは 2 つです。
- Stop:Claude が回答を終えたとき。
- Notification:Claude があなたを必要としているとき(許可の確認や、入力待ちが続いているとき)。
次の設定で、どちらのときも macOS のサウンドが鳴ります。いまの設定ファイルに追記してください(すでにある内容は残します)。
{
"hooks": {
"Stop": [{ "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Glass.aiff" }] }],
"Notification": [{ "matcher": "", "hooks": [{ "type": "command", "command": "afplay /System/Library/Sounds/Ping.aiff" }] }]
}
}バナーのほうがいい場合は、代わりにこのコマンドを使います(Anthropic の例と同じです)。
osascript -e 'display notification "Claude Code needs your attention" with title "Claude Code"'Claude Code で /hooks と入力すると、設定されているフックを確認できます。新しいフックは、保存したあとに始めたセッションから有効になります。/System/Library/Sounds/ のサウンドは自由に使えます。Glass、Ping、Pop、Purr、Submarine などがあります。
Codex:notify の設定
Codex CLI は、ターンが終わるたびにあなたのプログラムを実行できます。設定は ~/.codex/config.toml の notify です。Codex は最後の引数としてターンの内容を JSON で渡します(type は agent-turn-complete)。音を鳴らすだけのコマンドなら無視してかまいません。
notify = ["sh", "-c", "afplay /System/Library/Sounds/Glass.aiff"]notify はトップレベルのキーなので、ファイル内のどの [section] よりも上に書きます。Codex にはターミナル UI の内蔵通知([tui] の notifications)もあり、ターミナル自身の通知やベルを使います。バナーが表示されるかどうかはターミナル次第です。
Codex の notify が動くのはターンが終わったときです。Claude Code の Notification フックのような「承認待ち」専用のイベントはありません。
Clacky なら 2 クリックで完了
Agent Alerts がフックを追加し、「完了」と「確認待ち」で違う音を鳴らします。ターミナルを見ているときや通話中は静かに。エージェントが終わるまで Mac を起こしておくこともできます。7 日間無料、カード不要。
Clacky の Agent Alerts:設定ファイルなしで同じことを
JSON や TOML を編集したくないなら、Clacky(Mac のメニューバーアプリ)の Agent Alerts があります。上と同じフックを使うので、画面を見張ったりターミナルを読み取ったりはしません。
- Clacky のダッシュボード → Agent Alerts を開きます。
- Claude Code または Codex の横の Set Up… をクリックします。Clacky が追加する行をそのまま見せてくれるので、Add Hooks をクリックします。元のファイルのバックアップは同じ場所に残ります(
settings.json.clacky-backup)。 - Send a Test Alert をクリックすると、2 つの音を試せます。
できること:
- 完了(上がっていく和音)と確認待ち(2 回のタップと問いかけ)で違う音。エージェントごとに 5 つのボイスから選べます。
- 画面の縁がやわらかく光る演出(約 1 秒、オプション)。クリックは下に通り抜け、録画には映りません。
- Quiet when it’s in front(エージェントのターミナルが前面にあるあいだは鳴らさない)と Quiet during calls(マイク使用中は鳴らさない)。どちらも最初からオンです。
- メニューバーにセッションごとのドット:作業中、待機中、完了。クリックするとそのターミナルが前面に来ます。
- Keep Awake → Until My Agent Is Done で、長い作業が Mac のスリープで止まりません。
Claude Code はどのターミナルでも、Claude アプリの Code タブでも使えます。Codex は CLI に対応し、完了の音が鳴ります(Codex は「確認待ち」のイベントを送らないため)。Codex の設定にすでに notify の行がある場合、Clacky はそれを置き換えず、そのまま残してお知らせします。Remove… で消えるのは Clacky が追加した行だけです。
何も起きないときは
- セッションを再起動する。 フックはセッション開始時に読み込まれるので、すでに動いていたセッションでは通知されません。
- ファイルが正しく読めるか確認する。
settings.jsonのカンマがひとつ抜けているだけで、すべてのフックが止まります。JSON チェッカーに貼り付けて確かめてください。 - コマンドだけを試す。 ターミナルで
afplay /System/Library/Sounds/Glass.aiffを実行します。音が出なければ、出力デバイスと音量を確認してください。 - バナーが出ない? システム設定 → 通知 で、使っているターミナル(
osascriptならスクリプトエディタ)の設定と、集中モードを確認してください。 - 音が 2 つ同時に鳴る? 設定が 2 つある状態です(たとえば自分で書いたフックと Clacky のフック)。どちらかひとつにしてください。
よくある質問
Claude Code に通知音の機能はありますか?
Ghostty、Kitty、iTerm2 なら、そのままデスクトップ通知を送れます(iTerm2 は Send escape sequence-generated alerts をオンにする必要があります)。どのターミナルでも音を鳴らしたいなら、afplay を実行する Stop フックか Notification フックを追加してください。
Stop フックと Notification フックの違いは?
Stop は Claude が回答を終えたときに動きます。Notification は Claude があなたを必要とするとき、つまり許可の確認や入力待ちが続いているときに動きます。たいていの人は両方を、違う音で使っています。
Codex は承認が必要なときに知らせてくれますか?
Codex の notify プログラムが動くのは、ターンが終わったとき(agent-turn-complete)です。いまのところ承認専用のイベントはないので、音が鳴るのはターンの終わりです。
Clacky はコードやプロンプトを読みますか?
いいえ。フックが Clacky に渡すのは、どのツールか、どのターミナルアプリか、セッション ID、そして何が起きたか(作業中、完了、確認待ち)だけです。プロンプト、コード、出力は渡しません。どこにも送信されず、Mac の中のファイルに 1 行書かれるだけです。
Cursor でも使えますか?
Clacky ではまだです。Cursor のフックはまだベータ版のためです。対応しているのは Claude Code と Codex CLI です。
ほかのガイド
Clacky ははじめてですか?サウンド、レコーダー、スクリーンショット、Mac ヘルス、エージェント通知をひとつのダッシュボードにまとめた、小さな Mac のメニューバーアプリです。 すべてのツールを見る · 7 日間無料で試す
2026年10月6日 に確認しました。 内容が変わっていたり、間違いがあったりしたら、hello@clacky.app までメールでお知らせください。