Appearance
Copilot SDK 让你用 npm 包快速接入 Copilot 的 AI 能力,构建自定义应用。安装 Node.js 18+,用 Copilot CLI 认证,安装 @github/copilot-sdk,10 行代码发送第一个 Prompt 并获得流式响应。
GitHub Copilot SDK 快速入门:5 分钟构建你的第一个 AI 应用
前提条件
- Node.js 18 或更高版本
- 已安装 Copilot CLI(
gh copilot)并完成认证 - 有效的 GitHub Copilot 订阅(或使用 BYOK 方式自带 API Key)
安装
bash
npm install @github/copilot-sdk tsxtsx 是可选的 TypeScript 运行器,方便直接运行 .ts 文件而无需编译。
第一个 Prompt
typescript
import { createSession } from '@github/copilot-sdk'
const session = await createSession()
const response = await session.sendPrompt({
messages: [
{ role: 'user', content: '用 TypeScript 写一个读取 JSON 文件的函数' }
]
})
console.log(response.content)实现流式输出
对于长响应,使用流式接收更好的用户体验:
typescript
import { createSession } from '@github/copilot-sdk'
const session = await createSession()
// 发送 Prompt 并订阅事件
await session.sendPrompt({
messages: [
{ role: 'user', content: '解释一下 async/await 和 Promise 的区别' }
]
})
// 监听每个文字 chunk
session.on('assistant.message_delta', (event) => {
process.stdout.write(event.delta)
})
// 监听完成事件
session.on('session.idle', () => {
console.log('\n[响应完成]')
})结构说明
Copilot SDK 的工作原理:
你的应用 → @github/copilot-sdk → Copilot CLI(JSON-RPC)→ Copilot AI 服务SDK 通过 JSON-RPC 与本地的 Copilot CLI 通信,CLI 负责认证和与 GitHub AI 服务的实际通信。这意味着:
- 认证在 CLI 层处理,应用代码不需要直接处理 token
- 可以使用 BYOK 方式替换底层 AI 提供商(见 BYOK 配置指南)
选择适合你的配置路径
| 场景 | 推荐方式 |
|---|---|
| 个人/爱好项目 | 本地 CLI 认证(最简单) |
| 内部工具/内网应用 | GitHub OAuth 或后端服务配置 |
| SaaS 产品(服务多用户) | GitHub OAuth App 或 BYOK |
| 不想依赖 Copilot 订阅 | BYOK(自带 OpenAI/Anthropic 等 API Key) |
详细配置路径见 SDK 配置路径选择指南。
与 Claude Code SDK 的对比
Claude Code 提供类似的 AI 代理 SDK,专为 Anthropic 生态设计;Copilot SDK 的优势是直接集成 GitHub 生态(仓库上下文、PR、Issue),并且通过 BYOK 也可以接入 Anthropic 的模型。如果你的应用强依赖 GitHub 工作流,Copilot SDK 更合适。
常见问题
Q: Copilot SDK 支持哪些编程语言?
A: SDK 本身是 npm 包(JavaScript/TypeScript),但因为通过本地 Copilot CLI 通信,理论上任何能调用子进程或 JSON-RPC 的语言都能集成。官方目前以 TypeScript 为主要示例语言。
Q: 不订阅 Copilot 能用 SDK 吗?
A: 可以,通过 BYOK(Bring Your Own Key)方式,使用自己的 OpenAI、Anthropic 等 API Key,不需要 GitHub Copilot 订阅。
Q: SDK 有速率限制吗?
A: 受 Copilot 订阅的 Premium Request 配额限制。BYOK 方式则受对应 AI 提供商的 API 速率限制。