eshin087/claude-code-mods/tree/main/mod-hub
mod-hub
インストール済みの全 mod とオン/オフ切り替えを一覧し、タスク進捗、次のタスク提案、コーチのヒント、PR、バックグラウンドタスク、mod 切り替えを固定表示するドックも備えた Claude Code mod ハブ。
この mod について
Mod Hub は mods フォルダー内の全 mod を詳細と個別のオン/オフ操作付きで 1 ページに一覧します。さらにプロンプト上部に固定される 1 行のドックには、進行中のタスクバー(%、ステップ、残り時間)、「現在」の行、P(plan)、N(next tasks)、C(coach)、PR(pull requests)、T(background tasks)、M(mods)のタブチップを表示します。タブにカーソルを合わせると、そのタブの詳細を 1 枚の色付きカードで表示します。オン/オフ設定は ~/.claude/mods-data/mod-hub/off.json に書き込まれ、登録時にオフにされた mod を拒否するため、そのフック、コマンド、ツールは実行されません。/mods でハブを開き、/mods-review で Mods、Plan、Coach、PRs をまとめて開きます。モデル呼び出しはなく、追跡対象のファイルを変更しないため git status はクリーンなままです。
インストール
まず作者の README で marketplace とプラグイン名を確認してください。コマンドはリポジトリの構成によって変わる場合があります。
claude plugin marketplace add eshin087/claude-code-mods claude plugin install mod-hub
原文 / README
Mod Hub
What it does: one page listing every mod in your mods folder, what each does in detail, and an on/off switch.
The dock: one line just above the prompt, always in the same place:
◎ ━━━━━━──── 46% 3/5 · ~8m wiring the tile streamer… P ●N C ●PR T M ▾
- Left: the running task as a solid bar, %, step and time left (these never get cut off), then the "now" line, which is trimmed with "…" when space runs out. When the task finishes it reads
✓ done 6m53suntil your next prompt. - Tabs: one letter chip each. P plan · N next tasks · C coach · PR pull requests · T background tasks · M mods. A click opens that panel; a second click closes it. Clicking N with no suggestions yet asks for them.
- T opens the app's own Background tasks pane in one click (instead of two through the menus), and closes it on the next. If the app won't let a mod open it, a toast says so and points you to the menu.
- Dot before a letter:
- green: that panel is open.
- amber: something new (suggestions ready, a new coach tip, a PR failing or in conflict).
- Hover a tab (desktop) to see its card, framed in that tab's color, without opening anything. There is only ever one card, always in the same spot (above the right end of the dock), and it switches as you move between letters. Every line is cut with "…" instead of wrapping:
- P (cyan): task, bar, %, step, time left, now, the step checklist, and how far off past estimates were.
- N (amber): the three suggestions.
- C (violet): cache and context bars, cost, usage limits with reset time, habits, what to do next.
- PR (green): each PR's state and title.
- T (orange): running agents, plus shells, monitors and workflows from the last reply.
- M (pink): every mod, on or off.
- How hover works: the letters are drawn by a small surface module (
hooks/tabs.tsx) that knows where the pointer is and tells the dock which tab it's over. The dock then draws the single card. On the terminal the tabs are plain buttons with shortcut keys and no hover card. - Keys (terminal only): with the dock focused, p, n, c, r, t and m press the tabs.
- ▾ folds the dock to a single
◆ ▸and remembers that across sessions.
Buttons work even while Claude is busy: a press writes a small signal that the target mod reacts to at once. A slash command would wait until the turn ends.
Review everything at once: /mods-review opens Mods, Plan, Coach and PRs together (as tabs), opens the next-task card, and unfolds the dock.
The hub page: click Mods in the dock, or type /mods. A pane opens with every mod, its version, a one-line summary, Details (this page) and Turn off / Turn on.
How on/off works: the switched-off mods are a list on this computer, ~/.claude/mods-data/mod-hub/off.json. Turn off adds a mod to it and Turn on takes it out. Whenever a mod loads, the engine first asks the mods loaded before it (plugin.register), and the hub refuses any mod on the list, so none of its hooks, commands or tools run. The engine's log names each one: refused by mod-hub: switched off in /mods.
- The switch also saves the mod's
hooks/hooks.jsonagain, byte for byte. The new timestamp makes every session that watches the folder reload that mod at once (a session busy with a reply does it when the reply ends), and the reload asks the hub again. Any other session picks the change up when it starts. - The switch covers every session on this computer. Nothing is deleted.
- The hub must load first. A mod can only be refused by mods that load before it, so
mod-hubcomes first inCLAUDE_CODE_PLUGIN_DIRS, and the install scripts put it there. If a switched-off mod loads ahead of the hub (older installs listed folders alphabetically), the hub says so in a toast: run the install script again.
On/off and git: switching changes no tracked file, so git status stays clean and on/off never travels through a commit or git pull: each computer keeps its own list. claude plugin test always runs a mod's real code, whether it's switched off or not.
- Older hubs switched a mod off by pointing its
hooks.jsonat a stub (hooks/off.tsx). The hub moves any mod it finds like that onto the list and pointshooks.jsonback atregister.tsxby itself. - Leftover
off.tsxfiles are git-ignored and safe to delete.
Removing a mod: delete its folder (and commit that, so other computers lose it with their next git pull). At the next session start the hub sees the folder is gone and takes it out of CLAUDE_CODE_PLUGIN_DIRS in ~/.claude/settings.json (backed up to settings.json.bak first) and out of off.json, then says so in a toast. Only folders in this mods folder are touched; nothing else in your settings changes.
Cost: none. No model calls. The T tab checks the app's pane layout every 5 seconds (a local call).
Data saved: ~/.claude/mods-data/mod-hub/off.json, the mods switched off on this computer. It also edits CLAUDE_CODE_PLUGIN_DIRS in ~/.claude/settings.json, only to take out a mod folder that is gone.
Notes: the hub can't switch itself off from the page. To remove it, delete or rename its folder. Without the hub nothing refuses the switched-off mods, so they all load.
