GitHub Copilot SDKの始め方

TypeScript
この記事は約6分で読めます。

こんにちは、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サーバーと通信します。

Plaintext
Your Application

  SDK Client
       ↓ JSON-RPC
  Copilot CLI (server mode)

処理の流れは次のとおりです。

  1. アプリケーションがSDKクライアントを通じてリクエスト(プロンプトなど)を送ります。
  2. SDKクライアントがそのリクエストをJSON-RPC形式に変換し、Copilot CLIへ転送します。
  3. Copilot CLIがサーバーモードで動作し、GitHub Copilotのモデルと通信して応答を返します。

SDKはCLIプロセスの起動・停止といったライフサイクルを自動的に管理してくれるため、開発者はプロセス管理を意識せずにCopilotの機能をアプリへ組み込めます。また、既に別途起動済みの外部CLIサーバーに接続することも可能です。詳細はGetting Started Guideを参照してください。

TypeScriptのサンプル

SDKインストール

まず、新しいディレクトリを作成してプロジェクトを初期化します。

Bash
mkdir copilot-demo && cd copilot-demo
npm init -y --init-type module

次に、SDKとTypeScriptランナーをインストールします。

Bash
npm install @github/copilot-sdk tsx

サンプルコード

以下のコードをindex.tsとして作成します。

TypeScript
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();

コードを実行する:

Bash
npx tsx index.ts

結果:

Plaintext
日本の観光名所といえば、以下のような場所が有名です:

- 東京:東京タワー、浅草寺、上野公園
- 京都:清水寺、金閣寺、伏見稲荷大社
- 大阪:大阪城、道頓堀、ユニバーサル・スタジオ・ジャパン
- 広島:原爆ドーム、宮島(厳島神社)
- 北海道:札幌時計台、小樽運河、富良野のラベンダー畑
- 沖縄:首里城、美ら海水族館

他にもたくさんありますが、これらが代表的な観光地です。

サンプルコードの解説

このサンプルは、Copilot SDKを使って「CLIサーバーを起動し、セッションを作成し、プロンプトを送信して、最後に終了する」までの最小構成です。流れを順番に見ていきます。

  1. CopilotClientを作成する
    const client = new CopilotClient(); でSDKクライアントを生成します。ここがCopilot CLIとの通信窓口になります。
  2. start()で通信を開始する
    await client.start(); を実行すると、SDKがCLIプロセスの起動や接続準備を行います。await を付けることで、準備完了まで待ってから次の処理に進めます。
  3. createSession()で会話セッションを作る
    client.createSession({...}) では、モデルや応答方式などを設定します。
  • model: "gpt-4.1" は利用するモデル名です。
  • streaming: true はストリーミング応答を有効にする設定です。
  • onPermissionRequest: approveAll は、実行時に必要な許可リクエストを自動で承認するためのハンドラーです。
  1. sendAndWait()でプロンプトを送信する
    session.sendAndWait({ prompt: "日本の観光名所といえば?" }) で質問を送り、最終的な応答が返るまで待ちます。戻り値の response から response?.data.content を取り出して表示しています。
  2. stop()でクライアントを終了する
    最後に await client.stop(); を呼び、起動したCLIプロセスや接続をクリーンに終了します。サンプルでは短い実行でも明示的に終了しておくことで、実運用時の後片付けの基本形が分かるようになっています。

このように、最初は「開始 → セッション作成 → 送信 → 終了」という4ステップを押さえると理解しやすいです。慣れてきたら、プロンプトの内容を変えたり、モデルや許可ハンドラーの設定を調整したりして、自分のアプリ向けに拡張していくのがおすすめです。

参考

最後まで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました