Skip to content
←INDEX / 提示詞庫
TUTORIAL/Claude Code/入門

Claude Code Hook 食譜:Stop 事件桌面通知+音效(跨 macOS/Linux/Windows)

掛一個 Stop hook,讓 Claude Code 一跑完就跳桌面通知+播提示音。你可以放心去開別的視窗做事,AI 完工會自己叫你回來,不用一直盯著終端機。

SakuyaPromptCraft 主筆 · 寫於 2026-06-08
AI 教學 / 腳本Claude Code入門≈ 431 tokens · 實際用量依工具與輸入而異
Last reviewed2026-06-08Read~10 MIN

01PROMPT

# 目標:Claude Code 跑完一輪(Stop 事件)就桌面通知+播音效
# 放到 ~/.claude/settings.json(全域,所有專案通用)。
# 機制:Stop hook 在 Claude 結束回應時觸發;可同時跳通知與播聲音。
#       下面腳本自動判斷作業系統,挑對的通知/播音指令。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash {{HOOKS_DIR}}/notify-on-stop.sh"
          }
        ]
      }
    ]
  }
}

# ---- notify-on-stop.sh ----
# chmod +x 後使用。跨平台:macOS 用 afplay + osascript;Linux 用 paplay/aplay + notify-send;Windows(WSL) 用 PowerShell。
#!/usr/bin/env bash
set -euo pipefail

TITLE="{{NOTIFY_TITLE}}"          # 例:Claude Code
MESSAGE="{{NOTIFY_MESSAGE}}"      # 例:任務完成,回來看看 ✅

case "$(uname -s)" in
  Darwin)   # macOS
    afplay {{MAC_SOUND_PATH}} >/dev/null 2>&1 || true   # 例:/System/Library/Sounds/Glass.aiff
    osascript -e "display notification \"$MESSAGE\" with title \"$TITLE\" sound name \"Glass\"" >/dev/null 2>&1 || true
    ;;
  Linux)
    if grep -qi microsoft /proc/version 2>/dev/null; then
      # WSL:呼叫 Windows 端 PowerShell 播音+通知
      powershell.exe -c "[console]::beep(880,300); New-BurntToastNotification -Text '$TITLE','$MESSAGE'" >/dev/null 2>&1 \
        || powershell.exe -c "[console]::beep(880,300)" >/dev/null 2>&1 || true
    else
      # 原生 Linux
      command -v paplay >/dev/null 2>&1 && paplay {{LINUX_SOUND_PATH}} >/dev/null 2>&1 \
        || (command -v aplay >/dev/null 2>&1 && aplay {{LINUX_SOUND_PATH}} >/dev/null 2>&1) || true
      command -v notify-send >/dev/null 2>&1 && notify-send "$TITLE" "$MESSAGE" >/dev/null 2>&1 || true
    fi
    ;;
  *)        # 其他(含 Git Bash on Windows):盡量響個鈴
    printf '\a' || true
    ;;
esac
exit 0
# 小技巧:想分辨「完成」vs「需要你輸入」,可另外掛 Notification 事件用不同聲音,
#         這樣聽聲音就知道該回來按核准、還是任務真的做完了。

把方括號 [ ] 內的變數換成你的內容,丟進 Claude Code。

◆ 直接開到工具Claude(記得貼)
RUN站內試跑 / TRY IT
▶ 站內試跑

不用離開網站,直接看這組 prompt 跑出來長怎樣(AI 即時生成,扣 1 點)。

SKILL安裝成 SKILL / INSTALL
安裝成 SKILLClaude Code Agent Skill

不只複製貼上 — 下載後放到 ~/.claude/skills/hook-stop-event-desktop-notification-sound/SKILL.md,之後每個 session 自動可用(觸發時自動載入)。

macOS / Linux
mkdir -p ~/.claude/skills/hook-stop-event-desktop-notification-sound && mv ~/Downloads/SKILL.md ~/.claude/skills/hook-stop-event-desktop-notification-sound/SKILL.md
Windows PowerShell
New-Item -ItemType Directory -Force "$env:USERPROFILE\.claude\skills\hook-stop-event-desktop-notification-sound" | Out-Null; Move-Item "$env:USERPROFILE\Downloads\SKILL.md" "$env:USERPROFILE\.claude\skills\hook-stop-event-desktop-notification-sound\SKILL.md"

02CONTEXT / 使用情境

