1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

GitHub Copilot SDK を軸に Copilot Cowork を作る理由を整理した話

1
Posted at

📚 Copilot Cowork 開発シリーズ

  1. なぜ作るのか — 調査と設計判断 ← 今ここ
  2. Electron + React + SDK で土台を組む
  3. C# で業務向けに拡張する設計
  4. 途中状態の見せ方と入れ子実行

最初に結論を書きます。

私はいま、GitHub Copilot SDK を土台にしたデスクトップ AI ワークスペース、Copilot Cowork を作っています。2026 年 3 月 11 日時点で、少なくとも次のところまでは動いています。

  • セッションの作成、再開、削除
  • ストリーミング応答と reasoning の表示
  • tool trace、permission dialog、ask_user dialog
  • workspace 選択と添付ファイル
  • セッションごとのモデル切り替え
  • custom agent の選択
  • settings の保存と SQLite ベースのセッション管理

ここまで作る前に、自分なりに既存の AI ワークスペース系 OSS を調べました。そのうえで出した答えが、「AI の中核は Copilot SDK に任せて、自分は UI と業務拡張に集中する」 です。

この記事では、その判断に至るまでの整理をまとめます。

📋 この記事の前提

  • GitHub Copilot(Agent Mode)を使ったことがある、または興味がある
  • Electron / React / TypeScript の基本的なイメージがある(コードは読めなくてもOK)
  • 「AI チャットアプリの設計判断」に興味がある方向け
  • 前回記事: Blazor WASM ポートフォリオを爆速で構築した話

何を作りたいのか

私が欲しかったのは、単なるチャットアプリではありません。

製造業の現場で C# を使って仕事をしていると、AI に任せたい作業はコード生成だけでは足りません。

  • 仕様や調査メモを横断しながら会話したい
  • ローカルの作業フォルダを前提にしたい
  • 将来的には資料作成やデータ整理までつなげたい
  • ターミナル前提ではなく、業務中にそのまま開ける UI が欲しい

言い換えると、欲しかったのは「CLI を置き換えるもの」ではなく、Copilot の runtime を業務の流れに乗せるためのデスクトップ層でした。

Copilot SDK をどう見ているか

GitHub Copilot SDK は、Copilot CLI の agent runtime をプログラムから扱うための SDK です。少なくとも公開情報を追う限り、TypeScript/Node.js、Python、Go、.NET 向けの実装が用意されていて、Technical Preview として進んでいます。

私が重要だと思ったのは、ここです。

欲しい機能 Copilot SDK / CLI harness アプリ側で作るもの
セッション管理 -
ストリーミング -
tool 呼び出し -
permission / user input -
custom agent / skills / MCP 設定 -
デスクトップ UI
settings の運用 UX
業務向けの独自ツール
C# 文書生成、計測器制御

この切り分けが見えた時点で、だいぶ楽になりました。

チャットエンジンを自作しなくていい
必要なのは、その runtime を使いやすく包む UI と、業務に必要な独自拡張です。

既存 OSS を見て分かったこと

AI ワークスペース系の OSS を 10 件前後見ました。Stars 数の多いものから順に眺めつつ、特に参考になったのは次の 3 つです。

プロジェクト 学べたこと そのまま採用しなかった理由
OpenWork ワークスペースとしての完成度が高い runtime も含めて別の思想でまとまっている
Open-Claude-Cowork 外部連携や product 的な広がりが強い Claude 前提で、今回の軸とは違う
Open-Cowork Electron + React の整理が分かりやすい SDK の置き換えより、薄く作り直す方が早い

ここで分かったのは、Stars の多いプロジェクトほど runtime と UI が密結合になりやすいということです。

つまり、UI だけ借りてエンジンを Copilot SDK に差し替える、という発想は見た目ほど簡単ではありません。既存コードを理解して、不要な前提を剥がして、さらに C# 連携の境界を入れ直すなら、結果として自分で薄く組み直した方が早いと判断しました。

また、少なくとも私が調べた範囲では、GitHub Copilot SDK を主軸に据えたデスクトップ AI ワークスペースは見当たりませんでした。この一点も、作る理由として十分でした。

フォークではなく自作にした理由

1. 再実装したいのは runtime ではなく UI だった

私が欲しいのは、モデル切り替え、セッション、tool 実行、permission 処理をゼロから作ることではありません。

そこは Copilot SDK に任せたい。
自分が手を入れたいのは、

  • デスクトップとしての使い勝手
  • 設定の見せ方
  • 将来の業務ツール接続

の 3 点です。

2. C# 拡張を最初から前提にしたかった

