技術資料

SkillだけのプラグインをCodexとChatGPT Workで使う

作成日:2026.10.14

Skillだけを含むHello Worldプラグインを例に、plugin.json と SKILL.md の作成、ローカルマーケットプレイスへの登録、ChatGPTデスクトップアプリのWorkとCodexからの呼び出し方を紹介します。MCPサーバーを使わない最小構成と、登録・呼び出しでつまずいたときの確認点も解説します。

今回はCodexやChatGPT Workで使える、Skillだけを含む小さなプラグインを作り、ローカルマーケットプレイスへ登録して、ChatGPTデスクトップアプリのWorkとCodexから呼び出すまでの流れを紹介します。サンプルは、指定された名前に挨拶を返す「Hello World」です。

2026年10月14日時点のOpenAI公式資料をもとに構成しています。登録画面やプラグインの動作はこの原稿では実機確認していないため、画面名や利用条件は執筆時点の資料と利用環境で確認してください。

プラグインとSkillの関係

プラグインは、SkillsやMCPサーバーなどをまとめてインストールできる単位です。Skillは、どの依頼で使うか、どの手順で進めるかを記述したファイル群です。MCPサーバーは、外部データの取得や操作をToolとして提供します。

決まった手順をモデルへ伝えるだけなら、MCPサーバーは必須ではありません。今回はSkillだけのプラグインにして、サーバー起動や認証設定がなくてもパッケージと登録の流れを試せるようにします。将来、外部サービスのデータを取得したり、実際の操作を行ったりする場合は、MCPサーバーを別途追加します。プラグインの構成と役割は、OpenAI公式のプラグイン構成も参照してください。

サンプルのディレクトリを作る

今回は、次のようなリポジトリ構成を例にします。既存の複雑なMCPサーバーをコピーせず、サンプル専用のディレクトリを用意してください。

sample-repository/
├─ .agents/
│  └─ plugins/
│     └─ marketplace.json
└─ plugins/
   └─ hello-plugin/
      ├─ plugin.json
      └─ skills/
         └─ hello-world/
            └─ SKILL.md

.agents/plugins/marketplace.jsonは、プラグインの一覧を登録するファイルです。plugins/hello-plugin/がプラグイン本体で、その中のplugin.jsonにプラグインの基本情報を記述します。Skillの指示はskills/hello-world/SKILL.mdへ置きます。

プラグインのマニフェストを書く

まず、プラグイン本体のplugin.jsonを作成します。ポータブルなAgent Plugins形式では、マニフェストをプラグインのルートへ置きます。

{
  "$schema": "https://agent-plugins.org/schemas/1.0.0/plugin.schema.json",
  "name": "hello-plugin",
  "version": "1.0.0",
  "description": "名前を指定すると短い挨拶を返す練習用プラグイン"
}

nameはプラグインを識別する名前、versionはバージョン、descriptionは機能の説明です。名前は小文字とハイフンを使った形式にします。Skillは決められたskills/ディレクトリから見つけられるため、このシンプルな構成ではマニフェストにSkillのパスを追加しません。

Codex向けの互換レイアウトでは、.codex-plugin/plugin.jsonを使う例もあります。新規のポータブルなパッケージを作る場合は、まずルートのplugin.jsonを使い、実際に利用するクライアントが求める形式を公式資料で確認してください。マニフェスト形式の詳しい説明は、OpenAI公式のプラグインパッケージ手順にあります。

Skillの指示を書く

次に、skills/hello-world/SKILL.mdを作成します。Skillには名前と説明をYAML front matterで記述し、その後に実行手順を書きます。

---
name: hello-world
description: ユーザーがHello Worldの挨拶を求めたときに、指定された名前を含む短い挨拶を返します。
---

ユーザーがHello Worldの挨拶を依頼したときに使います。

- 名前が指定されている場合は「Hello, 名前!」と返します。
- 名前が指定されていない場合は「Hello, World!」と返します。
- 挨拶以外の説明は追加しません。

descriptionには、Skillを使う場面が分かるように書きます。手順本文では入力が不足している場合や、対象外の依頼でどうするかも決めておくと、意図しない場面で使われにくくなります。Skillsの形式と作り方は、OpenAI公式のSkills作成ガイドを参照してください。

ローカルマーケットプレイスへ登録する

プラグイン本体を作成したら、リポジトリルートの.agents/plugins/marketplace.jsonに登録します。source.pathはマーケットプレイスのルートから見た相対パスです。

{
  "name": "sample-plugins",
  "interface": {
    "displayName": "サンプルプラグイン"
  },
  "plugins": [
    {
      "name": "hello-plugin",
      "source": {
        "source": "local",
        "path": "./plugins/hello-plugin"
      },
      "policy": {
        "installation": "AVAILABLE",
        "authentication": "ON_INSTALL"
      },
      "category": "Productivity"
    }
  ]
}

このファイルは、マーケットプレイスの名前と表示名、そこからインストールできるプラグインを定義します。ここでのAVAILABLEは利用者がインストールできる設定、ON_INSTALLはインストール時に認証する設定です。このSkillだけのサンプルでは外部サービスへの認証はありません。

