メモ
ターミナルで copilot plugin [SUBCOMMAND] --help を入力すると、プラグインの使用に関するヘルプが表示されます。
CLI コマンド
ターミナルで次のコマンドを使用して、Copilot CLI のプラグインを管理できます。
| Command | Description |
|---|---|
copilot plugin install SPECIFICATION | プラグインをインストールします。 以下のコマンドについては、プラグインの仕様install参照してください。 |
copilot plugin uninstall NAME | プラグインを削除する |
copilot plugin list | インストールされているプラグインを一覧表示する |
copilot plugin update NAME | プラグインを更新する |
copilot plugin marketplace add SPECIFICATION | マーケットプレースを登録する |
copilot plugin marketplace list | 登録されているマーケットプレースを一覧表示する |
copilot plugin marketplace browse NAME | Marketplace プラグインを参照する |
copilot plugin marketplace remove NAME | マーケットプレースの登録を解除する |
`install` コマンドのプラグイン仕様
| Format | 例 | Description |
|---|---|---|
| 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` | ローカル ディレクトリ |
plugin.json
すべてのプラグインは、少なくともプラグインディレクトリのルートにある plugin.json という名前のマニフェストファイルを含むプラグインディレクトリで構成されています。 「GitHub Copilot CLI(コマンドラインインターフェース) のプラグインの作成」を参照してください。
必須フィールド
| フィールド | タイプ | Description |
|---|---|---|
name | 文字列 | Kebab-case プラグイン名 (文字、数字、ハイフンのみ)。 最大 64 文字。 |
省略可能なメタデータ フィールド
| フィールド | タイプ | Description |
|---|---|---|
description | 文字列 | 簡単な説明。 最大 1024 文字。 |
version | 文字列 | セマンティック バージョン (例: 1.0.0)。 |
author | オブジェクト |
`name` (必須)、 `email` (省略可能)、 `url` (省略可能)。 |
| homepage | 文字列 | プラグインのホームページ URL。 |
| repository | 文字列 | ソース リポジトリの URL。 |
| license | 文字列 | ライセンス識別子 (例: MIT)。 |
| keywords | string[] | キーワードを検索します。 |
| category | 文字列 | プラグイン カテゴリ。 |
| tags | string[] | その他のタグ。 |
コンポーネント パス フィールド
これらは、プラグインのコンポーネントを見つける場所を CLI に指示します。 すべて省略可能です。 省略した場合、CLI では既定の規則が使用されます。
| フィールド | タイプ | 既定値 | Description |
|---|---|---|---|
agents | string | string[] | agents/ | エージェント ディレクトリ (.agent.md ファイル) へのパス。 |
skills | string | string[] | skills/ | スキル ディレクトリ (SKILL.md ファイル) へのパス。 |
commands | 文字列 | 文字列[] | — | コマンド ディレクトリへのパス。 |
hooks | string | オブジェクト | — | hooks 構成ファイルまたはインライン フック オブジェクトへのパス。 |
mcpServers | string | オブジェクト | — | MCP 構成ファイル (例: .mcp.json)、またはインライン サーバー定義へのパス。 |
lspServers | string | オブジェクト | — | LSP 構成ファイルまたはインライン サーバー定義へのパス。 |
`plugin.json` ファイルの例
{
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "[email protected]"
},
"license": "MIT",
"keywords": ["react", "frontend"],
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"version": "1.2.0",
"author": {
"name": "Jane Doe",
"email": "[email protected]"
},
"license": "MIT",
"keywords": ["react", "frontend"],
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
marketplace.json
`marketplace.json` ファイルを作成してリポジトリの `.github/plugin/` ディレクトリに保存すると、人々がプラグインを発見してインストールするのに利用できるプラグインマーケットプレースを作成できます。
`marketplace.json` ファイルをローカル ファイル システムに格納することもできます。 たとえば、ファイルを `/PATH/TO/my-marketplace/.github/plugin/marketplace.json` として保存すると、次のコマンドを使用して CLI に追加できます。
copilot plugin marketplace add /PATH/TO/my-marketplace
メモ
Copilot CLI は、marketplace.json ディレクトリ内の.claude-plugin/ ファイルも検索します。
詳しくは、「GitHub Copilot CLI(コマンドラインインターフェース) のプラグイン マーケットプレースの作成」をご覧ください。
`marketplace.json` ファイルの例
{
"name": "my-marketplace",
"owner": {
"name": "Your Organization",
"email": "[email protected]"
},
"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"
}
]
}
{
"name": "my-marketplace",
"owner": {
"name": "Your Organization",
"email": "[email protected]"
},
"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"
}
]
}
メモ
各プラグインの source フィールドの値は、リポジトリのルートを基準としたプラグインのディレクトリへのパスです。 パスの先頭で ./ を使用する必要はありません。 たとえば、"./plugins/plugin-name" と "plugins/plugin-name" は同じディレクトリに解決されます。
`marketplace.json` フィールド
最上位レベルのフィールド
| フィールド | タイプ | 必須 | Description |
|---|---|---|---|
name | 文字列 | イエス | Kebab-case のマーケットプレース名。 最大 64 文字。 |
owner | オブジェクト | イエス |
`{ name, email? }` — マーケットプレースの所有者情報。 |
| plugins | アレイ | イエス | プラグイン エントリの一覧 (下の表を参照)。 |
| metadata | オブジェクト | いいえ | { description?, version?, pluginRoot? } |
プラグインエントリフィールド( plugins 配列内のオブジェクト)
| フィールド | タイプ | 必須 | Description |
|---|---|---|---|
name | 文字列 | イエス | Kebab-case プラグイン名。 最大 64 文字。 |
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 | オブジェクト | いいえ | フック構成またはインラインフックオブジェクトへのパス。 |
mcpServers | string | オブジェクト | いいえ | MCP 構成またはインライン サーバー定義へのパス。 |
lspServers | string | オブジェクト | いいえ | LSP 構成またはインライン サーバー定義へのパス。 |
strict | ブーリアン | いいえ | false の場合、プラグインには独自の plugin.jsonは必要ありません。 既定値: true。 |
ファイルの場所
| Item | 経路 |
|---|---|
| インストールされているプラグイン |
`~/.copilot/installed-plugins/` および `~/.copilot/installed-plugins/_direct` |
| Marketplace キャッシュ | ~/.copilot/state/marketplace-cache/ |
| プラグイン マニフェスト |
plugin.json、 .github/plugin/plugin.json、または .claude-plugin/plugin.json |
| Marketplace マニフェスト |
.github/plugin/marketplace.json または .claude-plugin/marketplace.json |
| Agents |
agents/ (既定、マニフェストでオーバーライド可能) |
| Skills |
skills/ (既定、マニフェストでオーバーライド可能) |
| Hooks の設定 |
hooks.json または hooks/hooks.json |
| MCP 設定 |
.mcp.json または .github/mcp.json |
| LSP 構成 |
lsp.json または .github/lsp.json |
読み込みの順序と優先順位
複数のプラグインをインストールすると、一部のカスタム エージェント、スキル、MCP サーバー、または MCP サーバー経由で提供されるツールの名前が重複している可能性があります。 この状況では、優先順位に基づいて、使用するコンポーネントが CLI によって決定されます。
-
**エージェントとスキル** では、最初に見つかったものが優先されます。インストールするプラグインと同じ名前または ID を持つプロジェクト レベルのカスタム エージェントまたはスキルがある場合、プラグインのエージェントまたはスキルは自動的に無視されます。 プラグインは、プロジェクト レベルまたは個人用の構成をオーバーライドできません。 カスタム エージェントは、ファイル名から派生した ID を使用して重複除去されます (たとえば、ファイル名が
reviewer.agent.mdの場合、エージェント ID はreviewer)。 スキルは、SKILL.mdファイル内の名前フィールドによって重複除去されます。 -
**MCP サーバー** では、最終優先優先順位が使用されます。既にインストールした MCP サーバーと同じサーバー名を持つ MCP サーバーを定義するプラグインをインストールすると、プラグインの定義が優先されます。
--additional-mcp-configコマンドライン オプションを使用すると、プラグインを使用してインストールされた同じ名前の MCP サーバー構成をオーバーライドできます。 -
**組み込みのツールとエージェント** は常に存在し、ユーザー定義コンポーネントによってオーバーライドすることはできません。
次の図は、読み込みの順序と優先順位の規則を示しています。
┌─────────────────────────────────────────────────────────┐
│ BUILT-IN - HARDCODED, ALWAYS PRESENT │
│ • tools: bash, view, apply_patch, glob, rg, task, ... │
│ • agents: explore, task, code-review, general-purpose │
└────────────────────────┬────────────────────────────────┘
│
┌──────────────────────▼──────────────────────────────────────────────┐
│ 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. ~/.claude/agents/ (user, .claude convention) │
│ 5. <project>/.claude/agents/ (project) │
│ 6. <parents>/.claude/agents/ (inherited, monorepo) │
│ 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. ~/.claude/skills/ (personal-claude) │
│ 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. .vscode/mcp.json (workspace) │
│ 3. PLUGIN: MCP configs (plugins) │
│ 4. --additional-mcp-config flag (highest priority) │
└─────────────────────────────────────────────────────────────────────┘