Madogiwa Blog

主に技術系の学習メモに使っていきます。

GitHub Copilot CLI向けの自作プロンプトをpluginとしてGitHubリポジトリで配布するメモ📝

はじめに

以下のリポジトリでGitHub Copilot CLI向けの自作プロンプトをpluginとしてGitHubリポジトリで配布してみたので、その手順をまとめました!

github.com

最近GitHub Copilot CLIを色々使っているのですが、CladeCodeのpluginのようにGitHugb Copilot CLIにもpluginの機能があり、plugin等を配布しているAwesome GitHub Copilotというリポジトリもあるのですが、、、、

GitHub Copilot CLIはまだPublic Previewということもあり、公式ドキュメント等でまだ作り方や配布方法が詳しく記載されていない様なので、awescome-copilotの中身を参考にしつつ、実際に自分で以下にcopilot cliのplugin等を公開するリポジトリを作ってみたので方法をメモしておきます📝

本題

pluginを配布するリポジトリ構成

最低限必要なのは.github/plugin/marketplace.jsonと、plugins/配下にpluginの定義をMarkdownで書いたファイルを置くだけの様です。

root
├── .github/
│       └── plugin/
│               └── marketplace.json
└── plugins/
    └── plugin-name/  # プラグインの本体
        ├── .github/
        │      └── plugin/
        │              └── plugin.json  # プラグインのメタ情報
        ├── skills/ # プラグインで配布するスキル (あれば)
        │       └── skill-name/
        │               └── SKILL.md
        ├── agents/  # プラグインで配布するエージェント(あれば)
        ├── instructions/  # プラグインで配布する命令書 (あれば)
        ├── README.md  # プラグインの説明やインストール方法など
         ...             # その他(例: ドキュメント、サンプルコードなど)

この構成だけで「プラグインの中身」としてCopilot CLIが認識してくれるようでした🎉

ファイルのサンプル

特に重要なのは.github/plugin/marketplace.jsonと、plugins/xxx/.github/plugin/plugin.jsonの2点です。 この2点をもとにGitHub Copilot CLIが「このリポジトリはプラグイン集で、plugins/配下のディレクトリはそれぞれプラグインとして認識する」という挙動になる模様 👀

.github/plugin/marketplace.json

{
  "name": "my-agents-collection",
  "metadata": {
    "description": "A collection of prompts for AI agents that I have created.",
    "version": "0.0.1",
    "pluginRoot": "./plugins"
  },
  "owner": {
    "name": "your name",
    "email": "your email"
  },
  "plugins": [
    {
      "type": "plugin",
      "name": "plugin-name",
      "description": "A plugin that provides ...",
      "path": "./plugins/plugin-name"
    }
  ]
}

plugins/plugin-name/.github/plugin/plugin.json

{
  "name": "plugin-name",
  "description": "A plugin that provides ...",
  "version": "0.0.0",
  "author": {
    "name": "Your Name"
  },
  "repository": "https://github.com/owner/repo",
  "license": "MIT"
}

marketplace登録とインストール

リポジトリをmarketplaceとして登録すると、そこからプラグインを以下のようにinstallできるようになります📥

# コレクション(リポジトリ)をmarketplaceに追加
copilot plugin marketplace add owner/repo

# 例: プラグインをインストール
copilot plugin install plugin-name@repo

ちなみに試してないですがprivateなリポジトリもサポートしているようです 👀

github.com

おわりに

とりあえず手探りではありますが、上記のような構成でリポジトリを作成し、marketplaceに登録することで、GitHub Copilot CLI向けのプラグインを配布できるようになりました🎉

プロンプト周りを再利用したり、チームとして共有したりするのに便利そうなので汎用性の高いプロンプトや、特定の用途に特化したプロンプトなどはpluginとしてまとめて配布できると良さそうですね 👍

参考リンク