sivori/claude-mods/tree/main/plugins/commonplace-pane
關於這個 mod
claude-mods
為 Claude Code 提供一些小型 mod:狀態列、提示列上方的橫條、停靠式窗格和收音機。每個 mod 都是 function hook 外掛。
安裝
claude plugin marketplace add sivori/claude-mods
claude plugin install radio@claude-mods # 或下面的任一個 mod
之後可用 claude plugin marketplace update claude-mods 更新。
不安裝也能試用:先複製儲存庫,再執行 claude --plugin-dir ./plugins/<mod>。
這些 mod
radio
/tune 會在 Claude Code 內串流網路電台:SomaFM、lo-fi、古典音樂和合唱音樂。之所以使用 /tune,是因為 Claude Code 已內建 /radio。所有工作階段共用一個播放器,所以在兩個工作階段中啟動的音樂不會播放兩次。在任何工作階段切換電台都會替換目前的串流,狀態列也會在各處顯示正在播放的內容。播放時,提示列上方會出現一排按鈕:◀ ■ ▶ 用於切換或停止,− + 用於調整音量。停止後按鈕列仍會保留,並顯示一個 play 按鈕,可繼續播放上一個電台。
/tune toggle (resumes the last station); /tune listen just plays
/tune groove pick by name, genre ("jazz", "choral") or number
/tune next | prev | stop | list
/tune vol 30 also vol +10 / vol -10
/tune band hide or show the buttons
優先透過 mpv 播放(brew install mpv),它能無縫調整音量;否則使用 ffmpeg 的 ffplay,每次調整音量都會重新啟動串流。
預設情況下,關閉 Claude Code 後音樂仍會繼續播放,直到執行 /tune stop。在 /config 中開啟 stopWithLastSession 後,所有工作階段都關閉時才會停止;即使工作階段當機,watchdog 也會在約 1 分鐘內捕捉到。
spend-meter
在狀態列顯示工作階段費用、上下文填充量和 5 小時速率限制使用量($1.23 · ctx 42% · 5h 24%)。費用超過 $5、$10、$25、$50 和 $100 時各提示一次。
commit-drift
針對正在編輯的儲存庫,在狀態列顯示未提交檔案數和距離上次提交的時間。對尚未提交超過 30 分鐘的編輯樹,在一次編輯回合後提醒你(最多每 10 分鐘一次)。
backlog-band
在提示列上方顯示目前儲存庫 BACKLOG.md 的 ## Now 項目。/later <item> 會把項目附加到 ## Next,而 /backlog-band 可隱藏或顯示橫條。它要求使用以下格式:
## Now
- [ ] Blocking or imminent work
## Next
- [ ] The normal queue
## Someday
- [ ] Ideas
## Done
- [x] 2026-08-01 Completed
day-recap
讓你不會從零開始。工作時,它會記錄你的提示、編輯過的檔案和建立的提交。工作階段安靜 10 分鐘後,它會讓模型產生兩行回顧(完成了什麼、下一步是什麼),並依儲存庫儲存。下次在該儲存庫開啟 Claude Code 時,第一次傳送訊息前,回顧會顯示在提示列上方:
↩ Last time in dash · yesterday 5:12pm
Done: Added the spend chart and matched its colors.
Next: Write a test for the empty-data case.
/recap 立即寫入回顧,/recap last 取回上次的回顧。沒有做任何事的工作階段會保留之前的回顧。如果在寫入回顧前退出,下個工作階段會根據記錄的活動和 Haiku 寫出回顧。
quest-board
在窗格中顯示目前儲存庫的三個每日任務:一個待解決的 TODO/FIXME 註解、一個待關閉的 GitHub issue(需要 gh)和一個曾經失敗、現在需要通過的測試指令。能找到時每類各選一個;當天保持同一塊任務板,隔天換新。TODO 行消失、issue 關閉或測試指令通過後,任務會自動清除。每項任務清除時都會提示,三項全部清除時會顯示更大的提示。狀態列顯示 ⚔ quests 1/3。
/quests 開啟任務板
/quests reroll 將未完成的任務換成新任務
/quests check 立即重新檢查 issue(否則每 10 分鐘檢查一次)
commonplace-pane
停靠式窗格展示 芝加哥藝術學院 的公版畫作。它的「天氣」會跟著你的儲存庫走:樹乾淨時顯示平靜的風景,變更累積或指令失敗時轉為陰天,風暴時顯示沉船。畫作每 20 分鐘輪換一次,/commonplace next 會掛上一幅新的畫。
圖像需要支援 kitty graphics protocol 的終端機(kitty、Ghostty);其他終端機會在窗格中顯示標題和藝術家。它使用 macOS 的 sips 轉換圖像。畫作快取在 ~/.cache/commonplace-pane/,只保留最新的 30 幅,每次出現新畫作後刪除其餘內容。/config 中有兩個可選設定:
- contact:放在博物館要求 API 客戶端傳送的
AIC-User-Agent標頭中的電子郵件或 URL。 - seedDir:一個含有
seed-*.jpg畫作的資料夾;博物館無法連線時作為備援。
開發
每個 mod 都位於 plugins/<name>/,包含 .claude-plugin/plugin.json、hooks/hooks.json 和 hooks/register.ts(x) 模組。檢查某個 mod:
claude plugin validate plugins/<name>
claude plugin test plugins/<name>
授權
MIT
安裝
請先查看作者 README,確認 marketplace 與外掛名稱;指令可能隨儲存庫結構而變動。
claude plugin marketplace add sivori/claude-mods claude plugin install commonplace-pane
原文 / README
claude-mods
Small mods for Claude Code: status lines, a band above the prompt, a docked pane, and a radio. Each one is a plugin of function hooks.
Install
claude plugin marketplace add sivori/claude-mods
claude plugin install radio@claude-mods # or any mod below
Update later with claude plugin marketplace update claude-mods.
To try one without installing, clone the repo and run claude --plugin-dir ./plugins/<mod>.
The mods
radio
/tune streams internet radio inside Claude Code: SomaFM, lo-fi, classical and choral. (The command is /tune because Claude Code has a built-in /radio.) All your sessions share one player, so music started in two sessions never plays twice. Switching stations in any session replaces the current stream, and the status line shows what's playing everywhere. While something plays, a row of buttons sits above the prompt: ◀ ■ ▶ to change or stop, − + for volume. Stopping keeps the row, with a play button that resumes the last station.
/tune toggle (resumes the last station); /tune listen just plays
/tune groove pick by name, genre ("jazz", "choral") or number
/tune next | prev | stop | list
/tune vol 30 also vol +10 / vol -10
/tune band hide or show the buttons
Plays through mpv (brew install mpv), which changes volume without a gap; otherwise ffplay from ffmpeg, which restarts the stream on each volume change.
By default the music keeps playing after you close Claude Code, until /tune stop. Turn on stopWithLastSession in /config to have it stop once no session is open; a watchdog catches a crashed session too, within about a minute.
spend-meter
Session cost, context fill and 5-hour rate-limit use in the status line ($1.23 · ctx 42% · 5h 24%). It toasts once as spend passes $5, $10, $25, $50 and $100.
commit-drift
Uncommitted file count and time since the last commit in the status line, for whichever repo you're editing. After an editing turn on a tree that hasn't been committed for 30+ minutes, it nudges you (at most every 10 minutes).
backlog-band
Shows the open ## Now items of the active repo's BACKLOG.md above the prompt. /later <item> appends to ## Next, and /backlog-band hides or shows the band. It expects this format:
## Now
- [ ] Blocking or imminent work
## Next
- [ ] The normal queue
## Someday
- [ ] Ideas
## Done
- [x] 2026-08-01 Completed
day-recap
So you never start cold. While you work it records your prompts, the files edited and the commits made. Once the session has been quiet for 10 minutes, it asks the model for a two-line recap (what got done, the next step) and saves it per repo. When you next open Claude Code in that repo, the recap sits above the prompt until your first message:
↩ Last time in dash · yesterday 5:12pm
Done: Added the spend chart and matched its colors.
Next: Write a test for the empty-data case.
/recap writes it now, and /recap last brings back the one from last time. A session that did nothing leaves the earlier recap in place. If you quit before the recap is written, the next session writes it from the recorded activity with Haiku.
quest-board
Three daily quests in a pane, drawn from the active repo: a TODO/FIXME comment to resolve, an open GitHub issue to close (needs gh), and a test command that failed to get passing. It picks one of each kind when it can, keeps the same board all day, and draws a new one tomorrow. A quest clears by itself when the TODO line is gone, the issue is closed or the test command passes. Each cleared quest gets a toast, and clearing all three gets a bigger one. The status line shows ⚔ quests 1/3.
/quests open the board
/quests reroll swap the unfinished quests for new ones
/quests check re-check the issues now (otherwise every 10 minutes)
commonplace-pane
A docked pane of public-domain paintings from the Art Institute of Chicago. Its "weather" follows your repo: calm landscapes while the tree is clean, overcast as changes pile up or commands fail, shipwrecks in a storm. The painting rotates every 20 minutes, and /commonplace next hangs a new one.
The images need a terminal with the kitty graphics protocol (kitty, Ghostty); elsewhere the pane shows the title and artist. It uses macOS sips to convert images. Paintings are cached in ~/.cache/commonplace-pane/, which keeps the newest 30 and deletes the rest after each new painting. Two optional settings live in /config:
- contact: an email or URL sent in the museum's
AIC-User-Agentheader, as the Art Institute asks of API clients. - seedDir: a folder of
seed-*.jpgpaintings to fall back on when the museum is unreachable.
Developing
Each mod is plugins/<name>/ with .claude-plugin/plugin.json, hooks/hooks.json and a hooks/register.ts(x) module. To check one:
claude plugin validate plugins/<name>
claude plugin test plugins/<name>
License
MIT

