Xcode 26如何使用 Agentic Coding 与 GitHub Copilot#

作者:Bastián Véliz Vega · 7 分钟阅读 · 2026-02-08
快速导览#
本文是为那些已经有 GitHub Copilot 并想在 Xcode 26.3 中直接使用 Agentic Coding 功能的开发者准备的实作指南。虽然存在官方插件(https://github.com/github/CopilotForXcode),但本文介绍如何在不借助中间插件的情况下,直接把 Copilot 的模型通过本地代理暴露给 Xcode 使用。
安装前提#
- macOS Tahoe 26.2 或更高
- Homebrew
- Docker(Docker Desktop 或 OrbStack)
- Xcode 26.3
- 在 Xcode 中已安装 Codex 与 Claude Agent
- Visual Studio Code(用于查看可用模型)
可用模型#
可用模型取决于你 GitHub Copilot 帐号类型(个人或企业)及你在 Copilot 设置中启用的模型。以下为作者示例中可用的模型列表:
- gemini-2.5-pro
- gemini-3-flash-preview
- gemini-3-pro-preview
- gpt-4.1
- gpt-4o
- gpt-5
- gpt-5-mini
- gpt-5-codex
- gpt-5.1
- gpt-5.1-codex
- gpt-5.1-codex-max
- gpt-5.1-codex-mini
- gpt-5.2
- gpt-5.2-codex
- grok-code-fast-1
- claude-sonnet-4.5
- claude-opus-4.5
- claude-opus-4.6
- claude-haiku-4.5
LiteLLM 代理简介#
LiteLLM proxy 可以把像 GitHub Copilot 这样的服务,转换并通过行业标准的端点(例如 OpenAI 的 /v1/chat/completions、/v1/responses,以及 Anthropic 的 /v1/messages)对外提供模型接口。我们将在本地运行 LiteLLM 容器,将 GitHub Copilot 的模型通过本地 endpoint 暴露给 Xcode。
官方文档(参考):https://docs.litellm.ai/docs/simple_proxy
代理启动后,常用接口示例可见: https://litellm-api.up.railway.app/#/chat/completions
config.yaml(示例)#
下面是作者使用的 config.yaml 示例(定义了代理对外暴露的模型及映射到 GitHub Copilot 的实际模型名):
litellm_settings:
drop_params: true
set_verbose: true
x-copilot-headers: &copilot_headers
extra_headers:
editor-version: "vscode/1.85.1"
editor-plugin-version: "copilot/1.155.0"
user-agent: "GithubCopilot/1.155.0"
model_list:
- model_name: gemini-2.5-pro
litellm_params:
model: github_copilot/gemini-2.5-pro
<<: *copilot_headers
- model_name: gemini-3-flash-preview
litellm_params:
model: github_copilot/gemini-3-flash-preview
<<: *copilot_headers
- model_name: gemini-3-pro-preview
litellm_params:
model: github_copilot/gemini-3-pro-preview
<<: *copilot_headers
- model_name: gpt-4.1
litellm_params:
model: github_copilot/gpt-4.1
<<: *copilot_headers
- model_name: gpt-4o
litellm_params:
model: github_copilot/gpt-4o
<<: *copilot_headers
- model_name: gpt-5
litellm_params:
model: github_copilot/gpt-5
<<: *copilot_headers
- model_name: gpt-5-mini
litellm_params:
model: github_copilot/gpt-5-mini
<<: *copilot_headers
- model_name: gpt-5-codex
litellm_params:
model: github_copilot/gpt-5-codex
<<: *copilot_headers
- model_name: gpt-5.1
litellm_params:
model: github_copilot/gpt-5.1
<<: *copilot_headers
- model_name: gpt-5.1-codex
litellm_params:
model: github_copilot/gpt-5.1-codex
<<: *copilot_headers
- model_name: gpt-5.1-codex-max
litellm_params:
model: github_copilot/gpt-5.1-codex-max
<<: *copilot_headers
- model_name: gpt-5.1-codex-mini
litellm_params:
model: github_copilot/gpt-5.1-codex-mini
<<: *copilot_headers
- model_name: gpt-5.2
litellm_params:
model: github_copilot/gpt-5.2
<<: *copilot_headers
- model_name: gpt-5.2-codex
litellm_params:
model: github_copilot/gpt-5.2-codex
<<: *copilot_headers
- model_name: grok-code-fast-1
litellm_params:
model: github_copilot/grok-code-fast-1
<<: *copilot_headers
- model_name: claude-sonnet-4.5
litellm_params:
model: github_copilot/claude-sonnet-4.5
<<: *copilot_headers
- model_name: claude-opus-4.5
litellm_params:
model: github_copilot/claude-opus-4.5
<<: *copilot_headers
- model_name: claude-opus-4.6
litellm_params:
model: github_copilot/claude-opus-4.6
<<: *copilot_headers
- model_name: claude-haiku-4.5
litellm_params:
model: github_copilot/claude-haiku-4.5
<<: *copilot_headers
# Claude code models
- model_name: claude-sonnet-4-5-20250929
litellm_params:
model: github_copilot/claude-sonnet-4.5
<<: *copilot_headers
- model_name: claude-opus-4-5-20251101
litellm_params:
model: github_copilot/claude-opus-4.5
<<: *copilot_headers
- model_name: claude-haiku-4-5-20251001
litellm_params:
model: github_copilot/claude-haiku-4.5
<<: *copilot_headers
# End of Claude code models说明:model_name 是代理对外显示的名称,litellm_params.model 指向实际的 GitHub Copilot 模型(前缀为 github_copilot/)。对于 Claude 模型,建议使用与 Claude Agent 一致的命名以便兼容。
启动容器(run-docker.sh)#
作者给出的启动脚本如下,将在当前目录创建 github_copilot 目录用于存放认证信息,并把 config.yaml 挂载到容器中:
#!/bin/bash
set -euo pipefail
mkdir -p "$(pwd)/github_copilot"
touch "$(pwd)/github_copilot/api-key.json"
docker run \\
-e GITHUB_COPILOT_TOKEN_DIR="/app/github_copilot" \\
-e GITHUB_COPILOT_API_KEY_FILE="api-key.json" \\
-v "$(pwd)/github_copilot:/app/github_copilot" \\
-v "$(pwd)/config.yaml:/app/config.yaml" \\
-p 4000:4000 \\
ghcr.io/berriai/litellm:main-stable \\
--config /app/config.yaml --detailed_debug执行:
chmod +x run-docker.sh ./run-docker.sh
首次运行会要求进行 GitHub 设备登录授权(容器日志中会显示类似 “Please visit https://github.com/login/device and enter code ABCD-1234” 的提示),完成授权并允许 Copilot 插件后,容器会把凭据写入 github_copilot 文件夹,通常会生成:
- access_token(访问令牌)
- api-key.json(代理使用的 API key,LiteLLM 会负责续期)
代理启动后访问地址: http://localhost:4000
模型与端点兼容性#
- Claude Agent:要求模型兼容 Anthropic 的 /v1/messages API;不兼容则会失败。
- Codex(Xcode): Xcode 目前默认仅支持 OpenAI 的 /v1/chat/completions(不支持 /v1/responses)。若模型仅支持新版 /v1/responses,则在 Xcode 中会失败,这解释了为何 Xcode 下载的 Codex 版本看起来很旧。
作者对所有模型与三类端点(/v1/chat/completions、/v1/responses、/v1/messages)做了自动化测试,得到了兼容性表,结果示意图如下:

在选择用于 Claude Agent 或 Codex 的模型时,请参考此兼容性测试结果。
在 Xcode 中配置 Claude Agent#
- 在 Xcode 的 Claude Agent 插件界面填写 Anthropic API Key 时,可以输入任意字符串(代理会覆盖真正的请求地址并使用本地代理),示例画面中使用了随机值。
- 编辑本地文件(若不存在则创建):
路径:
/Users/<you>/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig/.claude.json示例内容:
{
"env": {
"ANTHROPIC_BASE_URL": "<http://localhost:4000>",
"ANTHROPIC_AUTH_TOKEN": "dummy-token"
}
}此配置会让 Claude Agent 将请求发到本地的 LiteLLM 代理(http://localhost:4000)。
- 如果要使用非 Anthropic 命名的模型(例如 gemini-3-pro-preview),还可以在:
/Users/<you>/Library/Developer/Xcode/CodingAssistant/ClaudeAgentConfig/settings.json写入:
{
"model": "gemini-3-pro-preview"
}然后在 Xcode 的 Claude Agent 设置中选择 “Default”。
更新(2026-02-27):你也可以直接在 .claude.json 中设置 ANTHROPIC_MODEL:
{
"env": {
"ANTHROPIC_MODEL": "gemini-3-pro-preview"
}
}在 Xcode 中配置 Codex#
Codex 的处理方式类似:在 Xcode 的 Codex UI 中填写任意 key(不需要真实),然后通过配置文件让 Codex 走代理。
编辑文件:
/Users/<you>/Library/Developer/Xcode/CodingAssistant/codex/config.toml示例:
model = "gpt-5.2" # 或任意兼容模型
oss_provider = "proxy"
model_provider = "proxy"
[model_providers.proxy]
name = "Copilot proxy"
base_url = "<http://localhost:4000/v1>"在 Xcode 的 Codex 设置中请选择 “Default”,让配置文件生效。注意:并非所有列出的模型在 Xcode 中都能稳定工作(例如部分 gpt-5.1-codex-max 在作者测试中并不稳定),所以以兼容性测试为准。
常见问题与提示#
- 为什么不直接使用官方插件?
- 作者认为直接在 Xcode 内使用模型(通过本地代理)更灵活,且避免某些插件版本或平台限制。
- 必须运行容器吗?
- 当前方法需要在本地或远端运行 LiteLLM 代理(容器)来桥接 Copilot 与 Xcode。
- 安全和费用
- 代理会使用你的 GitHub Copilot 订阅的模型,使用成本与 Copilot 帐号相关。请妥善保管生成的 access_token 与 api-key.json,不要泄露。
结论#
通过 LiteLLM 代理,你可以在 Xcode 26.3 中直接调用 GitHub Copilot 提供的多种模型来驱动 Claude Agent 与 Codex,从而实现 Agentic Coding 工作流。虽然需要先运行容器并完成一次 GitHub 设备授权,但这是在现阶段实现 Xcode 内部使用 Copilot 模型的有效方法。
参考阅读#
关于 MCP(Model Control Plane)相关的服务器配置与 Xcode 限制,建议参阅 XcodeBuildMCP 文档:
https://github.com/cameroncooke/XcodeBuildMCP#mcp-server-installation
作者的示例仓库:
https://github.com/bastianX6/litellm-example
原文作者信息:Bastián Véliz Vega