ローカルマーケットプレイスは公開ディレクトリとは別の、開発・テスト用の登録先です。公式資料では、ChatGPTデスクトップアプリのWorkモードとCodexで利用できるローカルマーケットプレイスが案内されています。利用できる画面は環境によって異なる場合があるため、ここではデスクトップアプリを前提にします。

プラグインをインストールして呼び出す

ファイルを保存したら、ChatGPTデスクトップアプリを再起動し、Plugins Directoryで「サンプルプラグイン」のマーケットプレイスを開きます。そこからhello-pluginをインストールします。ローカルマーケットプレイス内のファイルを変更した場合も、アプリを再起動して更新を読み込ませてください。

ChatGPT Workでは新しいWorkの会話を開き、入力欄で@を入力してhello-pluginを選びます。選択後、次の依頼を送ります。

田中さんにHello Worldの挨拶をしてください。

Codexではプラグインを有効にした新しい会話を開き、Skillを明示して次のように依頼します。

$hello-world 名前を付けずにHello Worldの挨拶をしてください。

期待する応答は、それぞれ「Hello, 田中さん!」と「Hello, World!」です。実際に試すときは、指定した名前の有無で結果が変わることと、プラグインが有効になっていることを確認します。

動作しない場合に確認すること

プラグインが一覧に表示されない場合は、まずマーケットプレイスのファイルが.agents/plugins/marketplace.jsonにあるか、JSONの構文に誤りがないかを確認します。続いて、source.pathがプラグインのディレクトリを指しているか、そこにplugin.jsonがあるかを見ます。

プラグインは表示されるもののSkillが使われない場合は、インストール済みか、新しい会話で試しているかを確認します。Skillのディレクトリがskills/hello-world/SKILL.mdの形になっていること、front matterのnameとdescriptionがあり、説明に依頼内容が含まれていることも確認してください。

Skillだけのプラグインには、外部サービスへ接続するToolはありません。外部データの取得や処理を行いたい場合は、Skillの指示だけで実現できると考えず、必要なMCPサーバーや権限を別途設計しましょう。

今回は、Skillとマニフェスト、マーケットプレイスの3つを用意して、Hello Worldのプラグインを構成する手順を整理しました。まずSkillだけの小さな例を登録し、意図した依頼で使えることを確かめてから、必要に応じてMCPサーバーを追加すると、各ファイルの役割を追いやすくなります。

参考資料

この記事を書いた人

※上が私です。

奈良市を拠点に、27年以上の経験を持つフリーランスWebエンジニア、阿部辰也です。

これまで、ECサイトのバックエンド開発や業務効率化システム、公共施設の予約システムなど、多彩なプロジェクトを手がけ、企業様や制作会社様のパートナーとして信頼を築いてまいりました。

【制作会社・企業様向けサポート】
  • 専任エンジニアのいない企業様に対するシステム面の不安を解消
  • 柔軟な契約形態や短納期での対応により、急なニーズにも迅速にサポート
  • システムの企画段階から運用まで、ワンストップでのサービスを提供

Webシステムの開発やサイト改善でお困りの際は、どうぞお気軽にご相談ください。小さな疑問から大規模プロジェクトまで、最適なご提案を心を込めてさせていただきます。

ぜひ、プロフィールやWeb制作会社様向け業務案内、一般企業様向け業務案内もご覧くださいね。

VS CodeでGitHub CopilotとCodexを比較:機能の違いと使い分け

2026.10.07

VS Codeで利用するGitHub CopilotとCodexの機能と使い分けを比較します。コード補完、コード調査・修正、モデル選択、AGENTS.mdやSkillsによる指示の再利用を整理し、具体的な依頼文と変更内容を確認するポイントを紹介します。

Codex GitHub Copilot VS Code

VS Code版CodexのStopフックで応答終了をWindowsに通知する

2026.10.04

VS Code版CodexのStopフックとPowerShellを使い、最後の応答をWindows通知に表示する方法を紹介します。hooks.jsonの設定と非同期実行、日本語が文字化けした際のUTF-8による対処、通知が出ない場合の確認点をまとめます。

Codex PowerShell VS Code

CodexのGPT-6.1 SolとGPT-6 Lunaを比較:コストと使い分けの目安【2026年10月3日時点】

2026.10.03

GPT-6.1 SolとGPT-6 Lunaを、PlusでのCodex利用枠、API料金、公開ベンチマークから比較します。2026年10月3日時点の情報をもとに、日常作業はLuna、難しい調査や設計はSol Mediumを試すという使い分けと、自分の作業で費用対効果を確かめるポイントを整理します。

Codex OpenAI API

GPT-6 Sol / Lunaの性能・料金・使い分けを比較【2026年9月26日時点】

2026.09.26

2026年9月26日時点の公式情報と公開ベンチマークをもとに、GPT-6 Sol / LunaをGPT-6 AstraやGPT-5.6世代と比較します。API料金とCodexのUsageを分けて整理し、ベンチマークの見方や筆者自身のLuna利用感も交えながら、モデル選びの目安を紹介します。

Codex OpenAI API

阿部辰也へのお仕事の依頼・お問い合わせ

軽いご相談もお気軽にどうぞ!

個人情報の取り扱いについて *必須 プライバシーポリシーをご確認いただき、同意いただける場合は「同意する」にチェックをしてください。

keyboard_double_arrow_up
TOP