Mac 配置 Claude Code CLI 调用 GitHub Copilot 踩坑实录(最终完美版)
背景
公司配备 GitHub Copilot,国内大模型效果不理想,又没有 Claude 账号,因此希望通过 Claude Code CLI 界面,直接调用 GitHub Copilot 背后的 GPT / Gemini 系列模型。
一、环境准备
1. 安装 Homebrew(国内镜像)
使用国内镜像安装,速度更快,避免官方源超时问题:
bash
/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
2. 安装 Node.js
bash
brew install node
3. 安装 Claude Code CLI
bash
npm install -g @anthropic-ai/claude-code
二、macOS 钥匙串证书问题(关键大坑)
macOS 证书存储在 钥匙串(Keychain) ,Node.js 默认不读取系统证书,会导致 HTTPS 请求报错:unable to get local issuer certificate。
1. 清理污染的 TLS 环境变量
bash
unset NODE_EXTRA_CA_CERTS SSL_CERT_FILE SSL_CERT_DIR OPENSSL_CONF NODE_OPTIONS
2. 测试 GitHub 连通性
bash
node -e "require('https').get('https://github.com',r=>console.log('github',r.statusCode)).on('error',e=>console.error(e.message))"
3. 导出系统钥匙串证书为 pem 格式
bash
mkdir -p "$HOME/.certs"
security find-certificate -a -p /System/Library/Keychains/SystemRootCertificates.keychain > "$HOME/.certs/macos-ca-bundle.pem"
security find-certificate -a -p /Library/Keychains/System.keychain >> "$HOME/.certs/macos-ca-bundle.pem"
security find-certificate -a -p "$HOME/Library/Keychains/login.keychain-db" >> "$HOME/.certs/macos-ca-bundle.pem"
4. 让 Node 加载系统证书
bash
export NODE_EXTRA_CA_CERTS="$HOME/.certs/macos-ca-bundle.pem"
5. 再次测试连通性
bash
node -e "require('https').get('https://github.com',r=>console.log('github',r.statusCode)).on('error',e=>console.error(e.message))"
6. 永久写入环境变量
bash
echo 'export NODE_EXTRA_CA_CERTS="$HOME/.certs/macos-ca-bundle.pem"' >> "$HOME/.zshrc"
source "$HOME/.zshrc"
三、安装并启动 copilot-api
1. 安装 copilot-api
直接安装大概率报证书不受信任,先配置 npm 证书:
bash
npm config set cafile /etc/ssl/cert.pem
再安装:
bash
npm install -g copilot-api
2. 启动 copilot-api(关键:开启 Claude Code 兼容)
bash
copilot-api start --claude-code
默认启动在:http://localhost:4141
--claude-code 核心作用:
- 自动开启 Anthropic
/v1/messages协议兼容 - 内置格式转换,无需任何第三方路由工具
- 直接支持 Gemini / GPT 全系列模型
3. 查看支持的模型列表
浏览器访问:
http://localhost:4141/v1/models
四、配置 Claude Code CLI(你指定的模型)
1. 创建配置文件
bash
mkdir -p ~/.claude && cat > ~/.claude/settings.json << 'EOF'
{
"env": {
"ANTHROPIC_BASE_URL": "http://localhost:4141",
"ANTHROPIC_AUTH_TOKEN": "dummy",
"ANTHROPIC_MODEL": "gemini-3.1-pro-preview",
"ANTHROPIC_SMALL_FAST_MODEL": "gpt-5.4",
"DISABLE_NON_ESSENTIAL_MODEL_CALLS": "1",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
}
}
EOF
2. 启动 Claude Code
bash
claude
五、为什么之前会报错 400
1. 报错信息
<-- POST /v1/messages?beta=true
ERROR Failed to create chat completions Response { status: 400 ... }
2. 根本原因
- 未加
--claude-code时,copilot-api 只提供 OpenAI 格式 - Claude Code 发送的是 Anthropic 格式
- 协议不兼容 → 直接 400
3. 真正解决方案
copilot-api start --claude-code
该参数已内置协议转换 ,不需要任何第三方路由工具。
六、最终可用流程(最简版)
-
启动 copilot-api(开启 Claude 兼容)
bashcopilot-api start --claude-code -
配置 Claude Code 指向本地 4141
-
直接运行
bashclaude
七、总结
- macOS Node.js 证书问题必须处理,否则安装/联网失败
copilot-api --claude-code是核心关键,原生支持 Anthropic 协议- 无需额外格式转换工具,无需 Claude 账号
- 模型名称必须与
http://localhost:4141/v1/models严格一致 - 可直接使用:gemini-3.1-pro-preview + gpt-5.4 等高端模型
你当前使用的模型配置
- 主模型:gemini-3.1-pro-preview
- 快速模型:gpt-5.4