Sign inSign up

kukuqi/copilot-api

By kukuqi

•Updated about 1 year ago

Image
0

394

kukuqi/copilot-api repository overview

⚠️ 重要提示
本项目为 GitHub Copilot API 的逆向代理。GitHub 官方并不支持,可能会随时失效,请谨慎使用。

⚠️ GitHub 安全提醒
大量自动化或脚本化使用 Copilot(如通过工具快速、批量请求)可能触发 GitHub 的反滥用机制。
你可能会收到 GitHub 安全团队的警告,严重时可能导致 Copilot 临时停用。
GitHub 明确禁止用其服务器进行“过度自动化批量操作”或任何加重基础设施负担的行为。
请务必阅读:


说明:如果你已在使用 opencode⁠,则无需本项目;Opencode 已内置 GitHub Copilot 支持。


⁠项目概览

本代理将 GitHub Copilot API 逆向封装为兼容 OpenAI 与 Anthropic 的服务。
借助它,你可以把 任何支持 OpenAI Chat Completions 或 Anthropic Messages API 的工具(包括 Claude Code⁠)连接到 GitHub Copilot。

⁠功能特性

  • 双协议兼容:同时提供 OpenAI 风格(/v1/chat/completions、/v1/models、/v1/embeddings)与 Anthropic 风格(/v1/messages)端点。
  • Claude Code 一键集成:只需加 --claude-code 参数即可生成启动 Claude Code 所需的完整命令。
  • 用量看板:内置网页仪表盘,实时查看 Copilot 调用量、配额与统计。
  • 速率限制:通过 --rate-limit 控制调用间隔,--wait 可在触发限速时自动等待而非报错。
  • 手动审核:开启 --manual 后,每次请求需手动确认,精细控制用量。
  • Token 可见:调试时可用 --show-token 显示 GitHub 与 Copilot Token。
  • 灵活认证:支持交互式登录或直接传入 GitHub Token(适合 CI/CD)。
  • 多账户类型:个人、商业、企业版 Copilot 均可使用。

⁠演示视频

https://github.com/user-attachments/assets/7654b383-669d-4eb9-b23c-06d7aefee8c5⁠

⁠前置条件

  • Bun ≥ 1.2.x
  • 已订阅 GitHub Copilot(个人/商业/企业均可)

⁠安装依赖

bun install

⁠Docker 用法

⁠1. 构建镜像
docker build -t copilot-api .
⁠2. 运行容器(持久化 Token)
# 在宿主机创建目录保存 GitHub Token
mkdir -p ./copilot-data

# 启动容器并挂载目录,重启后 Token 仍保留
docker run -p 4141:4141 -v $(pwd)/copilot-data:/root/.local/share/copilot-api copilot-api

宿主机 ./copilot-data 与容器内 /root/.local/share/copilot-api 映射,确保 Token 持久化。

⁠Docker + 环境变量
# 构建时直接写入 Token(不推荐公开镜像)
docker build --build-arg GH_TOKEN=你的_github_token -t copilot-api .

# 运行时传入 Token
docker run -p 4141:4141 -e GH_TOKEN=你的_github_token copilot-api

# 运行时附加更多参数
docker run -p 4141:4141 -e GH_TOKEN=你的_token copilot-api start --verbose --port 4141
⁠Docker Compose 示例
version: "3.8"
services:
  copilot-api:
    build: .
    ports:
      - "4141:4141"
    environment:
      - GH_TOKEN=你的_github_token
    restart: unless-stopped

镜像特性:多阶段构建、非 root 用户、健康检查、固定基础镜像版本。

⁠npx 一行启动

# 最新版
npx copilot-api@latest start

# 指定端口
npx copilot-api@latest start --port 8080

# 仅做认证
npx copilot-api@latest auth

⁠命令结构

新版采用子命令设计:

  • start 启动代理服务器(如未登录会先认证)
  • auth 仅执行 GitHub 认证流程(生成 Token 供 --github-token 使用)
  • check-usage 直接在终端查看当前用量与配额(不启动服务器)
  • debug 输出诊断信息(版本、路径、认证状态等)

