Windows 一键配置 Codex 接入游点逗中转站,自动识别并选择 GPT-5 模型
https://api.youdiandou.store
这是中转站地址
最近我在 Windows 上给 Codex 配置游点逗中转接口。
手动修改 config.toml 不算复杂,但每次都要处理 API Key、模型名称、配置备份,还是有点麻烦。所以我整理了一段 PowerShell 脚本,直接复制运行就能完成配置。
这段脚本会自动做几件事:
- 隐藏输入游点逗 SK
- 把 SK 保存到 Windows 用户环境变量
- 请求接口获取当前可用模型
- 按优先级自动选择 GPT-5 系列模型
- 自动备份原来的 Codex 配置
- 写入新的中转站配置
API Key 不会直接写进 config.toml,配置文件里只保存环境变量名称。
使用前准备
电脑需要满足两个条件:
- 已安装 Codex
- 已经从游点逗后台获取 SK
本文使用的中转地址是:
https://api.youdiandou.store/v1
如果平台以后更换了接口地址,只需要修改脚本开头的 $BaseUrl。
一键配置脚本
在 Windows 中打开 PowerShell。
不需要切换目录,直接完整复制下面的脚本,粘贴到 PowerShell 后按回车运行:
# 游点逗中转地址
$BaseUrl = "https://api.youdiandou.store/v1"
$EnvName = "YOUDIANDOU_API_KEY"
$ConfigDir = "$env:USERPROFILE\.codex"
$ConfigFile = "$ConfigDir\config.toml"
# 兼容部分旧版 Windows PowerShell 的 HTTPS 请求
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
# 1. 输入 SK,输入过程不会显示字符
$SecureKey = Read-Host "请粘贴游点逗 SK,然后按回车" -AsSecureString
$Ptr = [Runtime.InteropServices.Marshal]::SecureStringToBSTR($SecureKey)
try {
$ApiKey = [Runtime.InteropServices.Marshal]::PtrToStringBSTR($Ptr)
}
finally {
[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($Ptr)
}
if ([string]::IsNullOrWhiteSpace($ApiKey)) {
throw "SK 不能为空"
}
# 2. 保存到 Windows 用户环境变量
[Environment]::SetEnvironmentVariable(
$EnvName,
$ApiKey,
"User"
)
# 让当前 PowerShell 窗口立即生效
$env:YOUDIANDOU_API_KEY = $ApiKey
Write-Host "SK 已保存到环境变量:$EnvName" -ForegroundColor Green
# 3. 查询中转站支持的模型
$Headers = @{
Authorization = "Bearer $ApiKey"
}
try {
$Result = Invoke-RestMethod `
-Uri "$BaseUrl/models" `
-Headers $Headers `
-Method Get `
-TimeoutSec 60
$ModelIds = @(
$Result.data |
ForEach-Object { $_.id } |
Where-Object { $_ }
)
if ($ModelIds.Count -eq 0) {
throw "接口返回成功,但没有读取到任何模型"
}
Write-Host "读取到的模型:" -ForegroundColor Cyan
$ModelIds | Select-Object -First 20
}
catch {
$ApiKey = $null
throw "无法读取模型列表:$($_.Exception.Message)"
}
# 4. 自动选择优先模型
$PriorityModels = @(
"gpt-5.6",
"gpt-5.6-sol",
"gpt-5.6-codex",
"gpt-5.5-codex",
"gpt-5.4-codex",
"gpt-5.4"
)
$SelectedModel = $null
foreach ($Candidate in $PriorityModels) {
if ($ModelIds -contains $Candidate) {
$SelectedModel = $Candidate
break
}
}
if (-not $SelectedModel) {
$SelectedModel = $ModelIds |
Where-Object { $_ -match "(?i)gpt-5" } |
Select-Object -First 1
}
if (-not $SelectedModel) {
$ApiKey = $null
throw "没有找到可用的 GPT-5 系列模型"
}
Write-Host "已选择模型:$SelectedModel" -ForegroundColor Yellow
# 5. 创建 Codex 配置目录
New-Item -ItemType Directory -Force -Path $ConfigDir | Out-Null
# 6. 备份旧配置
$BackupFile = $null
if (Test-Path -LiteralPath $ConfigFile) {
$BackupFile = "$ConfigFile.backup-$(Get-Date -Format 'yyyyMMdd-HHmmss')"
Copy-Item -LiteralPath $ConfigFile -Destination $BackupFile -Force
Write-Host "旧配置已备份:$BackupFile"
}
# 7. 生成 Codex 配置
$ConfigContent = @"
model = "$SelectedModel"
model_provider = "youdiandou"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[model_providers.youdiandou]
name = "Youdiandou"
base_url = "$BaseUrl"
env_key = "$EnvName"
wire_api = "responses"
requires_openai_auth = false
request_max_retries = 4
stream_max_retries = 5
stream_idle_timeout_ms = 300000
[windows]
sandbox = "elevated"
"@
try {
# 使用无 BOM 的 UTF-8,兼容 Windows PowerShell 5.1
$Utf8NoBom = New-Object System.Text.UTF8Encoding($false)
[System.IO.File]::WriteAllText(
$ConfigFile,
$ConfigContent,
$Utf8NoBom
)
}
catch {
if ($BackupFile -and (Test-Path -LiteralPath $BackupFile)) {
Copy-Item -LiteralPath $BackupFile -Destination $ConfigFile -Force
}
throw "写入 Codex 配置失败,已经尝试恢复旧配置:$($_.Exception.Message)"
}
finally {
# 清理当前脚本中的明文变量
$ApiKey = $null
$Headers = $null
}
Write-Host ""
Write-Host "配置完成!" -ForegroundColor Green
Write-Host "配置文件:$ConfigFile"
Write-Host "模型:$SelectedModel"
Write-Host "接口:$BaseUrl"
if ($BackupFile) {
Write-Host "旧配置备份:$BackupFile"
}
Write-Host ""
Write-Host "现在请彻底退出 Codex,再重新打开并新建会话。" -ForegroundColor Yellow
运行时会发生什么
脚本首先会提示:
请粘贴游点逗 SK,然后按回车
粘贴过程中,PowerShell 不会显示字符。这是正常现象,不代表没有粘贴成功。
按下回车后,脚本会请求:
https://api.youdiandou.store/v1/models
如果 SK 有效,会显示读取到的模型,然后按照脚本中的顺序选择一个优先模型。
例如:
SK 已保存到环境变量:YOUDIANDOU_API_KEY
读取到的模型:
gpt-5.6
gpt-5.6-sol
gpt-5.4-codex
已选择模型:gpt-5.6
配置完成!
最终配置写入:
C:\Users\你的用户名\.codex\config.toml
配置完成后怎么验证
先彻底退出 Codex,包括后台仍在运行的窗口,然后重新打开并新建一个任务。
也可以重新打开 PowerShell,检查环境变量是否存在:
if ([string]::IsNullOrWhiteSpace($env:YOUDIANDOU_API_KEY)) {
Write-Host "当前窗口还没有加载环境变量,请重新打开 PowerShell。" -ForegroundColor Yellow
}
else {
Write-Host "YOUDIANDOU_API_KEY 已生效。" -ForegroundColor Green
}
这个命令只判断变量是否存在,不会把完整 SK 输出到屏幕。
检查 Codex 配置文件:
Get-Content -LiteralPath "$env:USERPROFILE\.codex\config.toml"
正常情况下,可以看到:
model_provider = "youdiandou"
以及:
env_key = "YOUDIANDOU_API_KEY"
配置文件中不应该出现真实 SK。
常见问题
提示无法读取模型列表
一般有几个原因:
- SK 输入错误或已经失效
- 中转站接口暂时不可用
- 当前网络无法访问接口
- 防火墙或代理拦截了 PowerShell 请求
可以单独检查接口连通性:
Test-NetConnection api.youdiandou.store -Port 443
看到下面这行代表 443 端口可以连接:
TcpTestSucceeded : True
脚本没有找到 GPT-5 模型
脚本只会自动选择 GPT-5 系列。如果接口当前没有返回 GPT-5 模型,它会主动停止,不会随便写入其他模型。
这时可以查看 PowerShell 输出的模型列表,再根据实际模型修改 $PriorityModels。
Codex 仍然使用原来的模型
先确认已经彻底退出 Codex。只关闭当前任务再新建,有时不会重新加载用户环境变量。
最稳妥的处理方式是:
- 退出 Codex
- 重新打开 PowerShell
- 确认环境变量已经生效
- 重新启动 Codex
- 新建任务测试
如何恢复原来的配置
脚本覆盖 config.toml 之前,会生成带时间的备份,例如:
C:\Users\你的用户名\.codex\config.toml.backup-20260729-153000
恢复时,先关闭 Codex,然后执行:
$ConfigDir = "$env:USERPROFILE\.codex"
$BackupFile = Get-ChildItem `
-LiteralPath $ConfigDir `
-Filter "config.toml.backup-*" |
Sort-Object LastWriteTime -Descending |
Select-Object -First 1
if (-not $BackupFile) {
throw "没有找到 config.toml 备份文件"
}
Copy-Item `
-LiteralPath $BackupFile.FullName `
-Destination "$ConfigDir\config.toml" `
-Force
Write-Host "已经恢复配置:$($BackupFile.FullName)" -ForegroundColor Green
恢复完成后,重新启动 Codex。
如何删除保存的 SK
如果以后不再使用这个中转站,可以删除 Windows 用户环境变量:
[Environment]::SetEnvironmentVaria









暂无评论内容