Skip to main content

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

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

イントロダクション

プラグインは、 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 ディレクトリから取得されます。

プラグインの作成

  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"]
}

スキーマでは、最上位フィールドとして $schemanameversiondescriptionauthorhomepagerepositorylicensekeywords、および extensions のみを使用できます。 不明な最上位レベルのフィールドは報告され、無視されます。 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環境変数を提供し、argsenv値、およびcwd${PLUGIN_ROOT}${PLUGIN_DATA}を拡張します。

  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. 必要に応じて、プラグインの開発を繰り返します。

    重要

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

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

    Shell
    copilot plugin uninstall NAME
    

    メモ

    プラグインをアンインストールするには、プラグインのディレクトリへのパスではなく、プラグインのname マニフェスト ファイルのplugin.json フィールドで指定されているプラグインの名前を使用します。

プラグインの配布

プラグインを配布するには、それをマーケットプレースに追加します。 「用のプラグイン マーケットプレースを作成する GitHub Copilot CLI」を参照してください。

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