sivori/claude-mods/tree/main/plugins/commonplace-pane
この mod について
claude-mods
Claude Code 用の小さな mod 集です。ステータス行、プロンプト上部のバンド、ドッキングペイン、ラジオを提供します。それぞれ function hook のプラグインです。
インストール
claude plugin marketplace add sivori/claude-mods
claude plugin install radio@claude-mods # または下記の任意の mod
後から claude plugin marketplace update claude-mods で更新できます。
インストールせずに試すには、リポジトリを clone して claude --plugin-dir ./plugins/<mod> を実行します。
mod 一覧
radio
/tune は Claude Code 内でインターネットラジオをストリーミングします。SomaFM、lo-fi、クラシック、合唱を選べます。Claude Code には組み込みの /radio があるため、コマンドは /tune です。すべてのセッションが同じプレーヤーを共有するので、2 つのセッションで始めた音楽が重複して再生されることはありません。どのセッションで局を切り替えても現在のストリームが置き換わり、ステータス行にはどこでも再生中の内容が表示されます。再生中はプロンプトの上にボタン列が出ます。◀ ■ ▶ で変更または停止し、− + で音量を調整します。停止しても列は残り、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 を超えるたびに一度ずつ toast を表示します。
commit-drift
編集中のリポジトリについて、未コミットのファイル数と前回の commit からの経過時間をステータス行に表示します。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 分間静かになると、モデルに 2 行の振り返り(完了したこと、次のステップ)を作らせ、リポジトリごとに保存します。次にそのリポジトリで 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
アクティブなリポジトリから 3 つのデイリークエストを取り出してペインに表示します。解消すべき TODO/FIXME コメント、閉じるべき GitHub issue(gh が必要)、通すべきテストコマンドを 1 つずつ、見つかる範囲で選びます。同じボードをその日の間は使い、翌日に更新します。TODO 行が消える、issue が閉じる、またはテストコマンドが成功するとクエストが自動で消えます。各クエストを消すと toast、3 つすべて消すと大きな toast が表示されます。ステータス行は ⚔ 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
シカゴ美術館 のパブリックドメイン絵画をドッキングペインに表示します。「天気」はリポジトリに合わせて変わります。ツリーが clean なら穏やかな風景、変更が積み上がるかコマンドが失敗すると曇り、storm では難破船です。絵は 20 分ごとに入れ替わり、/commonplace next で新しい一枚を表示します。
画像の表示には kitty graphics protocol に対応したターミナル(kitty、Ghostty)が必要です。それ以外ではペインにタイトルと画家が表示されます。画像変換には macOS の sips を使います。絵画は ~/.cache/commonplace-pane/ にキャッシュされ、最新の 30 枚だけを残し、新しい絵が追加されるたびに残りを削除します。/config には任意の設定が 2 つあります。
- contact:Art Institute が API クライアントに求める
AIC-User-Agentヘッダーに送るメールアドレスまたは URL。 - seedDir:美術館に接続できない場合に使う
seed-*.jpg画像のフォルダー。
開発
各 mod は plugins/<name>/ にあり、.claude-plugin/plugin.json、hooks/hooks.json、hooks/register.ts(x) を含みます。確認するには:
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

