/reload-plugins を実行するたびに Claude Code が適用するルールを示します。Claude にこのページを読んでセットアップを診断するよう依頼することもできます。
これらのケースは他のページで説明されています:
- インストール、有効化、無効化、およびアップデートの手順: プラグインのインストールと管理を参照してください
- 特定のエラーメッセージがある場合: プラグインのトラブルシューティングを参照してください
- オフにしたプラグインがまだ読み込まれている場合: プラグインが有効になっている場所を見つける
- アップデートが反映されなかった場合: バージョンとアップデート
~/.claude/plugins/の下のファイルを確認している場合: ディスク上のプラグインを見つける--plugin-dirプラグインが読み込まれなかった場合、または同じ名前のプラグインが代わりに読み込まれた場合: 名前の競合
プラグインが到達したステージを確認
enabledPlugins エントリは、複数のステージを通じてプラグインになります:設定がそれを宣言し、Claude Code がそれをディスクにフェッチし、実行中のセッションがそれを読み込みます。プラグインが設定ファイルが示唆する動作をしない場合、どのステージに到達したかを確認してください:
- 宣言済み、設定内:
enabledPluginsはどのプラグインがオンになるべきかを示し、extraKnownMarketplacesはどのマーケットプレイスが存在すべきかを示します。claude plugin marketplace addを実行すると、Claude Code はマーケットプレイスをユーザー設定のextraKnownMarketplacesとディスクの両方に書き込みます - フェッチ済み、
~/.claude/plugins/の下のディスク上: Claude Code がフェッチしたものの記録、およびフェッチされたファイル自体:known_marketplaces.jsonは Claude Code がフェッチした各マーケットプレイスを、そのsource、installLocation、lastUpdated、およびautoUpdateとともに記録します。ユーザーごとに 1 つのknown_marketplaces.jsonがあるため、1 つのプロジェクトで追加したマーケットプレイスはすべてのプロジェクトで利用可能ですinstalled_plugins.jsonは各インストールをそのscope、installPath、およびversionとともに記録しますcache/はプラグインファイルを保持します
- 読み込み済み、実行中のセッション内: Claude Code がスタートアップまたは最後の
/reload-pluginsで読み込んだプラグインセット。設定またはディスクへの変更は、/reload-pluginsを実行するか新しいセッションを開始するまで、このレイヤーに到達しません。これがclaude plugin updateがRestart to apply changes.で終わり、バックグラウンドアップデートがRun /reload-plugins to applyでプロンプトを表示する理由です
セッション開始時にディスク上にないプラグインとマーケットプレイス
プラグインはセッション開始時にinstalled_plugins.json とキャッシュから、ネットワークを使用せずに読み込まれます。セッション開始後、Claude Code はバックグラウンドで宣言されたマーケットプレイスをチェックします:
- 設定が宣言しているが
known_marketplaces.jsonに欠けているマーケットプレイス: Claude Code はそれをクローンし、プラグインを再度読み込み、キャッシュされていない有効なプラグインをダウンロードします - 宣言されたマーケットプレイスのソースが設定で変更された場合: Claude Code は新しいソースから再度フェッチし、
Plugins changed. Run /reload-plugins to activate.を表示します
/plugin Errors タブに Plugin "<name>" not cached at <path> を表示し、claude plugin list は同じ行に — run /plugin to refresh を追加します。修正については、Plugin "<name>" not cached at <path>を参照してください。
プラグインがどこから来たかを見つける
すべてのプラグインは<name>@<origin> の形式の ID を持ち、これは設定ファイルと claude plugin list --json で表示されるものです。@ の後の部分は、Claude Code がプラグインを見つけた場所を示します:
マーケットプレイスプラグインの場合、
<name> は marketplace.json のエントリ名です。@inline と @skills-dir の場合、プラグインのマニフェストの name です。
このテーブルのオリジン名は予約されているため、マーケットプレイスは inline、skills-dir、または synced という名前にすることはできません。
エントリ名とマニフェスト名
マーケットプレイスプラグインには 2 つの名前があり、異なる場合があります:marketplace.jsonのエントリ名: インストールおよび有効化キー。enabledPluginsに書き込むもの、キャッシュディレクトリの名前、およびclaude plugin listが表示するものです- マニフェストの
name: プラグインのコンポーネントが名前空間化される対象、および 名前の競合が比較するもの
リポジトリを通じて共有されるプラグイン
リポジトリを通じてプラグインを共有するには、.claude/settings.json の enabledPlugins の下にリストするか、.claude/skills/ の下に配置します。Claude Code はプロジェクトの .claude/plugins/ ディレクトリをスキャンしません。
クラウドセッションは、リポジトリが extraKnownMarketplaces の下にリストするマーケットプレイスを追加しません。これはワークスペーストラストダイアログが必要であり、クラウドセッションはそれを表示しないためです。
プロジェクトスコープのスキルディレクトリプラグインは、セッションのプライマリワーキングディレクトリの .claude/skills/ からのみ読み込まれ、そのフォルダのワークスペーストラストダイアログを受け入れた後のみです。プレーンスキルとコマンドが行うように、リポジトリルートまでの親ディレクトリを検索しません。サブディレクトリから起動した場合、リポジトリルートのプラグインは読み込まれません。代わりにリポジトリルートから起動するか、v2.1.246 以降で /cd でセッションをそこに移動してください。
プロジェクトスコープのプラグインはリポジトリにチェックインされ、それをクローンするすべての協力者に到達します。そのコンテンツはあなたではなくリポジトリから来るため、.claude/settings.json のプロジェクト許可ルールに適用されるのと同じトラストチェックの後にのみ読み込まれます。親フォルダを信頼するか -p で実行することは十分ではありません。コードを実行するコンポーネントはさらに制限されます:
- 宣言する MCP サーバーは、プロジェクト
.mcp.jsonと同じサーバーごとの承認を通過します - MCP バンドルとして、
.mcpbまたは.dxtファイル、またはプラグインディレクトリ外のファイルから宣言する MCP サーバーはスキップされます。インラインで宣言するか、プラグインディレクトリ内の.mcp.jsonで宣言してください - バックグラウンドモニターは読み込まれません
--plugin-dir とスキルディレクトリプラグインの書き方については、プラグインの作成を参照してください。
claude.ai から同期されたプラグイン
claude.ai アカウントでオンにしたプラグインは Claude Code でも読み込まれ、マーケットプレイスからインストールしたプラグインと並んで読み込まれます。これには組織がメンバーのためにオンにしたプラグインが含まれます。これらの各プラグインは<name>@synced として読み込まれ、マーケットプレイスもインストール記録もありません。
ターミナルセッションでは、同期されたプラグインのスキル、エージェント、hooks、MCP サーバー、および LSP サーバーはすべて読み込まれ、インストールしたマーケットプレイスプラグインと同じトラストを持ちます。
Cowork が読み込むコンポーネントについては、claude.com の claude.ai と Cowork のプラグインを参照してください。
同期されたプラグインは Cowork セッションと、claude.ai アカウントでサインインするターミナルセッションで読み込まれます:
- Cowork: Claude Code はセッション開始時にセッション独自の環境にダウンロードします
- ターミナルセッション: Claude Code を開始するたびに、バックグラウンドで 1 回同期され、新しいプラグインと更新されたプラグインをダウンロードし、あなたまたは組織がオフにしたプラグインを削除します。ターミナルセッションでの同期には Claude Code v2.1.273 以降が必要です
ターミナルセッションでの同期タイミング
ターミナル同期はバックグラウンドで実行されるため、セッション開始後に完了する可能性があります。インタラクティブセッションで同期されたプラグインを追加、更新、または削除すると、Plugins changed. Run /reload-plugins to activate. が表示されます。/reload-plugins を実行してそのセッションで変更を読み込むか、次に Claude Code を開始するまで待ってください。
claude.ai でセッション実行中にプラグインを有効にした場合、プラグインは次に Claude Code を開始するときにダウンロードされます。
ターミナル同期のサインイン要件
ターミナルでは、claude.ai アカウントでサインインするセッションでのみプラグインが同期されます。 Claude Code の以前のバージョンでサインインした場合、そのサインインはバックグラウンドで Claude Code がそれを更新するまでプラグインをカバーしません。より早くアクセスするには、/login を再度実行してください。プラグイン同期は次に Claude Code を開始するときに開始されます。
同期されたプラグインの読み込みを制御
同期されたプラグインを 1 つずつオフにすることができます。ただし、組織が必須とするプラグインは除きます。または、マシン上のすべての同期されたプラグインをオフにします:- 1 つのプラグイン: シェルで
claude plugin disable <name>@syncedを実行し、セッションの/pluginInstalled タブの両方が、ユーザーレベルのenabledPluginsに"<name>@synced": falseを保存します。すべての環境でプロジェクトからプラグインを除外するには、プロジェクトのコミットされた.claude/settings.jsonで同じキーを設定します - マシン上のすべての同期されたプラグイン: ユーザー設定で
syncClaudeAiPluginsをfalseに設定するか、組織がマネージド設定で設定します。Claude Code はダウンロードを停止し、次に起動するときに、既に同期したプラグインを~/.claude/plugins/.trash/に移動し、それ以上読み込みません。組織が claude.ai でスキルをオフにした場合、プラグインも同期を停止します - 組織が必須とするプラグイン: 組織が claude.ai で必須としてマークしたプラグインは、以前に無効にした場合でも読み込まれます。
claude plugin disableはPlugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.で拒否し、claude plugin listはrequired by your orgとしてマークします
プラグインが有効になっている場所を見つける
6 つのソースのいずれかでenabledPlugins エントリを設定できます。テーブルは最も低い優先度から最も高い優先度にリストし、各テーブルが誰に適用されるかを示します。設定ファイル自体については、設定ファイルとそれらが影響する人を参照してください。
これらのソースはキーごとにマージされます。各プラグイン ID について、適用される値は ID を言及する最も高い優先度のソースからの値です。ID を言及しないソースは、低い優先度のソースからの値を有効なままにします。
ユーザー設定で無効化されているが、まだ読み込まれている
~/.claude/settings.json でプラグインを false に設定し、それでも読み込まれる場合、より高い優先度のソースの true がそれをオーバーライドしています。claude plugin list と /plugin のプラグインの行は Disabled in ~/.claude/settings.json but still loads — project settings enable it, which overrides your user setting を表示します。メッセージはあなたをオーバーライドしたソースを名前付けします:project、project, gitignored は .claude/settings.local.json、cli flag、または managed です。
プロジェクトで有効なプラグインをマシンでオプトアウトするには、ID を .claude/settings.local.json で false に設定します。これはプロジェクトファイルより高い優先度を持ちます。
プロジェクト設定で有効化されているが、インストールされていない
プラグインの唯一のtrue がプロジェクトの .claude/settings.json にある場合、Claude Code はそのマーケットプレイスエントリが相対パスソースを持つか、シードディレクトリがそれを既に保持していない限り、インストールされていないマシンにそれをフェッチしません。代わりに、/plugin Errors タブは Plugin "<name>" is enabled in project settings but isn't installed here を表示します。
相対パスプラグインはインストール記録を必要としません。マーケットプレイス自体から読み込まれるためです。
Claude Code は、これらのソースのいずれかがそれを true に設定した場合にのみ、外部ソースを持つプラグインをフェッチします:
- ユーザー設定
- git が追跡しない
.claude/settings.local.json --settingsフラグ- マネージド設定
ディスク上のプラグインを見つける
Claude Code はプラグインファイルと状態記録を 1 つのプラグインルートの下に保持します。これは~/.claude/plugins です。ただし、CLAUDE_CODE_PLUGIN_CACHE_DIRを設定した場合を除きます。テーブルのすべてのパスはそのルートに相対的です。
${CLAUDE_PLUGIN_ROOT} はバージョンディレクトリを指すため、プラグインのルートパスはすべてのバージョンで変更されます。プラグインの耐久ファイルを ${CLAUDE_PLUGIN_DATA} に保持してください。
インプレイスおよびコピーされたプラグイン
Claude Code は、オリジンに従って、いくつかのプラグインをそれらを保持する場所からインプレイスで読み込み、残りをキャッシュにコピーします:--plugin-dirとスキルディレクトリプラグイン: ディレクトリはインプレイスで読み込まれ、決してコピーされません。--plugin-urlアーカイブまたは--plugin-dir.zipは最初にセッション一時ディレクトリに抽出されます- ローカルディレクトリから追加したマーケットプレイスの相対パスプラグイン: プラグインはマーケットプレイスフォルダ内のパスからインプレイスで読み込まれます。ソースディレクトリへの編集は次のセッション開始または
/reload-pluginsで有効になり、バージョンを増やす必要はありません。プラグインの hook プロセスと MCP および LSP サーバーは、ソースディレクトリを指すCLAUDE_PLUGIN_ROOTを受け取ります。Node.js パッケージ依存関係については、依存関係インストールが実行される場合を参照してください - リンクモードの
commandソースプラグイン: コマンドが出力したディレクトリはキャッシュエントリ内のリンクを通じてインプレイスで読み込まれます - 他のすべてのマーケットプレイスプラグイン: Claude Code はプラグインを
cache/<marketplace>/<plugin>/<version>/にコピーし、そのコピーから読み込みます。プラグインディレクトリ外のファイルはコピーされないため、コピーされたプラグイン内のスクリプトが../sharedなどのプラグインルート上のパスを読む場合、それらは見つかりません
プラグインディレクトリを超えるパス
プラグインがインプレイスで読み込まれるか、キャッシュコピーから読み込まれるかに関わらず、Claude Code はそれが独自のディレクトリ外のコンポーネントを宣言することを許可しません。プラグインルート外に解決されるコンポーネントパスを拒否します。パスがplugin.json またはマーケットプレイスエントリで宣言されているかどうかに関わらず:
- 書き込まれたときにプラグインの外を指すパス。例えば
../shared-utils - **プラグイン内のリンク間を除く、プラグインの外につながるシンボリックリンク](/ja/plugins/host-marketplace#share-files-within-a-marketplace-with-symlinks)
- macOS と Linux では、パスのどこかにバックスラッシュを含むパス。プラグイン内にとどまる場合でも。バックスラッシュパスで宣言されたコンポーネントは Windows でのみ読み込まれるため、
./commands/deploy.mdなどの前方スラッシュを使用してコンポーネントパスを書き込んでください
path escapes plugin directory エラーとして表示され、プラグインはそのコンポーネントなしで読み込まれます。
以前のバージョンのクリーンアップ
プラグインを更新またはアンインストールすると、Claude Code は前のバージョンディレクトリに.orphaned_at マーカーを書き込みます。14 日後のバックグラウンドクリーンアップでそのディレクトリを削除するため、既に古いバージョンを読み込んだセッションは実行を続けます。
スイープは installed_plugins.json が少なくとも 1 つのインストールを記録している間のみ実行されます。最後のプラグインをアンインストールした後、孤立したディレクトリは別のプラグインをインストールするまで残ります。
Node.js パッケージ依存関係
Claude Code がプラグインをキャッシュにコピーするとき、プラグインの Node.js パッケージ依存関係もそこにインストールするため、プラグインの hooks と MCP サーバーはそれらを読み込むことができます。 このセクションは、プラグインが独自のpackage.json で宣言する npm および Bun パッケージをカバーしています。他のプラグインに依存するプラグインについては、プラグイン依存関係バージョンを参照してください。
依存関係インストールが実行される場合
Claude Code は、それが作成するたびにコピーされたバージョンディレクトリ内でインストールを実行します:- プラグインをインストールするとき
- Claude Code がプラグインを新しいバージョンに更新するとき
- セッション開始時に有効なプラグインがキャッシュされていない場合。例えば、新しいマシン上
${CLAUDE_PLUGIN_DATA} にインストールしてください。
インストールは、プラグインのルートディレクトリに package.json とサポートされているロックファイルの両方が含まれている場合にのみ実行されます。ロックファイルは Claude Code が実行するコマンドを決定します:
プラグインにこれらのロックファイルの複数が含まれている場合、Claude Code は最初のマッチを使用し、順序をチェックします:
bun.lock、bun.lockb、npm-shrinkwrap.json、package-lock.json。
Claude Code は Yarn および pnpm ロックファイルと Bun ロックファイルの横にある bunfig.toml のインストールをスキップします:
- プラグインに
yarn.lockまたはpnpm-lock.yamlのみがある場合、npm ロックファイルに置き換えてください bunfig.tomlが Bun ロックファイルと同じディレクトリにある場合、bunfig.tomlを削除するか、Bun ロックファイルを npm ロックファイルに置き換えてください
npm-shrinkwrap.json を使用してください。npm は公開されたパッケージから package-lock.json を除外するためです。
依存関係インストールの制限
Claude Code はこの依存関係インストールを制約するため、プラグインまたはそのパッケージからのコードはそれ中に実行されず、実行時間が制限されます:- フローズン解決: Bun と npm はロックファイルがピンしたものを正確にインストールし、
package.jsonとロックファイルが不一致の場合、バージョンを再解決するのではなく失敗します - ライフサイクルスクリプトなし:
--ignore-scriptsはpreinstall、install、およびpostinstallスクリプトが実行されるのを防ぎ、ネイティブモジュールをビルドする依存関係はこのインストール中にダウンロードされますがコンパイルされません - 60 秒のタイムアウト: Claude Code は実行時間が長いインストールを停止し、失敗として扱います
依存関係インストールが失敗またはスキップされた場合
失敗またはスキップされたインストールはプラグインをブロックしません。各ケースは異なる兆候を残します:- 失敗したインストール、または Yarn もしくは pnpm ロックファイルまたは
bunfig.tomlのためにスキップされたインストールは、claude --debug出力に警告として表示されます package.jsonを持つが、ロックファイルがないプラグインはログエントリなしでスキップされます- タイムアウトしたインストールは、キャッシュされたコピーに部分的な
node_modulesツリーを残す可能性があります
バージョンとアップデート
プラグインの作成者が新しいコミットをプッシュし、claude plugin update が <name> is already at the latest version (<version>). を出力する場合、Claude Code が計算するプラグインのバージョンは変更されないため、ディスク上で何も変更されません。
Claude Code はインストールするすべてのプラグインのバージョンを計算し、そのバージョンはアップデートを検出する方法です。claude plugin update とバックグラウンド自動アップデートはバージョンを再度計算し、installed_plugins.json が記録するものと一致する場合、プラグインをスキップします。
バージョンはプラグインのキャッシュディレクトリにも名前を付けます。
"version" をピンするマニフェストは、計算されたバージョンがコミット全体で同じままである 1 つの方法です。Claude Code がバージョンを計算する方法を参照してください。
ローカルディレクトリマーケットプレイスからインプレイスで読み込まれたプラグインは、バージョン文字列が何を言おうとも、すべてのセッション開始で現在のソースファイルを読み込みます。claude.ai でホストされているマーケットプレイスのプラグインの場合、claude.ai がプラグインのために記録するバージョンはそのバージョンであり、マニフェストの version は読み込まれません。
Claude Code がバージョンを計算する方法
追加したソースのマーケットプレイスの場合、Claude Code はプラグインのマーケットプレイスエントリのsource タイプによってルールを選択します。マーケットプレイスリファレンスはソースタイプをリストします。そのリストのすべてのソースタイプについて、command を除く:
- プラグインのマニフェストの
versionフィールドが最初に来ます - その後、プラグインのマーケットプレイスエントリの
versionフィールド - どちらも設定されていない場合、バージョンはソースタイプから来ます:
Claude Code は、
~/.claude を管理する git などの、インストールパスを囲むリポジトリからバージョンを取得しません。
command ソースの場合、Claude Code は常にコマンドが生成したものからバージョンを導出します:単独で 12 文字のハッシュ、またはマニフェストが 1 つを設定する場合は <manifest version>-<hash>。マーケットプレイスエントリの version はコマンドソースでは無視されます。ハッシュがカバーするものについては、コピーモードとリンクモードを参照してください。
マニフェストが最初に来るため、"version": "1.0.0" をピンするマニフェストは、作成者がプッシュするコミット数に関わらず、文字列を変更するまで、すべてのユーザーをキャッシュされたコピーに保持します。ユーザーがコミットを追跡できるようにするには、マニフェストとエントリの両方から version を除外してください。マーケットプレイスのホストは、どの選択がどのリリースセットアップに適合するかをカバーしています。
Claude Code がインストール前にマーケットプレイスをリフレッシュする場合
プラグインをインストールするとき、Claude Code はローカルコピーのマーケットプレイスカタログでそれを検索します。セッションで/plugin install を実行するか、シェルで claude plugin install を実行し、プラグインをマーケットプレイスの有無で名前付けることができます。テーブルはこれらの組み合わせのどれがローカルコピーをリフレッシュするかを示します。
name@marketplace インストール前のリフレッシュはマーケットプレイスの自動アップデート設定または DISABLE_AUTOUPDATER に依存しません。
リフレッシュが失敗した場合、インストールはキャッシュされたカタログから進行し、claude plugin install は marketplace not refreshed を報告します。
Claude Code は以下の場合、name@marketplace インストール前のリフレッシュをスキップします:
- マーケットプレイスがローカル
fileまたはdirectoryソースから追加されたか、settingsソースを持つ設定でインラインで定義されている - シードディレクトリがマーケットプレイスを供給している
- Claude Code が過去 30 秒以内にマーケットプレイスをリフレッシュした
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを設定した- マネージド設定がマーケットプレイスをブロックしている。この場合、Claude Code もインストールを拒否します
自動アップデートが実行される場合
インタラクティブセッションでは、最初のメッセージを送信した後、Claude Code は最大 10 分のランダムな遅延を待ちます。その後、自動アップデートがオンのすべてのマーケットプレイスをリフレッシュし、ディスク上のそれらからインストールされたプラグインを更新します。 実行中のセッションは読み込んだバージョンを保持し、Plugin updated: <name> · Run /reload-plugins to apply が表示されます。リロードするかどうかに関わらず、新しいバージョンは次の起動時に読み込まれます。
どのマーケットプレイスとプラグインが自動アップデートするか
マーケットプレイスが自動アップデートするかどうかは、設定されている最初のものに従います:- 設定ファイルの
extraKnownMarketplacesエントリのautoUpdate known_marketplaces.jsonエントリのautoUpdate。これは/pluginMarketplaces の下の Enable auto-update トグルが書き込みます。設定ファイルがextraKnownMarketplacesの下でマーケットプレイスも宣言する場合、トグルはその設定エントリにもautoUpdateを書き込みます- デフォルト:
claude-plugins-officialなどの Anthropic の公式マーケットプレイスではオン。knowledge-work-pluginsとfirst-party-pluginsではオフ。claude.ai から追加されたマーケットプレイスではオン。他のすべてのマーケットプレイスではオフ
DISABLE_UPDATES=1、DISABLE_AUTOUPDATER=1、または CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1 を設定した場合、全体のパスはオフであり、Enable auto-update トグルは非表示です。ただし、FORCE_AUTOUPDATE_PLUGINS=1 も設定した場合を除きます。環境変数リファレンスは各変数のより広い効果をカバーしています。
自動アップデートはまた、マーケットプレイスエントリが headersHelper を宣言するプラグインもスキップします。コマンドを要求する代わりに拒否するインストールとアップデートは、そのようなプラグインが /plugin Errors タブに表示される場合と、そこからそれを更新する方法を説明しています。
コピーされたプラグインがセッション中盤で更新される場合、hook コマンド、モニター、MCP サーバー、および LSP サーバーは前のバージョンのパスを使用し続けます。/reload-plugins を実行して、hooks、MCP サーバー、および LSP サーバーを新しいパスに切り替えてください。モニターはセッション再起動が必要です。
コマンドソースが再実行される場合
command ソースを持つプラグインは、自動アップデートパスを待ちません。出力されたディレクトリはコマンドが実行された時点でのツールの状態を反映するため、Claude Code は受け入れたコマンドを次の時点で再度実行します:
- プラグインをインストールまたは更新するたびに
- セッションごとに 1 回、有効なコマンドソースプラグインごとに、セッション開始直後のバックグラウンドで。この実行はマーケットプレイスの自動アップデート設定または
DISABLE_AUTOUPDATERに依存しません - スタートアップまたは
/reload-pluginsで、有効なプラグインのインストール済みバージョンがプラグインキャッシュから欠けている場合
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを設定した場合、Claude Code は 2 つのバックグラウンド実行をスキップします。明示的なインストールとアップデートはその変数セットでコマンドを実行します。
コマンドのハッシュされた出力が変更された場合、Claude Code は結果を新しいバージョンとしてインストールし、実行中のインタラクティブセッションで再度読み込み、/reload-plugins が切り替える同じコンポーネントを切り替えます。プラグインが再度読み込まれたという通知が表示されます。
インプレイスで再度読み込むことがセッションのプロンプトキャッシュを無効にする場合、Claude Code は代わりに /reload-plugins を実行するようプロンプトを表示します。これはキャッシュコストについて警告し、--force で再実行するときに適用されます。
名前の競合
異なるオリジンから有効なプラグインがマニフェスト名を共有する場合、このオーダーは最も高い優先度から最も低い優先度へ、どれが読み込まれるかを決定します:- ID がマネージド設定
enabledPluginsに表示されるプラグイン。trueまたはfalseとして。マニフェスト名が ID の名前部分と一致する--plugin-dirコピーは読み込まれず、--plugin-dir copy of "<name>" ignored: plugin is locked by managed settingsが表示されます - 有効な
--plugin-dir、--plugin-url、またはCLAUDE_CODE_PLUGIN_DIRSプラグイン。同じ名前のインストール済みマーケットプレイスプラグインまたはスキルディレクトリプラグインを置き換えます:- インストール済みマーケットプレイスプラグイン: サイレントに置き換えられます。
claude plugin listはマーケットプレイス行を有効として表示し続けます。その行は設定を反映するためです。--debugで開始するときに Claude Code が~/.claude/debug/の下に書き込むログのみがPlugin "<name>" from --plugin-dir overrides installed versionを記録します - スキルディレクトリプラグイン:
/pluginErrors タブ行で置き換えられます。Not loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedenceと読みます
- インストール済みマーケットプレイスプラグイン: サイレントに置き換えられます。
- インストール済みマーケットプレイスプラグイン。同じ名前のスキルディレクトリプラグインは同じ
Not loaded行を取得し、インストール済みプラグインを名前付けます - スキルディレクトリプラグイン。これら 2 つの間で、
~/.claude/skills/の下のコピーが読み込まれ、プロジェクトの.claude/skills/コピーは削除されます。どのパスがそれをシャドウしたかを示す行があります - claude.ai から同期されたプラグイン。他のオリジンから有効なプラグインが名前と一致する場合、Claude Code はそのプラグインを読み込み、同期されたコピーを読み込まれていないと報告します。claude.ai コピーを代わりに使用するには、独自のコピーを無効にしてください
hello-plugin という名前の --plugin-dir プラグインは、そのプラグインのマニフェストが "name": "hello-plugin" も言う場合、hello@example-marketplace を置き換えます。
セッションのみのプラグインが読み込まれるのを防ぐ
--plugin-dir プラグインが何かをシャドウするのを防ぐか、親プロセスがフラグを渡す場合にオフにするには、その ID を任意の設定ファイルで false に設定します。マニフェスト名が hello-plugin のプラグインの場合、エントリは "enabledPlugins": {"hello-plugin@inline": false} です。無効なセッションのみのプラグインはシャドウしないため、マーケットプレイスまたはスキルディレクトリコピーが代わりに読み込まれます。
次のステップ
- プラグインのインストールと管理: インストール、有効化、無効化、およびアップデートの手順自体
- プラグインのトラブルシューティング: それらを生成するステージ別のエラーメッセージ
- プラグインコマンドリファレンス: このページで名前付けされたフラグとコマンド
- 組織のプラグインを管理: プラグインを強制的に有効にするか、ブロックするマネージド設定