← 所有文章

工具 · 2026.10.03 · 4 min · 更新於 2026.10.26

Claude Code mods 實作:翻一個月 session log 做出五個 mod

讓 Claude 讀過一個月的 session log,找出自己一再重複的需求,做成 prompt 上方的 band、status line 和指令,其中最有用的是追蹤 Claude 留下哪些東西的 leftovers。

閱讀設定
主題
字級
寬度

Claude Code 出了 mods,能做的事很多,難的是決定做什麼。我讓 Claude 讀我一個月的 session log,找出自己一再重複的需求,最後做出五個 mod。

最有用的是 leftovers。我的 cwd(目前的工作目錄)常常是家目錄,不是 git repo,git diff 回答不了 Claude 到底留下了什麼。

設計上最重要的決定是,按鈕不直接執行指令,只把建議的指令交給 Claude,照樣走權限檢查。

mods 也就是 function hooks plugin,可以在 prompt 上方畫一列 band(橫條提示列)、在 status line 加一格、攔下工具呼叫,或加一個 /指令。

官方的上手指南 Getting started with Claude Code mods 建議先讓 Claude 讀自己的 session log,我照做。

從 session log 找需求

我請 Claude 照三類去找:

  • 一再問、或一再叫 Claude 做的事。
  • 讓人緊張的指令,例如做到一半喊停、事後叫它還原的。
  • 我怎麼檢查 Claude 的改動。

範圍是 9 月 3 日到 10 月 3 日的 19 個 session,大約 240 句我打的話、2,725 次工具呼叫。

Claude 找到的東西照幫助大小排,最上面是 leftovers:

mod 證據 形式
leftovers 叫 Claude 收掉先前裝的東西 11 次、跨 8 個 session;另外 5 次在問「現在到底裝了或跑著什麼」 prompt 上方一行總數,/leftovers 看清單
your-turn 做完手動步驟回來叫 Claude 繼續 25 次、跨 6 個 session prompt 上方一行
notes-due /session-notes 9 次、跨 6 個 session,是我最常打的指令 status line 多一格
secret-mask 證據偏弱:一次 token 被印出來的事故,另外 3 次憑證類被自動擋下 純 hook 加 toast

第五個 plan-bar 不是從 log 來的,是看到 desktop 版的進度條效果,想在 CLI 也有一個。

示意圖:五個 Claude Code mod 在畫面上的位置。leftovers 和 your-turn 各佔 prompt 上方的一列 band,notes-due 在 status line 多一格,/leftovers 指令把清單印在輸出區;secret-mask 是攔 Bash 輸出的 hook,plan-bar 註冊 plan_set、plan_update 兩個 tool,由 Claude 自己推進度條。

leftovers:Claude 留下了什麼

我的一個 session 常會動到 3 到 5 個地方,同一個月裡還有 91 次 ssh 到伺服器。

這種情況下,沒有一個 git diff 看得到全貌。

leftovers 靠 Bash 指令的樣式判斷留下了什麼,像是 launchctl bootstrap、systemctl enable、docker compose up -d、crontab、git worktree add、cp x x.bak。之後出現對應的收掉指令,那一項就劃掉。

寫法特殊的會漏,這是樣式比對本來就有的限制。

最重要的決定在「收掉」按鈕。按下去會送一句 prompt 給 Claude,附上建議的收掉指令,由 Claude 先確認東西還在再收。

直接從按鈕對伺服器下 systemctl disable 太冒險。

實際用起來,遇到刪 repo 這種收不回來的,Claude 會先問我。

流程圖:leftovers 先比對 Bash 指令樣式(launchctl bootstrap、systemctl enable、docker compose up -d、crontab、git worktree add、cp x x.bak)記進帳本,出現對應的收掉指令就劃掉;按「收掉」不直接執行,而是送 prompt 給 Claude 並附上建議指令,Claude 確認東西還在、照樣走權限檢查再收,收不回來的會先問我。

另外有一個「未 commit」區塊,把 Claude 動過的目錄對回所屬的 git repo,回合結束時列出還沒 commit 的檔。第 3 類「怎麼檢查改動」就由這裡涵蓋。

其他四個 mod

your-turn 把 Claude 交給我手動做的步驟,列在 prompt 上方。

證據裡最久的一件,從 Claude 列出來到我回報隔了約 7 小時,中間 context 還壓縮(對話太長時把舊內容摘要掉)過一次。

設計重點在控制什麼時候叫模型。回合結束時,回覆看起來有交辦事項,才打一次 haiku(Claude 的小模型)抽取,上限 8 秒。只掛一件時不問模型,我回「好了」這類話就直接劃掉。

notes-due 只補「該記筆記了沒」的提示。merge、部署、開新 repo 之後,status line 顯示「筆記 未記 N」,跑完 /session-notes 歸零。

secret-mask 只遮 Bash 的輸出。

Read、Edit、Write 的結果不動,因為那些是之後要拿來改檔的原文。遮了的話,Edit 會對不上,或把遮過的值寫回設定檔。

plan-bar 註冊了 plan_set、plan_update 兩個 tool,請 Claude 遇到三步以上的工作就用,進度條是 Claude 自己推的。

terminal 只能用方塊字元畫,做不出 desktop 版那種圓角標籤。

安裝與寫 mod 的坑

plan-bar、leftovers、secret-mask 後來整理成公開的 homieyangg/claude-code-mods,裝法是(指令說明見 Claude Code 的 plugin 安裝文件):

/plugin marketplace add homieyangg/claude-code-mods
/plugin install leftovers@claude-code-mods
/reload-plugins

寫 mod 有一個坑值得記:$(mods 的 API 物件)只能傳給檔案頂層宣告的函式。

寫在 register 裡的 closure 去接 $,會讓整個 module 載入失敗。畫 band 的共用函式要宣告在頂層,再把 $ 傳進去。

另外,同名的 mod 不要同時留在開發目錄和正式資料夾,resume 時會重複載入。

mod 也要寫測試,每次改完我都跑 claude plugin validate 和 claude plugin test。

初版上線當天我就開始改 band 的互動,leftovers 也陸續補了幾個盲點,寫在可點擊的 band 與 leftovers 看不到的殘留。

#開發者工具#Claude Code mods#Claude Code

留言

載入留言中…

下一篇

工程

多個 AI agent 同時開 PR:GitHub required check 與部署預檢怎麼守住 main 和 PROD

好幾個 AI agent 同時開 PR,每次 merge 又多一個 release commit,只靠 GitHub branch protection 守不住。整理 required check 跟路徑過濾打架的修法,以及部署預檢和 merge script 怎麼補洞。