イントロダクション
プラグインは、 Copilot CLIの機能を拡張するパッケージです。 「GitHub Copilot プラグインについて」を参照してください。
メモ
ターミナルで copilot plugin [SUBCOMMAND] --help を入力すると、プラグインの使用に関するヘルプが表示されます。
プラグインの構造
プラグインは、特定の構造を持つディレクトリと plugin.json マニフェスト ファイルで構成されます。 エージェント プラグイン 1.0 では、プラグイン のルートにあるマニフェストが必要です。 従来のプラグインでは、追加のマニフェストの場所がサポートされています。 プラグインには、エージェント、スキル、フック、MCP サーバー構成の任意の組み合わせを含めることもできます。
Copilot CLI では、次の 2 つのプラグイン形式がサポートされています。
- エージェント プラグイン 1.0。スキルと MCP サーバーの移植可能な形式です。
plugin.jsonで正規$schemaを宣言すると、プラグインはこの形式にオプトインします。 - 従来の Copilot 形式は、 Copilot固有のコンポーネントと構成可能なコンポーネント パスをサポートします。 エージェント プラグインのないマニフェスト
$schema、引き続きこの形式が使用されます。
どちらの形式もサポートされています。 互換性のあるクライアント間でスキルと MCP サーバーを移植可能にする場合は、エージェント プラグイン 1.0 を選択します。 カスタム コンポーネント パスが必要な場合、または既存の Copilot固有のプラグインを維持している場合は、レガシ形式を選択します。 エージェント プラグイン 1.0 では、スキルと MCP サーバーは移植可能であり、エージェント、コマンド、ルール、フック、LSP サーバーなどの Copilot固有のコンポーネントは、プラグインの com.github.copilot ディレクトリから取得されます。
プラグインの作成
-
プラグインのディレクトリを作成します。
-
プラグイン形式を選択し、ディレクトリのルートに
plugin.jsonマニフェスト ファイルを追加します。エージェント プラグイン 1.0 プラグインを作成するには、正規の
$schemaを含めます。
エージェント プラグイン 1.0 plugin.json ファイルの例
{
"$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"]
}
{
"$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"]
}
スキーマでは、最上位フィールドとして $schema、 name、 version、 description、 author、 homepage、 repository、 license、 keywords、および extensions のみを使用できます。 不明な最上位レベルのフィールドは報告され、無視されます。
extensions フィールドは、逆ドメイン名前空間によってキー指定されたクライアント固有のデータのマップです。
従来のプラグインを作成するには、エージェント プラグインの $schemaを省略します。 マニフェストでは、コンポーネント パス フィールドを使用できます。
レガシ plugin.json ファイルの例
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
{
"name": "my-dev-tools",
"description": "React development utilities",
"agents": "agents/",
"skills": ["skills/", "extra-skills/"],
"hooks": "hooks.json",
"mcpServers": ".mcp.json"
}
このファイルに含めることができるフィールドの完全なセットの詳細については、 GitHub Copilot CLI プラグイン リファレンス を参照してください。
-
プラグインにコンポーネントを追加します。
エージェント プラグイン 1.0 プラグインでは、スキルは
skills/の直下のサブディレクトリである必要があり、各スキルにはSKILL.mdファイルが含まれている必要があります。 MCP の設定は、プラグインのルートディレクトリにあるmcp.json内に存在する必要があります。plugin.jsonでこれらの場所をオーバーライドすることはできません。 Copilot 固有のコンポーネントは、カスタム エージェント用のcom.github.copilot/hooks/hooks.jsonやフック用のcom.github.copilotなど、com.github.copilot/agents/ディレクトリに配置されます。レガシ プラグインでは、既定のコンポーネントの場所または
plugin.jsonで構成されたコンポーネント パスを使用します。例えば次が挙げられます。
-
NAME.agent.mdサブディレクトリにagentsファイルを作成して、エージェントを追加します。 エージェント プラグイン 1.0 プラグインで、com.github.copilot/agents/でファイルを作成します。 レガシ プラグインで、agents/で作成します。Markdown --- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that...
--- name: my-agent description: Helps with specific tasks tools: ["bash", "edit", "view"] --- You are a specialized assistant that... -
プラグイン ディレクトリの
skills/NAMEサブディレクトリを作成してスキルを追加します。ここで、NAMEはスキルの名前です。 次に、このサブディレクトリ内に、スキルを定義するSKILL.mdファイルを作成します。たとえば、"デプロイ" スキルを作成するには、
skills/deploy/SKILL.mdを作成します。Markdown --- name: deploy description: Deploy the current project to... --- Instructions for the skill...
--- name: deploy description: Deploy the current project to... --- Instructions for the skill... -
エージェント プラグイン 1.0 プラグインの場合は、ルート
mcp.jsonファイルに MCP サーバーを追加します。 MCP 構成では、独自のエージェント プラグイン スキーマを使用します。JSON { "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }{ "$schema": "https://agent-plugins.org/schemas/1.0.0/mcp.schema.json", "mcpServers": { "deployment-api": { "type": "streamable-http", "url": "https://deploy.example.com/mcp" }, "local-validator": { "type": "stdio", "command": "node", "args": ["${PLUGIN_ROOT}/server/index.js"], "cwd": "${PLUGIN_ROOT}", "env": { "DATA_DIR": "${PLUGIN_DATA}/validator" } } } }
-
streamable-http トランスポート名は、Streamable HTTP サーバーで使用できます。
stdio サーバーの場合、Copilot CLIはPLUGIN_ROOTおよびPLUGIN_DATA環境変数を提供し、args、env値、およびcwdで${PLUGIN_ROOT}と${PLUGIN_DATA}を拡張します。
-
プラグインをローカルにインストールして、開発時にテストできるようにします。
たとえば、
./my-pluginがプラグイン ディレクトリへのパスである場合は、次のように入力します。Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
インストールされているプラグインの一覧を表示して、プラグインが正常に読み込まれたことを確認します。
Shell copilot plugin list
copilot plugin listまたは、新しい対話型セッションを開始し、次のように入力できます。
Copilot prompt /plugin list
/plugin list -
定義したエージェント、スキル、フック、および MCP サーバー構成が正しく読み込まれたことを確認します。
たとえば、対話型セッションで、プラグインで定義されているカスタム エージェントが読み込まれたことを確認するには、次のように入力します。
Copilot prompt /agent
/agentプラグインで定義されているスキルが読み込まれたことを確認するには、次のように入力します。
Copilot prompt /skills list
/skills list -
プラグインのコンポーネントによって提供される機能を使用して、各コンポーネントが期待どおりに動作することを確認します。
-
必要に応じて、プラグインの開発を繰り返します。
重要
プラグインをインストールすると、そのコンポーネントがキャッシュされ、CLI は後続のセッションのためにキャッシュから読み取ります。 ローカル プラグインに加えられた変更を取得するには、もう一度インストールします。
Shell copilot plugin install ./my-plugin
copilot plugin install ./my-plugin -
テストが完了したら、次のように入力してプラグインのローカル バージョンをアンインストールできます。
Shell copilot plugin uninstall NAME
copilot plugin uninstall NAMEメモ
プラグインをアンインストールするには、プラグインのディレクトリへのパスではなく、プラグインの
nameマニフェスト ファイルのplugin.jsonフィールドで指定されているプラグインの名前を使用します。
プラグインの配布
プラグインを配布するには、それをマーケットプレースに追加します。 「用のプラグイン マーケットプレースを作成する GitHub Copilot CLI」を参照してください。