# GitHub Copilot CLI プラグイン リファレンス

CLI プラグインのコマンドと構成の詳細を確認します。

> [!NOTE]
> ターミナルで `copilot plugin [SUBCOMMAND] --help` を入力すると、プラグインの使用に関するヘルプが表示されます。

プラグインとは何か、および Copilot クライアント間での動作の概要については、 [GitHub Copilot 用のプラグイン](/ja/copilot/concepts/customizations/plugins) を参照してください。

## CLI コマンド

ターミナルで次のコマンドを使用して、 Copilot CLIのプラグインを管理できます。
`copilot plugins` (複数形) は、 `copilot plugin`のレガシ エイリアスであり、どちらも同じコマンドに解決されます。

| 命令                                                       | 説明                                                                                                                         |
| -------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| `copilot plugin install SPECIFICATION`（別名 `add`）         | プラグインをインストールします。 以下[のコマンドについては、プラグインの仕様`install`](#plugin-specification-for-install-command)参照してください。                      |
| `copilot plugin uninstall NAME`（別名 `remove`、`rm`）        | プラグインを削除する                                                                                                                 |
| `copilot plugin list`                                    | インストールされているプラグインを一覧表示する                                                                                                    |
| `copilot plugin update NAME`                             | 名前付きプラグインを更新します。                                                                                                           |
| `--all`を使用して、インストールされているすべてのプラグインを一度に更新します。              |                                                                                                                            |
| `copilot plugin enable NAME`                             | 以前に無効にしたプラグインを有効にします。 変更は構成に保持され、今後のセッションに適用されます。 これは、マーケットプレースのインストールと直接インストール ( `owner/repo`、URL、またはローカル パス) でも同様に機能します。 |
| `copilot plugin disable NAME`                            | アンインストールせずにプラグインを無効にします。                                                                                                   |
| `--plugin-dir` マウントは、変更対象となる永続化された有効化がないため、読み取り専用のままです。  |                                                                                                                            |
| `copilot plugin marketplace add SPECIFICATION`           | マーケットプレースを登録します。 マーケットプレースの独自の名前は、 `marketplace.json` マニフェストから登録キーになります。カスタム ローカル名を設定するオプションはありません。                        |
| `copilot plugin marketplace list`                        | 登録されているマーケットプレースを一覧表示する                                                                                                    |
| `copilot plugin marketplace browse NAME`                 | Marketplace プラグインを参照する                                                                                                     |
| `copilot plugin marketplace update [NAME]`（別名 `refresh`） | マーケットプレースのプラグインカタログを再取得します。 登録されているすべてのマーケットプレースのカタログを更新するには、 `NAME` を省略します。                                               |
| `copilot plugin marketplace remove NAME`                 | マーケットプレースの登録を解除します。 マーケットプレースからのプラグインがまだインストールされている場合は拒否されます。これらのプラグインをアンインストールするには、 `--force` を渡します。                      |

`copilot plugin` がリソースごとに個別のコマンドに分割される前は、`copilot plugins` でも `--kind`、`--scope`、`--mcp`、および `--skill` フラグを使用して、MCP サーバー、スキル、指示、および言語サーバーを確認したり切り替えたりできました。 これらのクロスタイプ フラグは削除されました。 代わりに、専用の [`copilot mcp`](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#copilot-mcp-subcommand)、 [`copilot skill`](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#managing-skills-non-interactively)、 [`copilot instruction`](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#using-copilot-instruction)、および [`copilot lsp`](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#using-copilot-lsp) コマンドを使用します。
`copilot plugin list --json` では、前の `{ plugins, errors }` オブジェクトではなく、プラグインのフラット配列が出力されるようになりました。

> [!NOTE]
> 組織または MDM 管理ポリシー (`enabledPlugins`、 `extraKnownMarketplaces`) によってピン留めされたプラグインまたはマーケットプレースは、そのエントリに対してマネージド値が優先され、ローカルで再有効化、無効化、または再ポイントすることはできません。
> `/plugin`ダッシュボードは、これらの行を`Managed`バッジでマークし、競合するトグルを拒否します。 「[GitHub Copilot CLI の構成ディレクトリ](/ja/copilot/reference/copilot-cli-reference/cli-config-dir-reference#mdm-managed-settings)」を参照してください。
>
> 現在のリポジトリの `enabledPlugins` オーバーレイによってアクティブ化が決定されているプラグインは、そのリポジトリに影響を与えないグローバル値を暗黙的に保持するのではなく、 `copilot plugin enable`/`disable` を拒否します。 このエラーは、プラグインを実際に制御する設定ファイルに名前を付けます。 「[GitHub Copilot CLI の構成ディレクトリ](/ja/copilot/reference/copilot-cli-reference/cli-config-dir-reference#repository-settings-githubcopilotsettingsjson)」を参照してください。

管理された要件とは異なり、リポジトリの既定値は、リポジトリローカル設定の明示的なエントリでオフにすることができます。 管理対象の必須エントリまたはブロックされたエントリが常に優先されます。 「[GitHub Copilot CLI のプラグインの検索とインストール](/ja/copilot/how-tos/copilot-cli/customize-copilot/plugins-finding-installing#turn-off-a-repository-default)」を参照してください。

### `install` コマンドのプラグイン仕様

| フォーマット                        | 例                            | 説明                    |
| ----------------------------- | ---------------------------- | --------------------- |
| Marketplace                   | `plugin@marketplace`         | 登録済みマーケットプレースからのプラグイン |
| GitHub                        | `OWNER/REPO`                 |                       |
| GitHub リポジトリのルート              |                              |                       |
| GitHub  サブディレクトリ              | `OWNER/REPO:PATH/TO/PLUGIN`  | リポジトリ内のサブディレクトリ       |
| Git URL                       | `https://github.com/o/r.git` | 任意の Git URL           |
| ローカル パス                       |                              |                       |
| `./my-plugin` または `/abs/path` | ローカル ディレクトリ                  |                       |

### `copilot plugin list` のオプション

| Option                     | 説明                                        |
| -------------------------- | ----------------------------------------- |
| `--json`                   | テキストの代わりにプラグインのフラット JSON 配列を出力します。        |
| `--config-dir=DIRECTORY`   | 構成ディレクトリへのパス。 このオプションは非推奨です。              |
| `COPILOT_HOME` を代わりに使用します。 | <!-- markdownlint-disable-line GHD046 --> |

各`--json`行は`{ name, marketplace?, version?, enabled, source, installedFrom? }`という形をしています。

### `copilot plugin enable`/`disable` options

| Option                     | 説明                                        |
| -------------------------- | ----------------------------------------- |
| `--config-dir=DIRECTORY`   | 構成ディレクトリへのパス。 このオプションは非推奨です。              |
| `COPILOT_HOME` を代わりに使用します。 | <!-- markdownlint-disable-line GHD046 --> |

### `copilot plugin install` のオプション

プラグインの代わりにスキルをインストールするには、代わりに [`copilot skill add`](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#managing-skills-non-interactively) を使用します。これはプラグインのインストールではなく、マーケットプレースを経由しません。

| Option                     | 説明                                        |
| -------------------------- | ----------------------------------------- |
| `--config-dir=DIRECTORY`   | 構成ディレクトリへのパス。 このオプションは非推奨です。              |
| `COPILOT_HOME` を代わりに使用します。 | <!-- markdownlint-disable-line GHD046 --> |

MCP サーバーは、認証と対話型のシークレット エントリを必要とする、ポリシーで構成されたレジストリからインストールします。
`copilot plugin install`ではなく、`/mcp` ダッシュボードの**オンライン** ビューまたは [`copilot mcp add`](/ja/copilot/reference/copilot-cli-reference/cli-command-reference#copilot-mcp-subcommand) コマンドを使用して MCP サーバーを追加します。

### `copilot plugin update` のオプション

| Option                     | 説明                                        |
| -------------------------- | ----------------------------------------- |
| `--all`                    | インストールされているすべてのプラグインを更新する                 |
| `--config-dir=DIRECTORY`   | 構成ディレクトリへのパス。 このオプションは非推奨です。              |
| `COPILOT_HOME` を代わりに使用します。 | <!-- markdownlint-disable-line GHD046 --> |

> [!NOTE]
> ローカルな（ディレクトリ ソースの）マーケットプレース内のパス指定のプラグインは、実際のディレクトリから直接ライブ読み込みされます。1 つを編集すると、その変更は `/restart` 時または新しいセッションで反映され、`copilot plugin update` は不要です。

組み込みの `awesome-copilot` Marketplace からインストールされたファースト パーティ プラグインは、信頼された作業ディレクトリ内の各セッションの開始時に自動的に更新されます。 この動作は、 `autoUpdate` 設定 ( `false` に設定) または `COPILOT_AUTO_UPDATE=false` 環境変数で無効にします。 CI では、自動更新も既定でスキップされます。 「[GitHub Copilot CLI の構成ディレクトリ](/ja/copilot/reference/copilot-cli-reference/cli-config-dir-reference#configuration-file-settings)」を参照してください。

> [!NOTE]
> `copilot-plugins` は以前、`awesome-copilot` と並ぶ 2 つ目の組み込み既定マーケットプレースとして提供されていました。 これは、あなた自身が登録する通常の、既定ではないマーケットプレース (`copilot plugin marketplace add github/copilot-plugins`) になりました`github/copilot-plugins`。 この変更の前にそこからプラグインをインストールしていた場合は、1回限りの移行で、その入手元が`extraKnownMarketplaces`付きでご自身の`autoUpdate: true`に追加されるため、それらのプラグインは更新され続けます。 `copilot-plugins`を使用したことがない新規インストールでは、そこからプラグインをインストールする前に`copilot-plugins`を手動で登録する必要があります。

自分で追加したマーケットプレースでは、ユーザー設定の`autoUpdate: true`エントリに`extraKnownMarketplaces`を設定することで、同じセッション開始自動更新をオプトインできます。 このオプトインは、対話型セッションと `-p` セッションにのみ適用されます。SDK セッションとサーバー セッションは自動更新されません。 独自のユーザー設定または管理対象 (MDM/サーバー) 設定から受け入れられますが、リポジトリ レベルの `autoUpdate` 設定は受け入れられ、無視されます。マーケットプレースの自動更新を有効またはリダイレクトすることはできません。 同じ名前の競合では、組み込みのファースト パーティ マーケットプレースが優先され、マネージド エントリ (同じ名前のユーザー エントリ全体が置き換えられるため、 `"autoUpdate": true` のないマネージド エントリによってユーザーのオプトインが削除されます)、その後、ユーザー自身のエントリが削除されます。
[「リポジトリの設定」を](/ja/copilot/reference/copilot-cli-reference/cli-config-dir-reference#repository-settings-githubcopilotsettingsjson)参照してください。

対話型モードでは、アップストリームで新しいバージョンが利用可能な場合、`/plugin` はインストール済みのプラグインまたはマーケットプレースが更新可能であることを示し、ダッシュボードからそれを取得するための **更新** アクションを提供します。

### `copilot plugin marketplace`（別名 `marketplaces`）のサブコマンド

組み込みの `awesome-copilot` の既定のマーケットプレースはランタイムに付属しており、削除することはできません。

| サブコマンド                        | 説明                                                              |
| ----------------------------- | --------------------------------------------------------------- |
| `list [--json]`               | 登録されているすべてのマーケットプレース (組み込みの既定値を含む) を一覧表示する                      |
| `add SOURCE`                  | マーケットプレース (`owner/repo`、 `owner/repo#ref`、URL、またはローカル パス) を追加する |
| `remove NAME [--force]`       | マーケットプレースを削除する。 `--force` は、そこからソース化されたプラグインもアンインストールします        |
| `browse NAME [--json]`        | マーケットプレースのカタログによって提供されるプラグインを一覧表示する                             |
| `update [NAME]`（別名 `refresh`） | 1 つのマーケットプレースのプラグイン カタログを更新するか、 `NAME` を省略した場合はすべて更新する          |

リモート マーケットプレースまたはプラグインのフェッチで HTTPS 認証が失敗した場合、CLI はサインイン中の GitHub トークンを使用して 1 回再試行します。 再試行も失敗した場合は、`/login`を実行してください。

対話型モードで、`/plugin marketplace update [NAME]` (エイリアス `/plugin marketplace refresh`) を実行するか、`/plugin` ダッシュボードの **Marketplace** ビューで <kbd>R</kbd> キーを押して、登録されているすべてのマーケットプレースのカタログを更新します。

## `plugin.json`

すべてのプラグインは、 `plugin.json`という名前のマニフェスト ファイルを含むプラグイン ディレクトリで構成されます。 エージェント プラグインには、プラグイン のルートにあるマニフェストが必要です。 エージェント プラグインをターゲットとするルート `plugin.json` は、仕様 §5.1 ごとに `.plugin/plugin.json` と `.claude-plugin/plugin.json` よりも優先されます。 従来のプラグインは、「ファイルの場所」に記載されている代替の [場所をサポートしています](#file-locations)。 共有形式の詳細については、 [プラグインとマーケットプレースのリファレンス](/ja/copilot/reference/plugin-and-marketplace-reference) を参照してください。 CLI の作成ガイダンスについては、 [用のプラグインを作成する GitHub Copilot CLI](/ja/copilot/how-tos/copilot-cli/customize-copilot/plugins-creating) を参照してください。

Copilot CLI は、レガシ プラグイン マニフェストとエージェント プラグイン マニフェストの両方をサポートします。
Copilot CLIは、エージェント プラグイン (Open Plugin Spec) v1.0.0 (`https://agent-plugins.org/schemas/1.0.0/plugin.schema.json`) と v1.1.0 (`https://agent-plugins.org/schemas/1.1.0/plugin.schema.json`) の正規の`$schema`値を認識し、プラグインをエージェント プラグイン セマンティクスにオプトインします。 これらの正確な値のいずれかが指定されていないマニフェストでは、従来の形式が使用され、以前と同様に読み込まれます。 プラグインで、 Copilot CLI がサポートしていないエージェント プラグイン バージョンが宣言されている場合、CLI は、レガシ モードに自動的にフォールバックするのではなく、プラグインを拒否します。 拒否されたプラグインは、フック、LSP サーバー、MCP サーバー、スキル、コマンド、エージェント、ルール、または拡張ディレクトリを提供しません。

### エージェント プラグイン 1.0 マニフェスト フィールド

エージェント プラグイン 1.0 は、閉じたマニフェスト スキーマを定義します。 完全な形式要件については、 [エージェント プラグイン 1.0 の仕様](https://github.com/agentplugins/agent-plugins-spec/blob/main/spec/1.0.0.md)を参照してください。

次のフィールドを使用できます。

| フィールド                                | タイプ       | 必須  | 説明                                                                                                   |
| ------------------------------------ | --------- | --- | ---------------------------------------------------------------------------------------------------- |
| `$schema`                            | 文字列       | はい  | 認識されるエージェント プラグイン `$schema` URL (v1.0.0 または v1.1.0) である必要があります。 サポートされていないエージェント プラグインのバージョンは拒否されます。 |
| `name`                               | 文字列       | はい  | プラグイン名。                                                                                              |
| [名前の制約](#name-constraints)を参照してください。 |           |     |                                                                                                      |
| `version`                            | 文字列       | いいえ | バージョン文字列。 セマンティック バージョン管理をお勧めします。                                                                    |
| `description`                        | 文字列       | いいえ | 簡単な説明。                                                                                               |
| `author`                             | オブジェクト    | いいえ | 省略可能な `name`、 `email`、および `url` 文字列フィールド。                                                            |
| `homepage`                           | 文字列       | いいえ | プラグインのホームページまたはドキュメント。                                                                               |
| `repository`                         | 文字列       | いいえ | ソース リポジトリ。                                                                                           |
| `license`                            | 文字列       | いいえ | ライセンス識別子。 SPDX 識別子をお勧めします。                                                                           |
| `keywords`                           | string\[] | いいえ | 検索キーワードと検出キーワード。                                                                                     |
| `extensions`                         | オブジェクト    | いいえ | 逆ドメイン名前空間によってキー指定されるクライアント固有のデータ。                                                                    |

不明な最上位レベルのフィールドは報告され、無視されます。
`agents`、`skills`、`hooks`、`mcpServers`、`lspServers`などのコンポーネント パス フィールドは、エージェント プラグイン 1.0 マニフェスト フィールドではありません。

#### 名前の制約

エージェント プラグイン 1.0 の名前は次の必要があります。

* 1 \~ 64 文字を含みます。
* 小文字の ASCII 文字、数字、ハイフン、ピリオドのみを含みます。
* 開始と終了は英数字で行います。
* `--`または`..`を含まない。

#### Components

エージェント プラグイン 1.0 では、次の 2 種類のポータブル コンポーネントが定義されています。

* `skills/` ファイルを含む `SKILL.md` の直下のサブディレクトリ内のスキル。
* プラグイン のルートにある `mcp.json` 内の MCP サーバー。

これらの場所は固定されており、 `plugin.json`で構成することはできません。 スキルは`skills/`からのみ読み込まれます。ルート `SKILL.md` フォールバックはありません (レガシ プラグインは、`skills/` ディレクトリが存在しない場合はルート `SKILL.md`にフォールバックします)。 ルート `mcp.json` では、認識されたエージェント プラグイン `$schema` バージョン ( `plugin.json`と同じバージョンと一致する) を `$schema` フィールドで宣言する必要があります。 最上位のエンベロープは閉じられ、各サーバー エントリはそのトランスポート スキーマに対して検証されます。有効なエントリが読み込まれる間、無効なサーバー エントリは個別にスキップされます。 CLI は、 `stdio`、 `streamable-http`、および `sse` MCP トランスポート名を受け入れます。

`stdio` サーバーの場合、CLI はサブプロセス環境で`PLUGIN_ROOT`と`PLUGIN_DATA`を提供します。 サーバーの`${PLUGIN_DATA}`、`CLAUDE_PLUGIN_DATA`値、および`COPILOT_PLUGIN_DATA`内で、`args`と`env`（およびそのエイリアスである`cwd`と`${PLUGIN_ROOT}`）を展開します。
`PLUGIN_DATA` は、インストールされているプラグインの永続的で書き込み可能なディレクトリを指します。 リモート `http`、`sse`、および `streamable-http` サーバーの構成値は、そのまま渡され、プレースホルダーや環境変数は展開されません。

エージェント プラグイン 1.0 では、ポータブル エージェント、フック、コマンド、ルール、または LSP サーバーは定義されません。 これらはクライアント固有のままです。 クライアント固有のマニフェスト データは `extensions`に属し、逆ドメイン名前空間によってキーが設定されます。 クライアント固有のファイルは、同じ名前空間を持つ最上位ディレクトリに属します。 クライアントは、サポートされていない名前空間を無視します。

Copilot CLI は、 `com.github.copilot` ディレクトリからクライアント固有のコンポーネントを読み取ります。

| コンポーネント     | Location                              |
| ----------- | ------------------------------------- |
| カスタム エージェント | `com.github.copilot/agents/`          |
| スラッシュ コマンド  | `com.github.copilot/commands/`        |
| ルール         | `com.github.copilot/rules/`           |
| フック         | `com.github.copilot/hooks/hooks.json` |
| LSP サーバー    | `com.github.copilot/lsp.json`         |

これらの場所は、エージェント プラグイン 1.0 プラグインにのみ適用されます。 従来のプラグインでは、独自のコンポーネントの場所とマニフェスト パス フィールドが引き続き使用されます。

### エージェント プラグイン 1.0 `plugin.json` ファイルの例

```json copy
{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "my-dev-tools",
  "description": "React development utilities",
  "version": "1.2.0",
  "author": {
    "name": "Jane Doe",
    "email": "jane@example.com"
  },
  "license": "MIT",
  "keywords": ["react", "frontend"]
}
```

### レガシ マニフェスト フィールド

#### 必須フィールド

| フィールド  | タイプ | 説明                                          |
| ------ | --- | ------------------------------------------- |
| `name` | 文字列 | Kebab-case プラグイン名 (文字、数字、ハイフンのみ)。 最大 64 文字。 |

#### 省略可能なメタデータ フィールド

| フィールド                                      | タイプ       | 説明                          |
| ------------------------------------------ | --------- | --------------------------- |
| `description`                              | 文字列       | 簡単な説明。 最大 1024 文字。          |
| `version`                                  | 文字列       | セマンティック バージョン (例: `1.0.0`)。 |
| `author`                                   | オブジェクト    |                             |
| `name` (必須)、 `email` (省略可能)、 `url` (省略可能)。 |           |                             |
| `homepage`                                 | 文字列       | プラグインのホームページ URL。           |
| `repository`                               | 文字列       | ソース リポジトリの URL。             |
| `license`                                  | 文字列       | ライセンス識別子 (例: `MIT`)。        |
| `keywords`                                 | string\[] | キーワードを検索します。                |
| `category`                                 | 文字列       | プラグイン カテゴリ。                 |
| `tags`                                     | string\[] | その他のタグ。                     |

#### コンポーネント パス フィールド

これらは、プラグインのコンポーネントを見つける場所を CLI に指示します。 すべて省略可能です。 省略した場合、CLI では既定の規則が使用されます。

| フィールド                                                                            | タイプ                           | デフォルト     | 説明                                                                          |
| -------------------------------------------------------------------------------- | ----------------------------- | --------- | --------------------------------------------------------------------------- |
| `agents`                                                                         | string \| string\[]           | `agents/` | エージェント ディレクトリ (`.agent.md` ファイル) へのパス。                                      |
| `skills`                                                                         | string \| string\[]           | `skills/` | スキル ディレクトリ (`SKILL.md` ファイル) へのパス。                                          |
| `commands`                                                                       | string \| string\[]           | —         | コマンド ディレクトリへのパス。                                                            |
| `hooks`                                                                          | string \| オブジェクト              | —         | hooks 構成ファイルまたはインライン フック オブジェクトへのパス。                                        |
| `extensions`                                                                     | string \| string\[] \| オブジェクト | —         | 拡張ディレクトリへのパス。 組み込みの拡張機能を抑制するには、 `{ paths: [...], exclusive: true }` を使用します。 |
| [エージェント プラグイン 1.0 マニフェスト](#agent-plugins-10-manifest-fields)では、このフィールドの意味は異なります。 |                               |           |                                                                             |
| `mcpServers`                                                                     | string \| オブジェクト              | —         | MCP 構成ファイル (例: `.mcp.json`)、またはインライン サーバー定義へのパス。                            |
| `lspServers`                                                                     | string \| オブジェクト              | —         | LSP 構成ファイルまたはインライン サーバー定義へのパス。                                              |

たとえば、既定の場所を使用するレガシ プラグインは、次の構造を持つことができます。

```text
my-plugin/
├── plugin.json
├── agents/
│   └── helper.agent.md
├── skills/
│   └── deploy/
│       └── SKILL.md
├── hooks.json
└── .mcp.json
```

追加のマニフェストの場所を使用し、コンポーネント パスを構成できます。 サポートされているすべてのパスと検出順序については、「 [ファイルの場所」](#file-locations)を参照してください。

#### プラグインに付属するエージェント MCP サーバー

プラグイン内にバンドルされているエージェントは、そのフロントマッターで独自の `mcp-servers` を宣言でき、プラグインの共有 `mcpServers` 構成を介して公開するのではなく、そのエージェントのみに MCP サーバーをスコープできます。 その `mcp-servers` ブロック内では、 `${PLUGIN_ROOT}` (またはその `${CLAUDE_PLUGIN_ROOT}`/`${COPILOT_PLUGIN_ROOT}` エイリアス) がプラグインのルート ディレクトリに展開されるため、サーバーの `command` または `args` は、プラグインにバンドルされているスクリプトを指すことができます。

```markdown
---
name: Plugin Linter
description: Runs the plugin's bundled linter via its own MCP server
mcp-servers:
    plugin-linter:
        command: node
        args: ["${PLUGIN_ROOT}/tools/serve.js"]
        tools: ["*"]
---

You are a linting specialist for this plugin's bundled rules.
```

この置換は、プラグインによって出荷されたエージェント独自のフロントマッター内の `mcp-servers` にのみ適用されます。 `${PLUGIN_DATA}` やサーバーの環境変数には拡張されません。 ワークスペースおよびユーザー エージェントにはプラグイン ルートがないため、frontmatter は変更されません。

### LSP サーバーの構成

プラグインに LSP (Language Server Protocol) サーバーを含めるには、プラグイン ディレクトリに`lsp-config/servers.json` ファイルを作成するか、`lspServers`の `plugin.json` フィールドを使用してパスまたはインライン オブジェクトを指定します。

`lsp-config/servers.json` の例 (または、`lspServers` の `plugin.json` を使用したインライン):

```json
{
    "lspServers": {
        "my-lsp": {
            "command": "my-language-server",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}
```

クロスプラットフォーム サポートの場合は、`bash`ではなく、`powershell`と`command`を使用します。

```json
{
    "lspServers": {
        "my-lsp": {
            "bash": "${PLUGIN_ROOT}/scripts/start-lsp.sh",
            "powershell": "${PLUGIN_ROOT}/scripts/start-lsp.ps1",
            "fileExtensions": { ".myext": "mylang" }
        }
    }
}
```

| フィールド                                         | タイプ       | 必須  | 説明                                                                 |
| --------------------------------------------- | --------- | --- | ------------------------------------------------------------------ |
| `command`                                     | 文字列       | \*  | 言語サーバーを起動する実行可能ファイル。                                               |
| `bash`                                        | 文字列       | \*  | サーバーを起動するための Bash スクリプト (Linux/macOS); `bash -c SCRIPT`を介して実行されます。 |
| `powershell`                                  | 文字列       | \*  | サーバー (Windows) を起動する PowerShell スクリプト。`pwsh -c SCRIPT` 経由で実行されます。  |
| `cwd`                                         | 文字列       | いいえ | 作業ディレクトリ。 構成ファイルに対する絶対または相対。                                       |
| `${PLUGIN_ROOT}` をサポートします。                    |           |     |                                                                    |
| `args`                                        | string\[] | いいえ |                                                                    |
| `command`に渡す引数 (`bash`と`powershell`では無視されます)。 |           |     |                                                                    |
| `env`                                         | オブジェクト    | いいえ | サーバーを生成するときに設定する環境変数。                                              |
| `fileExtensions`                              | オブジェクト    | はい  | ファイル拡張子を言語 ID にマップします (たとえば、 `{ ".ts": "typescript" }`)。           |
| `rootUri`                                     | 文字列       | いいえ | git のルートに対するプロジェクトのルート (既定値: `.`)。                                 |
| `initializationOptions`                       | 任意の       | いいえ | LSP `initialize` 要求でサーバーに送信されるオプション。                               |

(\*)少なくとも 1 つの `command`、 `bash`、または `powershell` が必要です。
`bash` と `powershell` の両方を指定すると、プラットフォームに適したオプションが自動的に選択されます (Windows の PowerShell、Bash の他の場所)。

`${PLUGIN_ROOT}`を使用して、プラグイン ディレクトリ内のパスを参照します。

## `marketplace.json`

`marketplace.json` ファイルを作成してリポジトリの `.github/plugin/` ディレクトリに保存すると、人々がプラグインを発見してインストールするのに利用できるプラグインマーケットプレースを作成できます。
`marketplace.json` ファイルをローカル ファイル システムに格納することもできます。 たとえば、ファイルを `/PATH/TO/my-marketplace/.github/plugin/marketplace.json` として保存すると、次のコマンドを使用して CLI に追加できます。

```shell
copilot plugin marketplace add /PATH/TO/my-marketplace
```

> [!NOTE]
> Copilot CLI は、`marketplace.json` ディレクトリ内の`.claude-plugin/` ファイルも検索します。

詳細については、「[GitHubでのプラグイン マーケットプレースの作成と共有](/ja/copilot/how-tos/copilot-on-github/customize-copilot/create-and-share-plugin-marketplaces)」を参照してください。

### `marketplace.json` ファイルの例

```json copy
{
  "name": "my-marketplace",
  "owner": {
    "name": "Your Organization",
    "email": "plugins@example.com"
  },
  "metadata": {
    "description": "Curated plugins for our team",
    "version": "1.0.0"
  },
  "plugins": [
    {
      "name": "frontend-design",
      "description": "Create a professional-looking GUI ...",
      "version": "2.1.0",
      "source": "./plugins/frontend-design"
    },
    {
      "name": "security-checks",
      "description": "Check for potential security vulnerabilities ...",
      "version": "1.3.0",
      "source": "./plugins/security-checks"
    }
  ]
}
```

> [!NOTE]
> 各プラグインの `source` フィールドの値は、リポジトリのルートを基準としたプラグインのディレクトリへのパスです。 パスの先頭で `./` を使用する必要はありません。 たとえば、`"./plugins/plugin-name"` と `"plugins/plugin-name"` は同じディレクトリに解決されます。

### `marketplace.json` フィールド

#### 最上位レベルのフィールド

| フィールド                                 | タイプ    | 必須  | 説明                                                                                                                                |
| ------------------------------------- | ------ | --- | --------------------------------------------------------------------------------------------------------------------------------- |
| `name`                                | 文字列    | はい  | Kebab-case のマーケットプレース名。 最大 64 文字。 ドットは、[エージェント プラグイン 1.0 プラグイン](#agent-plugins-10-manifest-fields)でも受け入れられます (たとえば、`acme.tools`)。 |
| `owner`                               | オブジェクト | はい  |                                                                                                                                   |
| `{ name, email? }` — マーケットプレースの所有者情報。 |        |     |                                                                                                                                   |
| `plugins`                             | アレイ    | はい  | プラグイン エントリの一覧 (下の表を参照)。                                                                                                           |
| `metadata`                            | オブジェクト | いいえ | `{ description?, version?, pluginRoot? }`                                                                                         |

#### プラグインエントリフィールド( `plugins` 配列内のオブジェクト)

| フィールド                                                                       | タイプ                 | 必須  | 説明                                                                                                              |
| --------------------------------------------------------------------------- | ------------------- | --- | --------------------------------------------------------------------------------------------------------------- |
| `name`                                                                      | 文字列                 | はい  | Kebab-case プラグイン名。 最大 64 文字。                                                                                    |
| [ドットは、エージェント プラグイン 1.0](#agent-plugins-10-manifest-fields) プラグインでも受け入れられます。 |                     |     |                                                                                                                 |
| `source`                                                                    | string \| オブジェクト    | はい  | プラグインを取得する場所 (相対パス、GitHub、または URL)。                                                                             |
| `description`                                                               | 文字列                 | いいえ | プラグインの説明。 最大 1024 文字。                                                                                           |
| `version`                                                                   | 文字列                 | いいえ | プラグインのバージョン。                                                                                                    |
| `author`                                                                    | オブジェクト              | いいえ | `{ name, email?, url? }`                                                                                        |
| `homepage`                                                                  | 文字列                 | いいえ | プラグインのホームページ URL。                                                                                               |
| `repository`                                                                | 文字列                 | いいえ | ソース リポジトリの URL。                                                                                                 |
| `license`                                                                   | 文字列                 | いいえ | ライセンス識別子。                                                                                                       |
| `keywords`                                                                  | string\[]           | いいえ | キーワードを検索します。                                                                                                    |
| `category`                                                                  | 文字列                 | いいえ | プラグイン カテゴリ。                                                                                                     |
| `tags`                                                                      | string\[]           | いいえ | その他のタグ。                                                                                                         |
| `commands`                                                                  | string \| string\[] | いいえ | コマンド ディレクトリへのパス。                                                                                                |
| `agents`                                                                    | string \| string\[] | いいえ | エージェント ディレクトリへのパス(複数可)。                                                                                         |
| `skills`                                                                    | string \| string\[] | いいえ | スキル ディレクトリへのパス。                                                                                                 |
| `hooks`                                                                     | string \| オブジェクト    | いいえ | hooks の設定またはインラインフック オブジェクトへのパス。                                                                                |
| `mcpServers`                                                                | string \| オブジェクト    | いいえ | プラグインのインストール時にアクティブ化する MCP サーバー。 インライン サーバー マップまたは JSON 構成ファイルへのパスを受け入れます。 プラグイン ソースが独自の MCP 構成を出荷しない場合に使用されます。 |
| `lspServers`                                                                | string \| オブジェクト    | いいえ | LSP 構成またはインライン サーバー定義へのパス。                                                                                      |
| `strict`                                                                    | ブーリアン               | いいえ |                                                                                                                 |
| `true` (既定) の場合、プラグインは完全なスキーマと検証規則に準拠している必要があります。                           |                     |     |                                                                                                                 |
| `false`場合は、緩やかな検証が使用されるため、特に直接インストールやレガシ プラグインの場合は柔軟性が向上します。                |                     |     |                                                                                                                 |

#### プラグインソースの種類

プラグイン エントリの `source` フィールドは、相対パス文字列、または GitHub リポジトリまたは Git URL ソースを記述するオブジェクトを受け取ります。

```json
{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "ref": "v1.0.0",
        "path": "plugins/my-plugin"
    }
}
```

`github` と `url` の両方のソースタイプでは、`sha` に加えて、またはその代わりに、インストールを特定のコミットに固定するためのオプションの `ref` フィールドを指定できます。

```json
{
    "source": {
        "source": "github",
        "repo": "owner/repo",
        "sha": "a94a8fe5ccb19ba61c4c0873d391e987982fbbd3",
        "path": "plugins/my-plugin"
    }
}
```

`sha` は、完全な 40 文字のコミット SHA である必要があります。 再現性のあるインストールを実現するには、`sha` に固定することで、強制プッシュやタグ/ブランチの移動の影響を受けなくなります。

## ファイルの場所

| 品目                                                                                                                                           | Path                                                                                                                                                                                                                                                                                             |
| -------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| インストールされているプラグイン                                                                                                                             |                                                                                                                                                                                                                                                                                                  |
| `~/.copilot/installed-plugins/MARKETPLACE/PLUGIN-NAME` (Marketplace 経由でインストール)、 `~/.copilot/installed-plugins/_direct/SOURCE-ID/` (直接インストール) |                                                                                                                                                                                                                                                                                                  |
| Marketplace キャッシュ                                                                                                                            | プラットフォーム キャッシュ ディレクトリ: `~/.cache/copilot/marketplaces/` (Linux)、 `~/Library/Caches/copilot/marketplaces/` (macOS)。                                                                                                                                                                               |
| `COPILOT_CACHE_HOME`でオーバーライドできます。                                                                                                            |                                                                                                                                                                                                                                                                                                  |
| プラグイン マニフェスト                                                                                                                                 | エージェントプラグイン (v1.0.0 または v1.1.0): プラグインのルートに `plugin.json`。 エージェント プラグインをターゲットとするルート マニフェストは、仕様 §5.1 ごとに `.plugin/plugin.json` と `.claude-plugin/plugin.json` よりも優先されます。 従来のプラグイン: `.plugin/plugin.json`、 `plugin.json`、 `.github/plugin/plugin.json`、または `.claude-plugin/plugin.json` (この順序でオン)。 |
| Marketplace マニフェスト                                                                                                                           |                                                                                                                                                                                                                                                                                                  |
| `marketplace.json`、 `.plugin/marketplace.json`、 `.github/plugin/marketplace.json`、または `.claude-plugin/marketplace.json` (この順序でオン)            |                                                                                                                                                                                                                                                                                                  |
| エージェント                                                                                                                                       | レガシ プラグイン: `agents/` (既定で、マニフェストでオーバーライド可能)。                                                                                                                                                                                                                                                     |
| スキル                                                                                                                                          | エージェント プラグイン: `skills/` (固定、ルート `SKILL.md` フォールバックなし)。 従来のプラグイン: `skills/` (既定ではマニフェストでオーバーライド可能)、`skills/`ディレクトリが存在しない場合はルート `SKILL.md`にフォールバックします。                                                                                                                                             |
| フックの構成                                                                                                                                       | 従来のプラグイン: `hooks.json` または `hooks/hooks.json`。                                                                                                                                                                                                                                                   |
| MCP の構成                                                                                                                                      | エージェント プラグイン: `mcp.json`。 従来のプラグイン: `.mcp.json`、 `.github/mcp.json`、または `mcpServers` マニフェスト フィールド。                                                                                                                                                                                               |
| LSP 構成                                                                                                                                       | 従来のプラグイン: `lsp.json` または `.github/lsp.json`。                                                                                                                                                                                                                                                     |
| プラグイン データ                                                                                                                                    | Agent Plugins 1.0 MCP サーバーの場合、 `${PLUGIN_DATA}` ( `${COPILOT_PLUGIN_DATA}` および `${CLAUDE_PLUGIN_DATA}`としても使用可能) は、インストールされている各プラグインに固有の永続的で書き込み可能なディレクトリを指します。 これは、installed-plugins キャッシュ ディレクトリ内のパスではなく、プラグイン固有のランタイム データに使用します。                                                               |

## 読み込みの順序と優先順位

複数のプラグインをインストールすると、一部のカスタム エージェント、スキル、MCP サーバー、または MCP サーバー経由で提供されるツールの名前が重複している可能性があります。 この状況では、優先順位に基づいて、使用するコンポーネントが CLI によって決定されます。

* **エージェントとスキル**では、最初に見つかったものが優先されます。

  インストールするプラグインと同じ名前または ID を持つプロジェクト レベルのカスタム エージェントまたはスキルがある場合、プラグインのエージェントまたはスキルは自動的に無視されます。 プラグインは、プロジェクト レベルまたは個人用の構成をオーバーライドできません。 カスタム エージェントは、ファイル名から派生した ID を使用して重複除去されます (たとえば、ファイル名が `reviewer.agent.md` の場合、エージェント ID は `reviewer`)。 スキルは、 `SKILL.md` ファイル内の名前フィールドによって重複除去されます。

* **MCP サーバー** では、最終優先優先順位が使用されます。

  既にインストールした MCP サーバーと同じサーバー名を持つ MCP サーバーを定義するプラグインをインストールすると、プラグインの定義が優先されます。
  `--additional-mcp-config` コマンドライン オプションを使用すると、プラグインを使用してインストールされた同じ名前の MCP サーバー構成をオーバーライドできます。 2 つ以上のプラグインで同じ名前の MCP サーバーが宣言されている場合、CLI は最後に読み込まれたプラグインのバージョンを使用し、それを定義した以前のプラグインごとに警告の名前付けが表示されます。

* **組み込みのツールとエージェント** は常に存在し、ユーザー定義コンポーネントによってオーバーライドすることはできません。

次の図は、読み込みの順序と優先順位の規則を示しています。

```text
┌──────────────────────────────────────────────────────────────────┐
│  BUILT-IN - HARDCODED, ALWAYS PRESENT                            │
│  • tools: bash, view, apply_patch, glob, rg, task, ...           │
│  • agents: explore, task, code-review, general-purpose, research │
└────────────────────────┬─────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  CUSTOM AGENTS - FIRST LOADED IS USED (dedup by ID)                 │
  │  1. ~/.copilot/agents/           (user, .github convention)         │
  │  2. <project>/.github/agents/    (project)                          │
  │  3. <parents>/.github/agents/    (inherited, monorepo)              │
  │  4. <project>/.claude/agents/    (project)                          │
  │  5. <parents>/.claude/agents/    (inherited, monorepo)              │
  │  6. <add-dir>/.github/agents/    (added root, --add-dir)            │
  │  7. PLUGIN: agents/ dirs         (plugin, by install order)         │
  │  8. Remote org/enterprise agents (remote, via API)                  │
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  AGENT SKILLS - FIRST LOADED IS USED (dedup by name)                │
  │  1. <project>/.github/skills/        (project)                      │
  │  2. <project>/.agents/skills/        (project)                      │
  │  3. <project>/.claude/skills/        (project)                      │
  │  4. <parents>/.github/skills/ etc.   (inherited)                    │
  │  5. ~/.copilot/skills/               (personal-copilot)             │
  │  6. ~/.agents/skills/                (personal-agents)              │
  │  7. PLUGIN: skills/ dirs             (plugin)                       │
  │  8. COPILOT_SKILLS_DIRS env + config (custom)                       │
  │  --- then commands (.claude/commands/), skills override commands ---│
  └──────────────────────┬──────────────────────────────────────────────┘
                         │
  ┌──────────────────────▼──────────────────────────────────────────────┐
  │  MCP SERVERS - LAST LOADED IS USED (dedup by server name)           │
  │  1. ~/.copilot/mcp-config.json       (lowest priority)              │
  │  2. PLUGIN: MCP configs              (plugins)                      │
  │  3. --additional-mcp-config flag     (highest priority)             │
  └─────────────────────────────────────────────────────────────────────┘
```

## 詳細については、次を参照してください。

* [エンタープライズで管理されるプラグインの標準について](/ja/copilot/concepts/enterprise/plugin-standards)
* [GitHub Copilot CLI](/ja/copilot/how-tos/copilot-cli)
* [GITHUB COPILOT CLI コマンド リファレンス](/ja/copilot/reference/copilot-cli-reference/cli-command-reference)
* [GitHub Copilot CLI プログラムリファレンス](/ja/copilot/reference/copilot-cli-reference/cli-programmatic-reference)