Skip to content

原文(日本語に翻訳)

ローカル開発コピーが同名のインストール済みマーケットプレイスプラグインを上書きするよう--plugin-dirを変更(マネージド設定でforce-enableされているプラグインを除く)

原文(英語)

Changed --plugin-dir so local dev copies now override installed marketplace plugins with the same name (unless that plugin is force-enabled by managed settings)

概要

--plugin-dirフラグの動作が変更され、ローカルの開発コピーが同じ名前のインストール済みマーケットプレイスプラグインを上書きするようになりました。これによりプラグイン開発者は、マーケットプレイス版を無効化することなく、ローカルで開発中のバージョンをテストできます。ただし、マネージドポリシーでforce-enableが設定されているプラグインは上書きされません。

基本的な使い方

bash
# ローカルの開発コピーを使用してClaude Codeを起動
claude --plugin-dir ./my-plugin-dev

# 同名のマーケットプレイスプラグインがインストールされていても、
# ローカルコピーが優先される

実践例

プラグイン開発ワークフロー

bash
# プラグインを開発中のディレクトリ構造
my-plugin/
├── plugin.json
├── skills/
   ├── my-skill.md
   └── another-skill.md
└── hooks/
    └── pre-tool-use.sh

# ローカル開発バージョンでテスト
claude --plugin-dir ./my-plugin

# マーケットプレイスに my-plugin がインストールされていても、
# ./my-plugin のローカルバージョンが使用される(変更前は競合)

既存インストールとローカル開発の比較テスト

bash
# マーケットプレイスバージョンで通常起動
claude
# → マーケットプレイスの my-plugin を使用

# ローカル開発バージョンでテスト
claude --plugin-dir ./my-plugin-dev
# → ./my-plugin-dev のローカルバージョンが優先

# 両方を比較することで開発中の変更を検証できる

plugin.jsonでの名前設定

json
// my-plugin-dev/plugin.json
{
  "name": "my-plugin",  // マーケットプレイスと同じ名前
  "version": "1.1.0-dev",
  "description": "開発版プラグイン"
}

複数のローカルプラグインをテスト

bash
# 複数のプラグインディレクトリをカンマ区切りで指定
claude --plugin-dir ./plugin-a,./plugin-b,./plugin-c

# それぞれのローカルバージョンがマーケットプレイス版を上書き

マネージドポリシーでのforce-enable設定

管理者がforce-enableしているプラグインはローカルコピーで上書きできません:

json
// managed-settings.json(管理者設定)
{
  "plugins": {
    "force-enabled": ["security-plugin", "compliance-plugin"]
  }
}

上記のsecurity-plugin--plugin-dirで指定しても上書き不可。

注意点

  • --plugin-dirは開発・テスト目的で使用することを想定しています
  • マネージドポリシーでforce-enableされたプラグインは上書きできません(セキュリティポリシーの保護)
  • プラグインのnameフィールドが一致する場合に上書きが発生します
  • ローカルコピーが優先されるのは--plugin-dirフラグを使用した起動時のみです
  • CI/CD環境でのプラグインテストに活用できます

関連情報