Community程式設計與開發github.com

hwipit/plugin

顯示或變更此專案的 Hwip 推播通知設定:靜音(預設)、一般、大聲、靜音、取消靜音;--global 設定預設音量。`approve on|off` 開啟或關閉難以復原指令的電話核准閘門。

plugin 是什麼?

此技能「hwipit/plugin」用於管理 Hwip 推播通知的音量模式與核准閘門。使用者可以透過 `quiet`、`normal`、`loud`、`mute`、`unmute` 等參數調整推播行為,並使用 `--global` 設定全域預設值。`approve on|off` 可控制針對危險指令(如 rm -rf、強制推送、生產環境部署)的電話核准閘門。該技能支援 Claude Code、Cursor、Codex 等終端機 AI 代理平台,其設定以專案目錄為範圍,而非以工作階段為單位——同一目錄中的兩個 Claude 工作階段會共用這些設定。技能運作方式為透過一個 Bash 腳本讀取使用者提供的引數,並依據輸出狀態回報當前設定(如通知是否靜音、推播模式、核准閘門狀態等)。若輸出結尾出現 `Hwip rules` 區塊,則表示會話規則已更新,代理應遵循新規則;若為 `Session rules unchanged` 則沿用現有規則。

相容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/hwipit/plugin/tree/HEAD/skills/hwip-mode

Installed? Explore more 程式設計與開發 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜歡的 AI 中提問

開啟一個已預先載入此 Agent Skill 的新對話。

說明文件

請完全依照以下方式執行——參數放在 heredoc 的第二行,永遠不要放在指令本身,保持在一行內,且只允許使用 quiet normal loud mute unmute --global approve on off 這些字詞:

bash "${CLAUDE_PLUGIN_ROOT}/scripts/hwip-mode.sh" <<'HWIP_MODE_INPUT'
${CLAUDE_PROJECT_DIR}
$ARGUMENTS
HWIP_MODE_INPUT

Exit 2 表示參數錯誤——請向使用者顯示腳本印出的用法行。否則請用你自己的話報告狀態行:

  • NOTIFICATIONS: muted → 此處的 Stop 與 Ask 鉤子保持靜音;hwip_* 工具仍可運作,但除非使用者要求,否則不會被呼叫。靜音優先於所有音量設定。
  • PUSH MODE: quiet → 僅在使用者於終端機前時推送高優先級項目(阻塞性問題、標記為 high 的 Push Signal),並在使用者離開(HWIP_AWAY_SEC,預設 300 秒)後或當此工作階段的 tmux 窗格不在螢幕上時,發送一次完成推送。這是出廠預設值。
  • PUSH MODE: normal → 每個執行過實際工作的輪次都會推送,唯讀輪次則靜默;Push Signal 標記決定邊界情況。
  • PUSH MODE: loud → 每個輪次都推送,覆蓋 skip。
  • 括號內說明音量設定的來源:this project(此專案)、global default(使用 --global 設定,無專案設定的專案會繼承此值),或內建預設值。專案設定永遠優先於全域設定。
  • APPROVAL GATE: on|off → 是否在此專案中,對難以復原的 Bash 指令(rm -rf、強制推送、生產環境部署、破壞性 SQL)等待核准。在終端機前,Claude Code 自己的權限提示會詢問;當使用者離開、處於 REMOTE 模式,或無法讀取在場狀態時,則由使用者的手機執行核准。on, but inactive while muted — 已靜音的專案無人可詢問,因此不會暫停任何操作。
  • SCOPE: … → 音量設定、靜音、核准閘門與自動模式屬於專案目錄,而非工作階段:同一目錄中的第二個 Claude 工作階段會共用這些設定。當使用者變更其中之一時,請告知此情況。
  • AUTO MODE: … → 有一個 /hwip-auto 工作階段正在執行,並顯示剩餘預算。off (an expired … session left its state behind — cleared) 表示有一個已崩潰的工作階段。
  • LAST PUSH: … → CLI 記錄的上一次失敗推送(hwip notify 會寫入此記錄,成功推送則會清除)。鉤子會隱藏 notify 的錯誤,因此此行是用來區分「已靜音,沒有要發送的內容」與「每次推送都失敗」。請轉達給定的原因與修復方式(例如,金鑰被拒 → hwip login,沒有應用程式登入 → 在 iPhone 或 Android 手機上登入 Hwip 應用程式);hwip verify 提供更多資訊。
  • Hwip: <device> changed its encryption key — … → 並非失敗:使用者的某個裝置現在列出了與此機器先前鎖定不同的加密金鑰,且新金鑰已被信任。只顯示一次,然後清除。請將其轉達為此情況——重新安裝的應用程式或新手機可以解釋;如果都不是,hwip trust 會顯示指紋以便與應用程式比對。

問題(hwip_ask,AskUserQuestion 的鏡像)在除了靜音之外的所有音量設定下都會推送。

密封問題攜帶的上下文(工作階段的遮罩 git diff 與最後終端機輸出行)不屬於此音量設定。如果使用者要求停止發送,請指引他們使用 hwip ask-context off(此專案)或 hwip ask-context off --global(所有專案);hwip ask-context 會顯示目前適用的設定。

如果輸出結尾有一個 === Hwip rules — replace the Hwip rules from session start === 區塊,表示狀態已變更,且 SessionStart 鉤子提供給此工作階段的規則已過時:請在整個工作階段(包括壓縮後)遵循該區塊的內容。Session rules unchanged 表示變更未影響規則(例如 normal ↔ loud);請保留你現有的規則。approve 永遠不會變更規則。could not refresh 行表示變更仍已套用,但規則未更新——請告知使用者新工作階段會採用這些規則。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

相關技能