📚 Copilot Cowork 開発シリーズ
- なぜ作るのか — 調査と設計判断 ← 今ここ
- Electron + React + SDK で土台を組む
- C# で業務向けに拡張する設計
- 途中状態の見せ方と入れ子実行
最初に結論を書きます。
私はいま、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 つを順番に書くつもりです。
- なぜ Copilot SDK を軸にしたか
- Electron + React で UI と IPC をどう組んだか
- 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をご覧ください。