Skip to main content
Skip to content

用のプラグインを作成する GitHub Copilot CLI

簡単にインストールできるパッケージでカスタマイズを共有するプラグインを作成します。

プラグインは、 Copilot CLIの機能を拡張するパッケージです。 クロスクライアントの概要については、 GitHub Copilot 用のプラグイン を参照してください。

メモ

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

プラグインの構造

プラグインは、特定の構造を持つディレクトリと plugin.json マニフェスト ファイルで構成されます。 エージェント プラグイン 1.0 では、プラグイン のルートにあるマニフェストが必要です。 従来のプラグインでは、追加のマニフェストの場所がサポートされています。 プラグインには、エージェント、スキル、フック、MCP サーバー構成の任意の組み合わせを含めることもできます。

エージェント プラグイン 1.0 は、互換性のあるクライアント間でスキルと MCP サーバーのためのポータブルな形式です。 Copilot CLI では、従来の Copilot 形式もサポートされています。

  • エージェント プラグイン 1.0 を使用するには、$schemaで正規のplugin.jsonを宣言します。
  • レガシ形式では、 Copilot固有のコンポーネントと構成可能なコンポーネント パスがサポートされています。 Copilot CLIでは、Agent Plugins $schema を含まないマニフェストでは、この形式が使用されます。

互換性のあるクライアント間でスキルと MCP サーバーを共有する場合は、エージェント プラグイン 1.0 を選択します。 クライアントがサポートしている他のコンポーネントを確認するには、クライアントのドキュメントを確認してください。 Copilot CLIで構成可能なコンポーネント パスが必要な場合、または既存のCopilot固有のプラグインを維持している場合は、レガシ形式を選択します。

プラグインの作成

  1. プラグインのディレクトリを作成します。

  2. プラグイン形式を選択し、ディレクトリのルートに plugin.json マニフェスト ファイルを追加します。

    エージェント プラグイン 1.0 プラグインを作成するには、正規の $schemaを含めます。

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

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、 name、 version、 description、 author、 homepage、 repository、 license、 keywords、および extensions のみを使用できます。 Copilot CLI は、不明な最上位フィールドを報告して無視します。 extensions フィールドは、逆ドメイン名前空間によってキー指定されたクライアント固有のデータのマップです。

従来のプラグインを作成するには、エージェント プラグインの $schemaを省略します。 マニフェストでは、コンポーネント パス フィールドを使用できます。

レガシ plugin.json ファイルの例

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. プラグインにコンポーネントを追加します。

    エージェント プラグイン 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 で構成されたコンポーネント パスを使用します。

    例えば次が挙げられます。

    1. 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...
      
    2. プラグイン ディレクトリの skills/NAME サブディレクトリを作成してスキルを追加します。ここで、 NAME はスキルの名前です。 次に、このサブディレクトリ内に、スキルを定義する SKILL.md ファイルを作成します。

      たとえば、"デプロイ" スキルを作成するには、 skills/deploy/SKILL.mdを作成します。

      Markdown
      ---
      name: deploy
      description: Deploy the current project to...
      ---
      
      Instructions for the skill...
      
    3. エージェント プラグイン 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"
           }
         }
       }
      }
      

streamable-http トランスポート名は、Streamable HTTP サーバーで使用できます。 stdio サーバーの場合、Copilot CLIはPLUGIN_ROOTおよびPLUGIN_DATA環境変数を提供し、args、env値、およびcwdで${PLUGIN_ROOT}と${PLUGIN_DATA}を拡張します。

GitHub Copilot CLIでプラグインをテストする

次のコマンドは、 Copilot CLIでプラグインをテストします。

  1. プラグインをローカルにインストールして、開発時にテストできるようにします。

    たとえば、 ./my-plugin がプラグイン ディレクトリへのパスである場合は、次のように入力します。

    Shell
    copilot plugin install ./my-plugin
    
  2. インストールされているプラグインの一覧を表示して、プラグインが正常に読み込まれたことを確認します。

    Shell
    copilot plugin list
    

    または、新しい対話型セッションを開始し、次のように入力できます。

    Copilot prompt
    /plugin list
    
  3. 定義したエージェント、スキル、フック、および MCP サーバー構成が正しく読み込まれたことを確認します。

    たとえば、対話型セッションで、プラグインで定義されているカスタム エージェントが読み込まれたことを確認するには、次のように入力します。

    Copilot prompt
    /agent
    

    プラグインで定義されているスキルが読み込まれたことを確認するには、次のように入力します。

    Copilot prompt
    /skills list
    
  4. プラグインのコンポーネントによって提供される機能を使用して、各コンポーネントが期待どおりに動作することを確認します。

  5. 必要に応じて、プラグインの開発を繰り返します。

    重要

    プラグインをインストールすると、そのコンポーネントがキャッシュされ、Copilot CLI は後続のセッションでキャッシュから読み取ります。 ローカル プラグインに加えられた変更を反映するには、もう一度インストールします。

    Shell
    copilot plugin install ./my-plugin
    
  6. テストが完了したら、次のように入力してプラグインのローカル バージョンをアンインストールできます。

    Shell
    copilot plugin uninstall NAME
    

    プラグインディレクトリへのパスではなく、プラグインのNAMEのプラグインのplugin.jsonマニフェストのnameフィールドの値を使用します。

プラグインの評価を追加する

プラグイン コンテキストをエージェント型インフラストラクチャとして扱います。 プラグインがサポートすることを意図した動作の評価を追加し、プラグインの指示、ツール、またはその他のコンポーネントを変更するときに、それらの評価を実行します。

プラグインを配布する

プラグインを他のユーザーと共有するには、それをマーケットプレースに追加してください。 「GitHubでのプラグイン マーケットプレースの作成と共有」を参照してください。

リポジトリの既定設定で、プロジェクトに対してあなたのプラグインを有効にすることができます。 メンバーはこれらの既定値をローカルでオーバーライドできますが、エンタープライズ管理の設定ではプラグインを必須にしたりブロックしたりでき、常に優先されます。

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