こんにちは、JS2IIUです。
2026年1月に発表されたGitHub Copilot SDKが4月にパブリックプレビューとなりました。GitHub Copilot SDKを使えばアプリケーションの中にGitHub Copilotエージェントを組み込むことができます。簡単に始める方法についてみていきましょう。今回もよろしくお願いします。
GitHub Copilot SDKを利用するための前提条件
GitHub Copilot SDKを利用するには、
- GitHub Copilot CLIがインストール済みでユーザー認証が済んでいる
copilot --versionでバージョンを確認してみてください。copilot updateで最新バージョンにアップデートすることができます
- 使いたい言語のセットアップが済んでいる
- Node.js 18+ or Python 3.11+ or Go 1.21+ or Java 17+ or .NET 8.0+
以下の手順はGitHub Copilot Chat拡張機能をセットアップしたVSCode上で実行する前提で記載しています。
GitHub Copilot SDKの仕組み
GitHub Copilot SDKは、あなたのアプリケーションとGitHub Copilot CLIの間をつなぐ橋渡し役です。すべてのSDKは、JSON-RPCというプロトコルを使ってCopilot CLIサーバーと通信します。
Your Application
↓
SDK Client
↓ JSON-RPC
Copilot CLI (server mode)処理の流れは次のとおりです。
- アプリケーションがSDKクライアントを通じてリクエスト(プロンプトなど)を送ります。
- SDKクライアントがそのリクエストをJSON-RPC形式に変換し、Copilot CLIへ転送します。
- Copilot CLIがサーバーモードで動作し、GitHub Copilotのモデルと通信して応答を返します。
SDKはCLIプロセスの起動・停止といったライフサイクルを自動的に管理してくれるため、開発者はプロセス管理を意識せずにCopilotの機能をアプリへ組み込めます。また、既に別途起動済みの外部CLIサーバーに接続することも可能です。詳細はGetting Started Guideを参照してください。
TypeScriptのサンプル
SDKインストール
まず、新しいディレクトリを作成してプロジェクトを初期化します。
mkdir copilot-demo && cd copilot-demo
npm init -y --init-type module次に、SDKとTypeScriptランナーをインストールします。
npm install @github/copilot-sdk tsxサンプルコード
以下のコードをindex.tsとして作成します。
import { CopilotClient, approveAll } from "@github/copilot-sdk";
const client = new CopilotClient();
await client.start();
const session = await client.createSession({
model: "gpt-4.1",
streaming: true,
onPermissionRequest: approveAll,
});
const response = await session.sendAndWait({ prompt: "日本の観光名所といえば?" });
console.log(response?.data.content);
await client.stop();コードを実行する:
npx tsx index.ts結果:
日本の観光名所といえば、以下のような場所が有名です:
- 東京:東京タワー、浅草寺、上野公園
- 京都:清水寺、金閣寺、伏見稲荷大社
- 大阪:大阪城、道頓堀、ユニバーサル・スタジオ・ジャパン
- 広島:原爆ドーム、宮島(厳島神社)
- 北海道:札幌時計台、小樽運河、富良野のラベンダー畑
- 沖縄:首里城、美ら海水族館
他にもたくさんありますが、これらが代表的な観光地です。サンプルコードの解説
このサンプルは、Copilot SDKを使って「CLIサーバーを起動し、セッションを作成し、プロンプトを送信して、最後に終了する」までの最小構成です。流れを順番に見ていきます。
CopilotClientを作成するconst client = new CopilotClient();でSDKクライアントを生成します。ここがCopilot CLIとの通信窓口になります。start()で通信を開始するawait client.start();を実行すると、SDKがCLIプロセスの起動や接続準備を行います。awaitを付けることで、準備完了まで待ってから次の処理に進めます。createSession()で会話セッションを作るclient.createSession({...})では、モデルや応答方式などを設定します。
model: "gpt-4.1"は利用するモデル名です。streaming: trueはストリーミング応答を有効にする設定です。onPermissionRequest: approveAllは、実行時に必要な許可リクエストを自動で承認するためのハンドラーです。
sendAndWait()でプロンプトを送信するsession.sendAndWait({ prompt: "日本の観光名所といえば?" })で質問を送り、最終的な応答が返るまで待ちます。戻り値のresponseからresponse?.data.contentを取り出して表示しています。stop()でクライアントを終了する
最後にawait client.stop();を呼び、起動したCLIプロセスや接続をクリーンに終了します。サンプルでは短い実行でも明示的に終了しておくことで、実運用時の後片付けの基本形が分かるようになっています。
このように、最初は「開始 → セッション作成 → 送信 → 終了」という4ステップを押さえると理解しやすいです。慣れてきたら、プロンプトの内容を変えたり、モデルや許可ハンドラーの設定を調整したりして、自分のアプリ向けに拡張していくのがおすすめです。
参考
最後まで読んでいただきありがとうございました。


コメント