命令列工具
github/copilot-sdk avatar
github/copilot-sdk

GitHub Copilot SDK:用六種语言调用 Copilot CLI 代理

用於將 GitHub Copilot Agent 整合到應用程式和服務中的多平台 SDK。

10,479 個 Star1,451 個 ForkJavaMIT
GitHub

秒懂

它是什麼?
Copilot SDK 通過 JSON-RPC 驱動 Copilot CLI 服務器模式,把代理规划、工具调用與檔案编辑能力嵌入 Node.js、Python、Go、.NET、Java 和 Rust 應用。 聚焦本專案的實際功能、技術入口、部署條件、資料流、版本變化與授權邊界,並依官方 README 所列能力判斷適用工作情境和不適合的替代用途。
適合誰用?
適合已经有 Copilot 订閱或明确采用 BYOK,並希望在應用內编排 CLI 代理的開發團隊;不適合只想引入一個脱离 CLI 和账號體系的纯模型客戶端。先分別驗證 OAuth、環境變量和 BYOK 的认證路径,确认 Go、Java、Rust 環境能找到 copilot,再用權限處理器拒绝一次工具调用以檢查應用的控製边界。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫在最近一天內有新的提交。
用什麼語言寫的?
主要是 Java(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

github-copilot-sdk-deep-analysis|六種语言绑定共享一条 CLI 链路

github-copilot-sdk-deep-analysis|六種语言绑定共享一条 CLI 链路 的專案脈絡:README 將 GitHub Copilot SDK 描述為一組庫,面向 Node.js/TypeScript、Python、Go、.NET、Rust 和 Java。它暴露了 Copilot CLI 背後的同一引擎,一個已经過生產測試的代理執行時,應用程序可以以编程方式调用。README 對分工的說明是:你定義代理行為,Copilot 负責规划、工具调用、檔案编辑等。倉庫元資料將 Java 標為主要语言,但 README 覆盖了全部六種语言。

github-copilot-sdk-deep-analysis|六種语言绑定共享一条 CLI 链路:针對六種语言绑定共享一条 CLI 链路,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

github-copilot-sdk-deep-analysis|JSON-RPC 與 CLI 進程的职責边界

github-copilot-sdk-deep-analysis|JSON-RPC 與 CLI 進程的职責边界 的專案脈絡:架構部分展示了一条简單的链路:你的應用、SDK 客戶端、JSON-RPC、Copilot CLI(服務器模式)。所有 SDK 都通過 JSON-RPC 與 Copilot CLI 服務器通信。SDK 自動管理 CLI 進程生命周期。README 還提到可以連接外部 CLI 服務器,具體說明在 Getting Started Guide 中。它沒有描述 JSON-RPC 的消息格式或協議细节,這些內容需要查看链接的文檔。

github-copilot-sdk-deep-analysis|JSON-RPC 與 CLI 進程的职責边界:针對JSON-RPC 與 CLI 進程的职責边界,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

github-copilot-sdk-deep-analysis|OAuth、環境變量和 BYOK 的差异

github-copilot-sdk-deep-analysis|OAuth、環境變量和 BYOK 的差异 的專案脈絡:FAQ 列出了四種认證方法:GitHub 登錄用戶(使用 copilot CLI 登錄時保存的 OAuth 凭據)、OAuth GitHub App(传入用戶令牌)、環境變量(COPILOT_GITHUB_TOKEN、GH_TOKEN、GITHUB_TOKEN)以及 BYOK(自带密钥,使用你自己來自 OpenAI、Microsoft Foundry、Anthropic 等受支援提供商的 API 密钥)。

github-copilot-sdk-deep-analysis|OAuth、環境變量和 BYOK 的差异:除非使用 BYOK,否则需要 GitHub Copilot 订閱。BYOK 僅支援基於密钥的认證,不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。

github-copilot-sdk-deep-analysis|OAuth、環境變量和 BYOK 的差异:针對OAuth、環境變量和 BYOK 的差异,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

github-copilot-sdk-deep-analysis|Node 到 Rust 的 CLI 打包分叉

github-copilot-sdk-deep-analysis|Node 到 Rust 的 CLI 打包分叉 的專案脈絡:對於 Node.js、Python 和 .NET SDK,Copilot CLI 会自動作為依赖打包,無需單独安裝。對於 Go、Java 和 Rust,CLI 預設不会打包,需要手動安裝或确保 copilot 在 PATH 中。Go 和 Rust 還提供應用級 CLI 打包功能。README 還提到可以覆盖 CLI 二進製檔案或連接外部服務器,各语言的详细选項见對應 SDK README。

github-copilot-sdk-deep-analysis|Node 到 Rust 的 CLI 打包分叉:针對Node 到 Rust 的 CLI 打包分叉,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

github-copilot-sdk-deep-analysis|工具權限、代理技能與模型查詢

github-copilot-sdk-deep-analysis|工具權限、代理技能與模型查詢 的專案脈絡:預設情况下,SDK 暴露 Copilot CLI 的第一方工具,類似以 --allow-all 執行 CLI。工具執行仍受各 SDK 權限處理器控製,應用可以批準、拒绝或自定義工具调用。也可以通過客戶端选項启用或禁用特定工具。自定義代理、技能和工具通過實現自己的逻辑來支援。SDK 支援 Copilot CLI 可用的所有模型,並暴露一個方法在執行時返回可用模型。README 沒有列出這些模型,也沒有給出該方法在各语言中的名稱。

github-copilot-sdk-deep-analysis|工具權限、代理技能與模型查詢:针對工具權限、代理技能與模型查詢,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

github-copilot-sdk-deep-analysis|正式 SDK 與社区绑定的区別

github-copilot-sdk-deep-analysis|正式 SDK 與社区绑定的区別 的專案脈絡:README 稱 SDK 已正式發布並遵循语義化版本控製,變更記錄在 CHANGELOG.md。问題與功能請求通過 GitHub Issues 提交。倉庫元資料显示有 217 個開放问題,但 README 本身沒有提及數字。README 還列出了两個非官方、社区維護的 SDK,分別用於 Clojure 和 C++,並声明它们不受 GitHub 支援,使用風險自负。

github-copilot-sdk-deep-analysis|正式 SDK 與社区绑定的区別:针對正式 SDK 與社区绑定的区別,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

github-copilot-sdk-deep-analysis|MIT 程式碼許可不等於服務承诺

github-copilot-sdk-deep-analysis|MIT 程式碼許可不等於服務承诺 的專案脈絡:倉庫采用 MIT 授權條款,版權归 GitHub, Inc. 所有。授權條款授予使用、複製、修改、合並、發布、分發、再許可和出售軟件副本的權利,前提是包含上述版權声明和許可声明。軟件按原樣提供,不附带任何明示或暗示的担保,包括適销性、特定用途適用性和不侵權。授權條款文本沒有提及支援、安全保證或生產就绪,這些都不是授權條款的承诺。README 中關於 SDK 已生產就绪的陈述與授權條款条款是分開的。

github-copilot-sdk-deep-analysis|MIT 程式碼許可不等於服務承诺:针對MIT 程式碼許可不等於服務承诺,應把 README 已寫明的輸入、輸出和限製作為驗收边界。SDK 的關键取舍是進程边界:應用通過各语言客戶端發 JSON-RPC,CLI 负責代理執行時,SDK 负責 CLI 生命周期。Node.js、Python、.NET 会自動带 CLI,Go、Java、Rust 預設要求 PATH 或手動安裝;BYOK 也不支援 Microsoft Entra ID、托管標识和第三方身份提供程序。這只能說明文檔覆盖的檢查点,不能替代專案沒有提供的性能、兼容性或安全結論。

編輯結論

適合已经有 Copilot 订閱或明确采用 BYOK,並希望在應用內编排 CLI 代理的開發團隊;不適合只想引入一個脱离 CLI 和账號體系的纯模型客戶端。先分別驗證 OAuth、環境變量和 BYOK 的认證路径,确认 Go、Java、Rust 環境能找到 copilot,再用權限處理器拒绝一次工具调用以檢查應用的控製边界。

官方來源

  1. Official README
  2. Project repository
  3. Release notes
社群筆記

社群筆記