## 這是什麼/解決什麼痛點 長任務最浪費的不是 AI 的時間、是你的注意力:你叫 Claude Code 去跑一個要好幾分鐘的重構或測試,然後就得一直瞄終端機,怕它早就跑完在等你、或卡在某個提問。這個 Stop hook 把這件事自動化——只要 Claude 結束一輪回應,就跳一則桌面通知+播一聲提示音。你可以安心切去看文件、回訊息、泡咖啡,完工它會主動「叫」你回來。這是少數「一次設定、天天回本」的生產力小設定。 ## 為什麼這來源值得用 「跑完播聲音/通知」是 hooks 的經典用法,而且有兩個開放授權的實作背書本食譜:rohitg00/awesome-claude-code-toolkit(Apache-2.0)內含 `claude-sounds`,用 macOS 的 `afplay` 對約 10 個生命週期事件(含任務完成)播音;decider/claude-hooks(MIT)則提供一個專門的 Stop 事件「Task Completion Notifier」,在 Claude 結束時送通知。我把這兩者的概念合成一個「跨平台」腳本:自動判斷 macOS / 原生 Linux / WSL,分別用 afplay+osascript、paplay/aplay+notify-send、或 PowerShell,讓你不論在哪種環境都能用同一份設定。 ## 怎麼用(步驟) 1. 把 JSON 併進 `~/.claude/settings.json`(放全域,所有專案都通知)。注意 Stop hook 通常不需要 `matcher`。 2. 建立 `notify-on-stop.sh`,貼上腳本並 `chmod +x`。 3. 設定 `{{NOTIFY_TITLE}}` 與 `{{NOTIFY_MESSAGE}}`(例如「Claude Code」「任務完成 ✅」)。 4. 依平台填音效路徑:macOS 用 `{{MAC_SOUND_PATH}}`(例 `/System/Library/Sounds/Glass.aiff`);Linux 用 `{{LINUX_SOUND_PATH}}`(指向任一 .wav)。 5. Linux 桌面記得有 `notify-send`(多半在 `libnotify-bin` 套件);WSL 想要桌面 toast 可裝 BurntToast PowerShell 模組,沒裝也至少會 beep。 6. 測試:隨便叫 AI 做件小事,等它停下來,應該會「叮」一聲+跳通知。 ## 要點與何時用 - **Stop vs Notification 是兩個事件**:Stop 是「這輪結束」,Notification 是「需要你輸入/核准」。想用聽覺分辨「真的做完了」與「在等我按確認」,可以對兩個事件掛不同聲音。 - **全部用 `|| true` 包起來**:某台機器沒裝播音工具時,hook 不該因此報錯中斷——通知失敗頂多沒聲音,不要拖累主流程。 - **何時用**:跑長測試、大重構、批次資料處理、或你習慣同時開很多視窗多工時最有感。短互動其實也行,但你可能會嫌太吵——那就只在特定專案(專案層 settings.json)開。 📎 來源:rohitg00/awesome-claude-code-toolkit(作者 Rohit Ghumare,Apache-2.0 授權)的 claude-sounds,與 decider/claude-hooks(作者 decider,MIT 授權)的 Stop 事件 Task Completion Notifier — 本篇繁中改寫並整合為跨平台 Stop 通知+音效設定,原始內容見上方連結。

04VARIABLES / 變數說明

01[HOOKS_DIR]

notify-on-stop.sh 所在目錄,例如 ~/.claude/hooks

02[NOTIFY_TITLE]

通知標題,例如 Claude Code

03[NOTIFY_MESSAGE]

通知內容,例如「任務完成,回來看看 ✅」

04[MAC_SOUND_PATH]

macOS 音效檔路徑,例如 /System/Library/Sounds/Glass.aiff

05[LINUX_SOUND_PATH]

Linux 音效檔路徑,指向任一 .wav 檔

05RESOLVER · 變數代入器0 / 5

填下面的欄位,上方 prompt 會即時替換 [方括號] 內容。填好後按「複製組好的 prompt」直接丟進工具。

修飾
Assembled · 填剩餘變數…
# 目標:Claude Code 跑完一輪(Stop 事件)就桌面通知+播音效
# 放到 ~/.claude/settings.json(全域,所有專案通用)。
# 機制:Stop hook 在 Claude 結束回應時觸發;可同時跳通知與播聲音。
#       下面腳本自動判斷作業系統,挑對的通知/播音指令。

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "command",
            "command": "bash {{HOOKS_DIR}}/notify-on-stop.sh"
          }
        ]
      }
    ]
  }
}

# ---- notify-on-stop.sh ----
# chmod +x 後使用。跨平台:macOS 用 afplay + osascript;Linux 用 paplay/aplay + notify-send;Windows(WSL) 用 PowerShell。
#!/usr/bin/env bash
set -euo pipefail

TITLE="{{NOTIFY_TITLE}}"          # 例:Claude Code
MESSAGE="{{NOTIFY_MESSAGE}}"      # 例:任務完成,回來看看 ✅

