Private
Public Access
1
0

feat: 增强三个 CLI 工具配置脚本

- Gemini CLI: 添加 GEMINI_MODEL 环境变量、settings.json 输出及备份逻辑
- Codex: 修复模型名称一致性 (gpt-5-codex)、添加 auth.json 备份逻辑
- Claude Code: 添加 VSCode 插件 config.json 配置支持
- CLAUDE.md: 重构文档,添加三个工具配置差异表

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2025-12-11 18:15:54 +08:00
parent badf8e6bb6
commit 2314140bce
9 changed files with 292 additions and 497 deletions

View File

@@ -83,6 +83,13 @@ function Backup-Settings {
Copy-Item -Path $ClaudeSettingsFile -Destination $backupFile
Write-Info "Backed up existing settings to: $backupFile"
}
$configJsonPath = "$ClaudeConfigDir\config.json"
if (Test-Path $configJsonPath) {
$timestamp = Get-Date -Format "yyyyMMdd_HHmmss"
$backupFile = "$configJsonPath.backup.$timestamp"
Copy-Item -Path $configJsonPath -Destination $backupFile
Write-Info "Backed up existing config to: $backupFile"
}
}
# Function to create settings directory
@@ -173,6 +180,12 @@ function New-Settings {
$json = $settings | ConvertTo-Json -Depth 10
Set-Content -Path $ClaudeSettingsFile -Value $json -Encoding UTF8
Write-Success "Claude Code settings written to: $ClaudeSettingsFile"
# Write config.json for VSCode Claude extension
$configJsonPath = "$ClaudeConfigDir\config.json"
$configJson = @{ primaryApiKey = "xcodecli" }
$configJson | ConvertTo-Json | Set-Content -Path $configJsonPath -Encoding UTF8
Write-Success "VSCode Claude config written to: $configJsonPath"
return $true
}
catch {
@@ -192,30 +205,6 @@ function Show-Settings {
} else {
Write-Info "No existing Claude Code settings found."
}
Write-Host ""
Write-Info "Current environment variables:"
Write-Host "----------------------------------------"
$baseUrl = [Environment]::GetEnvironmentVariable("ANTHROPIC_BASE_URL", [EnvironmentVariableTarget]::User)
$authToken = [Environment]::GetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", [EnvironmentVariableTarget]::User)
if ($baseUrl) {
Write-Info "ANTHROPIC_BASE_URL: $baseUrl"
} else {
Write-Info "ANTHROPIC_BASE_URL: (not set)"
}
if ($authToken) {
$maskedToken = if ($authToken.Length -gt 12) {
"$($authToken.Substring(0, 8))...$($authToken.Substring($authToken.Length - 4))"
} else {
"$($authToken.Substring(0, [Math]::Min(4, $authToken.Length)))..."
}
Write-Info "ANTHROPIC_AUTH_TOKEN: $maskedToken"
} else {
Write-Info "ANTHROPIC_AUTH_TOKEN: (not set)"
}
Write-Host "----------------------------------------"
}
# Main function
@@ -305,28 +294,6 @@ function Main {
# Create new settings
if (New-Settings -BaseUrl $BaseUrl -ApiKey $ApiKey) {
Write-Host ""
# Also set environment variables for Windows
Write-Info "Setting environment variables..."
try {
# Set user environment variables (persistent across sessions)
[Environment]::SetEnvironmentVariable("ANTHROPIC_BASE_URL", $BaseUrl, [EnvironmentVariableTarget]::User)
[Environment]::SetEnvironmentVariable("ANTHROPIC_AUTH_TOKEN", $ApiKey, [EnvironmentVariableTarget]::User)
# Also set for current session
$env:ANTHROPIC_BASE_URL = $BaseUrl
$env:ANTHROPIC_AUTH_TOKEN = $ApiKey
Write-Success "Environment variables set successfully"
}
catch {
Write-Warning "Failed to set environment variables: $($_.Exception.Message)"
Write-Info "You may need to set them manually:"
Write-Info " ANTHROPIC_BASE_URL=$BaseUrl"
Write-Info " ANTHROPIC_AUTH_TOKEN=$ApiKey"
}
Write-Host ""
Write-Success "Claude Code has been configured successfully!"
Write-Info "You can now use Claude Code with your API router."
@@ -335,8 +302,7 @@ function Main {
Write-Info " claude --version"
Write-Info ""
Write-Info "Configuration file location: $ClaudeSettingsFile"
Write-Info "Environment variables have been set for ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN"
if (Test-Path $ClaudeSettingsFile) {
Write-Host ""
Write-Info "Current settings:"