Skip to main content
プラグインが読み込まれなかった場合、予期していたのと異なるコピーが読み込まれた場合、またはアップデートが反映されなかった場合に、どのソース、設定スコープ、またはディスク上のファイルがそれを決定したのかを確認したいときに、このページを使用してください。セッションが開始されるたびに、および /reload-plugins を実行するたびに Claude Code が適用するルールを示します。Claude にこのページを読んでセットアップを診断するよう依頼することもできます。
これらのケースは他のページで説明されています:
インストール済みプラグインが通過する 3 つのステージについては プラグインが到達したステージを確認から始めるか、表示されている内容に一致するセクションに移動してください:

プラグインが到達したステージを確認

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 を実行し、セッションの /plugin Installed タブの両方が、ユーザーレベルの 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 としてマークします
claude.ai でプラグインを削除する方法については、インストール済みプラグインの管理を参照してください。

プラグインが有効になっている場所を見つける

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 Code はソースディレクトリに依存関係をインストールしません。そこに自分でインストールするか、hook から ${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 ロックファイルを含めて、最も多くのユーザーに到達してください。Claude Code はマッチされたロックファイルのパッケージマネージャーをユーザーの PATH から実行し、そのパッケージマネージャーが見つからない場合は他のロックファイルを試しません。 npm ソースを通じて配布されるプラグインの場合、npm-shrinkwrap.json を使用してください。npm は公開されたパッケージから package-lock.json を除外するためです。

依存関係インストールの制限

Claude Code はこの依存関係インストールを制約するため、プラグインまたはそのパッケージからのコードはそれ中に実行されず、実行時間が制限されます:
  • フローズン解決: Bun と npm はロックファイルがピンしたものを正確にインストールし、package.json とロックファイルが不一致の場合、バージョンを再解決するのではなく失敗します
  • ライフサイクルスクリプトなし: --ignore-scripts は preinstall、install、および postinstall スクリプトが実行されるのを防ぎ、ネイティブモジュールをビルドする依存関係はこのインストール中にダウンロードされますがコンパイルされません
  • 60 秒のタイムアウト: Claude Code は実行時間が長いインストールを停止し、失敗として扱います
Claude Code は npm ソースプラグインをこの依存関係インストールの前にフェッチし、パッケージ独自のインストールスクリプトはフェッチ中に実行されません。npm プラグインソースを参照してください。 自動インストールをオフにすることはできません。設定または環境変数はそれを無効にしません。 制限されたネットワークでは、ネットワークアクセス要件を許可するホストを参照してください。

依存関係インストールが失敗またはスキップされた場合

失敗またはスキップされたインストールはプラグインをブロックしません。各ケースは異なる兆候を残します:
  • 失敗したインストール、または Yarn もしくは pnpm ロックファイルまたは bunfig.toml のためにスキップされたインストールは、claude --debug 出力に警告として表示されます
  • package.json を持つが、ロックファイルがないプラグインはログエントリなしでスキップされます
  • タイムアウトしたインストールは、キャッシュされたコピーに部分的な node_modules ツリーを残す可能性があります
自動インストールが依存関係を提供できない場合、hook から永続データディレクトリにインストールしてください。これには、ライフサイクルスクリプトをビルドする必要があるパッケージ、Python 依存関係、および Yarn または pnpm でロックされたプラグインが含まれます。

バージョンとアップデート

プラグインの作成者が新しいコミットをプッシュし、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 を除く:
  1. プラグインのマニフェストの version フィールドが最初に来ます
  2. その後、プラグインのマーケットプレイスエントリの version フィールド
  3. どちらも設定されていない場合、バージョンはソースタイプから来ます:
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 が表示されます。リロードするかどうかに関わらず、新しいバージョンは次の起動時に読み込まれます。

どのマーケットプレイスとプラグインが自動アップデートするか

マーケットプレイスが自動アップデートするかどうかは、設定されている最初のものに従います:
  1. 設定ファイルの extraKnownMarketplaces エントリの autoUpdate
  2. known_marketplaces.json エントリの autoUpdate。これは /plugin Marketplaces の下の Enable auto-update トグルが書き込みます。設定ファイルが extraKnownMarketplaces の下でマーケットプレイスも宣言する場合、トグルはその設定エントリにも autoUpdate を書き込みます
  3. デフォルト: 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 で再実行するときに適用されます。

名前の競合

異なるオリジンから有効なプラグインがマニフェスト名を共有する場合、このオーダーは最も高い優先度から最も低い優先度へ、どれが読み込まれるかを決定します:
  1. ID がマネージド設定 enabledPlugins に表示されるプラグイン。true または false として。マニフェスト名が ID の名前部分と一致する --plugin-dir コピーは読み込まれず、--plugin-dir copy of "<name>" ignored: plugin is locked by managed settings が表示されます
  2. 有効な --plugin-dir、--plugin-url、または CLAUDE_CODE_PLUGIN_DIRS プラグイン。同じ名前のインストール済みマーケットプレイスプラグインまたはスキルディレクトリプラグインを置き換えます:
    • インストール済みマーケットプレイスプラグイン: サイレントに置き換えられます。claude plugin list はマーケットプレイス行を有効として表示し続けます。その行は設定を反映するためです。--debug で開始するときに Claude Code が ~/.claude/debug/ の下に書き込むログのみが Plugin "<name>" from --plugin-dir overrides installed version を記録します
    • スキルディレクトリプラグイン: /plugin Errors タブ行で置き換えられます。Not loaded — the name "<name>" is already taken by a session-only plugin (--plugin-dir / --plugin-url), which takes precedence と読みます
  3. インストール済みマーケットプレイスプラグイン。同じ名前のスキルディレクトリプラグインは同じ Not loaded 行を取得し、インストール済みプラグインを名前付けます
  4. スキルディレクトリプラグイン。これら 2 つの間で、~/.claude/skills/ の下のコピーが読み込まれ、プロジェクトの .claude/skills/ コピーは削除されます。どのパスがそれをシャドウしたかを示す行があります
  5. 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} です。無効なセッションのみのプラグインはシャドウしないため、マーケットプレイスまたはスキルディレクトリコピーが代わりに読み込まれます。

次のステップ