case "$(uname -s)" in
  Darwin)   # macOS
    afplay {{MAC_SOUND_PATH}} >/dev/null 2>&1 || true   # 例:/System/Library/Sounds/Glass.aiff
    osascript -e "display notification \"$MESSAGE\" with title \"$TITLE\" sound name \"Glass\"" >/dev/null 2>&1 || true
    ;;
  Linux)
    if grep -qi microsoft /proc/version 2>/dev/null; then
      # WSL:呼叫 Windows 端 PowerShell 播音+通知
      powershell.exe -c "[console]::beep(880,300); New-BurntToastNotification -Text '$TITLE','$MESSAGE'" >/dev/null 2>&1 \
        || powershell.exe -c "[console]::beep(880,300)" >/dev/null 2>&1 || true
    else
      # 原生 Linux
      command -v paplay >/dev/null 2>&1 && paplay {{LINUX_SOUND_PATH}} >/dev/null 2>&1 \
        || (command -v aplay >/dev/null 2>&1 && aplay {{LINUX_SOUND_PATH}} >/dev/null 2>&1) || true
      command -v notify-send >/dev/null 2>&1 && notify-send "$TITLE" "$MESSAGE" >/dev/null 2>&1 || true
    fi
    ;;
  *)        # 其他(含 Git Bash on Windows):盡量響個鈴
    printf '\a' || true
    ;;
esac
exit 0
# 小技巧:想分辨「完成」vs「需要你輸入」,可另外掛 Notification 事件用不同聲音,
#         這樣聽聲音就知道該回來按核准、還是任務真的做完了。
SOURCE / 來源歸屬
FAQ · 常見問題

「Claude Code Hook 食譜:Stop 事件桌面通知+音效(跨 macOS/Linux/Windows)」這組提示詞要怎麼用?

這組 prompt 專為 Claude Code 設計。把 prompt 內 5 個方括號 [變數] 換成你自己的內容,貼進 Claude Code 執行即可。難度為入門,新手可以直接套用。

「Claude Code Hook 食譜:Stop 事件桌面通知+音效(跨 macOS/Linux/Windows)」是免費的嗎?

完整 prompt 免費開放閱讀,不用註冊;可保存瀏覽器收藏,登入後可一鍵複製與留言。

用 Claude Code 依這組 prompt 生成的成果可以商用嗎?

prompt 文字本身你可自由使用與修改。但 AI 生成物(圖/音樂/影片/文字)的商用授權,取決於你在 Claude Code 使用的方案與其官方服務條款,請以該工具的授權規範為準。

RELATED你可能也需要

PRO01
TUTORIALSuno v5.5FEATURED
r/SunoAI (anonymous studio engineer)2026-06-12

Suno 工程師思維:4 步驟做出不像 AI 的歌

5.0(1)

Studio engineer 視角拆解 Suno 致命弱點(油炸 vocals、高頻 artifact)+ 4 步驟 DAW workflow + Suno Studio 修音 prompt

高階
Read

免費02
TUTORIALClaude 4.5 SonnetFEATURED
r/ClaudeAI2026-05-14

5 個 6 月 stuck 下來的 Claude 每週 workflow

提案產生器 / 會議處理器 / 內容再利用 / 週五回顧 / 收工 reset — 試了 40 個只有這 5 個沒被丟掉、各省 30+ 分鐘 / 次。

進階
Read

PRO03
TUTORIALClaude 4.5 SonnetFEATURED
r/PromptEngineering2026-05-14

7 個跨 model A/B 測過的 prompt 技巧(不是 vibes)

六個月在 Claude / GPT-4 / Gemini 上用人工 rater A/B 測 200+ prompt 後寫的。包含 persona+constraint stacking / anti-example / role reversal QA / cognitive scaffold / emotional priming / uncertainty CoT / steelman first。

高階
Read

免費04
TUTORIALChatGPTFEATURED
r/ChatGPTPromptGenius2026-05-14

5 個信任檢查單行 prompt(沒有 role-play)

一年的 role-play system prompt + 14-step framework 後總結:真正改變品質的是 5 個單行 prompt。沒有 role、沒有 markdown、沒有「you are an expert」。

入門
Read

免費 · 全文開放閱讀

完整 prompt 已經開放.

免登入閱讀全文、保存瀏覽器收藏;登入後可一鍵複製與留言討論。不用信用卡。

不想註冊?

留個 email,下次有新 prompt 會寄一封簡短摘要給你。退訂一鍵、不轉賣。

每週一期,新上架提示詞 + 模型測試心得。每封信底部都有一鍵取消訂閱。

或訂 RSS feed(30 秒一次的人味選擇)

COMMENTS · 討論區0 則
登入 後可留言。還沒帳號?註冊
目前沒有留言。第一個說說你的經驗。
EMBED · 嵌入 blog / Note一行 iframe HTML、貼進文章即顯示此 prompt 卡片+

適合:部落格、Medium、Notion 公開頁、Substack — 任何支援 iframe / HTML 嵌入的地方。對方點「看完整」會回到本站、是 prompt 庫的免費 backlink。

<iframe src="https://prompt.luvai.net/embed/claude-code-hook-stop-event-desktop-notification-sound" width="100%" height="380" frameborder="0" style="border:1px solid #e0dcd0;border-radius:4px;" loading="lazy" title="PromptCraft Embed"></iframe>
預覽 embed →380px tall · responsive width
發現這個 prompt 過時 / 跑不動 / 有錯字? 回報給我們 →