Skip to main content

Copilot SDK のはじめに

Copilot SDK をインストールし、最初のメッセージを送信する方法について説明します。

この機能を使用できるユーザーについて

GitHub Copilot SDK はすべてのCopilotプランで利用可能です。

メモ

Copilot SDK は現在テクニカル プレビュー にあります。 機能と可用性は変更される場合があります。

GitHub Copilot SDK を使用すると、GitHub Copilot を利用して、お好みのプログラミング言語でアプリケーションを構築できます。 このガイドでは、 npmを使用して SDK をインストールし、最初のメッセージを送信し、ストリーミング応答を追加します。

他の言語の詳細と手順については、「 をインストールする」を参照してください。

[前提条件]

開始する前に、 Node.js 18 以降がインストールされていることを確認してください。

認証

          [AUTOTITLE](/copilot/how-tos/copilot-cli/install-copilot-cli) の指示に従って、GitHub Copilot CLI(コマンドラインインターフェース) でインストールおよび認証します。 これにより、SDK は GitHub アカウントにアクセスして、Copilot を使用できるようになります。
  1. Copilot CLI がインストールされ、動作していることを確認します。

    Bash
    copilot --version
    

インストール作業

  1. 新しいディレクトリを作成し、projectを初期化します。

    Bash
    mkdir copilot-demo && cd copilot-demo
    npm init -y --init-type module
    
  2. SDK と TypeScript ランナーをインストールします。

    Bash
    npm install @github/copilot-sdk tsx
    

最初のメッセージを送信する

  1. 新しいファイル index.ts を作成し、次のコードを追加します。 これにより、1 つのプロンプトが Copilot に送信され、応答が出力されます。

    TypeScript
    import { CopilotClient } from "@github/copilot-sdk";
    
    const client = new CopilotClient();
    const session = await client.createSession({ model: "gpt-4.1" });
    
    const response = await session.sendAndWait({ prompt: "What is 2 + 2?" });
    console.log(response?.data.content);
    
    await client.stop();
    process.exit(0);
    
  2. コードを実行します。

    Bash
    npx tsx index.ts
    

この例では:

  •         **
            `CopilotClient()`
            ** は、Copilot CLI への接続を管理する新しいクライアントを作成します。
    
  •         **
            `createSession()`
            ** は、指定したモデルとの新しい会話セッションを開始します。
    
  •         **
            `sendAndWait()`
            ** はプロンプトを送信し、完全な応答を待ってから戻ります。
    

ストリーミング応答を追加する

完全な応答を待つ代わりに、生成されたとおりにストリーミングできます。 これは、リアルタイムで出力を表示する長い応答や対話型アプリケーションに役立ちます。

  1.        `index.ts`を次のコードで更新して、応答チャンクを受信して出力します。
    
    TypeScript
    import { CopilotClient } from "@github/copilot-sdk";
    
    const client = new CopilotClient();
    const session = await client.createSession({
        model: "gpt-4.1",
        streaming: true,
    });
    
    // Listen for response chunks
    session.on("assistant.message_delta", (event) => {
        process.stdout.write(event.data.deltaContent);
    });
    session.on("session.idle", () => {
        console.log(); // New line when done
    });
    
    await session.sendAndWait({ prompt: "Tell me a short joke" });
    
    await client.stop();
    process.exit(0);
    
  2. コードを実行します。

    Bash
    npx tsx index.ts
    

ストリーミングが有効になっている場合、応答は生成されると増分的に表示されます。 イベントをサブスクライブして、各チャンクをリアルタイムで処理できます。

  •         **
            `assistant.message_delta`
            ** は、生成された応答の各チャンクに対してトリガーされます。
    
  •         **
            `session.idle`
            ** は、応答が完了し、セッションが次のメッセージの準備ができたときに発生します。
    

イベント サブスクリプションメソッド

SDK には、イベントをサブスクライブするための次のメソッドが用意されています。

  •         **on(handler)**: すべてのイベントをサブスクライブします。 サブスクライブ解除関数を返します。
    
  •         **on(eventType, handler)**: 特定のイベントの種類をサブスクライブします。 サブスクライブ解除関数を返します。
    

次のコードを追加して、イベントをサブスクライブし、不要になったときにサブスクライブを解除 index.ts

TypeScript
// Subscribe to all events
const unsubscribeAll = session.on((event) => {
    console.log("Event:", event.type);
});

// Subscribe to specific event type
const unsubscribeIdle = session.on("session.idle", (event) => {
    console.log("Session is idle");
});

// Later, to unsubscribe:
unsubscribeAll();
unsubscribeIdle();

次のステップ

Copilot SDK を使って開始を続けるには、github/copilot-sdk リポジトリで参照してください。