⁠命令行参数

⁠start 子命令
参数说明默认值简写
--port监听端口4141-p
--verbose详细日志false-v
--account-type账户类型:individual / business / enterpriseindividual-a
--manual手动确认每条请求false无
--rate-limit请求间隔(秒)无-r
--wait触发限速时等待而非报错false-w
--github-token直接提供 GitHub Token(需先用 auth 生成)无-g
--claude-code生成启动 Claude Code 的完整命令false-c
--show-token显示获取到的 Token(调试用)false无
⁠auth 子命令
参数说明默认值简写
--verbose详细日志false-v
--show-token认证后显示 Tokenfalse无
⁠debug 子命令
参数说明默认值简写
--json以 JSON 输出诊断信息false无

⁠API 端点

服务器同时提供 OpenAI 与 Anthropic 兼容端点,方便不同客户端接入。

⁠OpenAI 兼容端点
端点方法说明
POST /v1/chat/completionsPOST创建聊天补全
GET /v1/modelsGET列出可用模型
POST /v1/embeddingsPOST创建文本向量
⁠Anthropic 兼容端点
端点方法说明
POST /v1/messagesPOST创建消息回复
POST /v1/messages/count_tokensPOST计算消息 Token 数
⁠用量监控端点
端点方法说明
GET /usageGET获取 Copilot 用量统计
GET /tokenGET获取当前使用的 Copilot Token

⁠使用示例

⁠npx 一行示例
# 基本启动
npx copilot-api@latest start

# 自定义端口 + 详细日志
npx copilot-api@latest start --port 8080 --verbose

# 商业版账户
npx copilot-api@latest start --account-type business

# 企业版账户
npx copilot-api@latest start --account-type enterprise

# 每条请求手动确认
npx copilot-api@latest start --manual

# 限速:每 30 秒最多 1 次请求
npx copilot-api@latest start --rate-limit 30

# 限速时等待而非报错
npx copilot-api@latest start --rate-limit 30 --wait

# 直接提供 GitHub Token
npx copilot-api@latest start --github-token ghp_你的_TOKEN

# 仅认证
npx copilot-api@latest auth --verbose

# 终端查看用量
npx copilot-api@latest check-usage

# 调试信息
npx copilot-api@latest debug --json

⁠用量仪表盘(Usage Viewer)

启动服务器后,控制台会显示仪表盘 URL,例如:

https://ericc-ch.github.io/copilot-api?endpoint=http://localhost:4141/usage
  1. 复制该地址到浏览器即可查看。
  2. 仪表盘功能:
    • 自动拉取本地 /usage 数据
    • 配额进度条(Chat、Completions 等)
    • 完整 JSON 详情
    • 支持 URL 参数切换数据源(便于分享/书签)

⁠与 Claude Code 集成

本代理可为 Claude Code⁠ 提供后端。

⁠方式一:交互式 --claude-code
npx copilot-api@latest start --claude-code

按提示选择主模型和轻量模型后,会自动复制一条完整命令到剪贴板。在新终端粘贴运行即可启动 Claude Code。

⁠方式二:手动配置 settings.json

在项目根目录创建 .claude/settings.json,写入:

{
  "env": {
    "ANTHROPIC_BASE_URL": "http://localhost:4141",
    "ANTHROPIC_AUTH_TOKEN": "dummy",
    "ANTHROPIC_MODEL": "gpt-4.1",
    "ANTHROPIC_SMALL_FAST_MODEL": "gpt-4.1"
  }
}

更多选项见官方文档:

⁠源码运行

⁠开发模式
bun run dev
⁠生产模式
bun run start

⁠使用建议

  • 避免限速/封号:
    • --manual:每条请求手动确认
    • --rate-limit <秒>:设置最小调用间隔
    • --wait:限速时等待恢复而非报错
  • 商业/企业版:使用 --account-type business 或 enterprise 以匹配 GitHub 路由策略。

Tag summary

Content type

Image

Digest

sha256:08633aa3a…

Size

57.9 MB

Last updated

about 1 year ago

docker pull kukuqi/copilot-api