Copilot Cowork の差別化ポイントは、将来的な C# 拡張です。

  • pptx / xlsx / docx / pdf の生成
  • 製造データの整形や集計
  • VISA や既存 Windows アプリとの連携

この境界を後から継ぎ足すより、最初から

Copilot runtime -> Electron/Node -> .NET worker

という構造を意識して組む方が自然です。

3. 余計な機能を持ち込みたくなかった

既存プロダクトは強いです。ただし、強いプロダクトほど前提も多いです。

今の私に必要なのは、マルチアカウントや巨大な統合マーケットではなく、まずは以下です。

  • ローカル作業フォルダを軸にしたチャット
  • セッション管理
  • 設定画面
  • 後から独自ツールを足せる余白

最小構成を守った方が、週 5 時間前後でも前に進めます。

4. 開発日記としても価値がある

これは発信面の理由です。

「既存アプリを少し変えた」より、
「Copilot SDK をどう捉えて、どこまでを SDK に任せ、どこからを自分で持つか」
を整理して書いた方が、あとで読み返しても価値が残ります。

Copilot Cowork の現在の設計

現時点では、次のような構成で進めています。

GitHub Copilot SDK / Copilot CLI harness
        ↓
Electron main process
  - SDK client manager
  - IPC handlers
  - settings / session persistence
        ↓
React renderer
  - chat
  - sidebar
  - trace
  - settings
        ↓
将来の拡張
  - Node custom tool registry
  - .NET worker

重要なのは、アプリは AI の代わりをするのではなく、AI の実行面を扱いやすくする層に徹することです。

この方針にすると、どこを自作してどこを任せるかが明確になります。

ここまで作って分かったこと

実際に手を動かしてみると、Copilot SDK を土台にする価値はかなり大きいです。

1. 「全部入り」を狙わなくてよくなる

チャット、ツール、permission、セッションあたりを一から揃えるのは重いです。
そこが既にあると、UI 側の改善に集中できます。

2. Electron で包む意味がはっきりする

CLI のままでも強いのですが、業務で使うなら

  • セッション一覧
  • 設定画面
  • 実行 trace の可視化
  • 添付ファイルの扱い

が常に見えていた方が扱いやすいです。

3. C# の居場所が明確になる

C# は agent runtime を置き換えるためではなく、決まった形式の成果物を安定して出すための backendとして使うのが自然です。

これは製造業寄りの業務とかなり相性がいいと見ています。

これからの記事で書くこと

このシリーズでは、次の 3 つを順番に書くつもりです。

  1. なぜ Copilot SDK を軸にしたか
  2. Electron + React で UI と IPC をどう組んだか
  3. C# 拡張をどこに差し込む設計にするか

「AI ですごいことをした」というより、限られた時間の中で、どの境界に注力すると前に進みやすいかを残していくシリーズにしたいと思っています。

まとめ

  • Copilot Cowork で自作したいのは AI そのものではなく、UI と業務拡張の層
  • Copilot SDK を使うと、セッション、ストリーミング、permission などの中核を再実装せずに済む
  • 既存 OSS は参考になるが、runtime を差し替えるより薄く自作した方が整理しやすかった
  • C# は runtime の代替ではなく、文書生成や計測器連携の backend として活かす

次回は、実際に Electron + React + Copilot SDK でどこまで組めたかを、実装ベースで書きます。


よくある質問

Q: GitHub Copilot SDK は無料で使えますか?

A: GitHub Copilot SDK は Technical Preview の段階です。利用には GitHub Copilot のサブスクリプション(Pro 以上)が必要です。SDK 自体は npm パッケージとして提供されていますが、ランタイムの利用に認証が求められます。

Q: なぜ既存の AI チャットアプリ(ChatGPT など)を使わないのですか?

A: ChatGPT や Claude は汎用チャットとしては優秀ですが、ローカルの作業フォルダを前提にしたツール実行や、将来的な C# backend との接続には向いていません。Copilot SDK は VS Code の Agent Mode と同じランタイムをプログラムから使えるため、業務ツールとの統合に適しています。

Q: Copilot Cowork のソースコードは公開していますか?

A: 開発中のため現時点では非公開ですが、ある程度整理できた段階で GitHub に公開する予定です。開発過程はこのシリーズで詳しく書いていきます。


この記事が参考になったら「いいね」で応援お願いします!
Copilot Cowork の開発は現在進行中です。次回以降も実装の迷いどころを正直に書いていきます。


📝 この記事は Zenn で最初に公開されました。
最新版はZennをご覧ください。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?