原文链接:https://izpc.org/2025/10/25/ai-tools-api-key-configuration/

最近在用几个 AI 命令行工具,想接自己的 API 代理,折腾了一番总算搞定了。记录一下配置过程,三个系统都能用。

Claude Code

安装

npm install -g @anthropic-ai/claude-code

配置文件路径

系统 路径
Windows %USERPROFILE%\.claude\settings.json
macOS/Linux ~/.claude/settings.json

编辑配置文件

  • Windows:
    notepad $env:USERPROFILE\.claude\settings.json
    
  • macOS/Linux:
    vim ~/.claude/settings.json
    

配置内容

{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.foobar.example/claude",
    "ANTHROPIC_AUTH_TOKEN": "sk-xxxx"
  }
}

验证使用

claude

Codex

安装

npm install -g @openai/codex

配置文件路径

系统 路径
Windows %USERPROFILE%\.codex\config.toml
macOS/Linux ~/.codex/config.toml

编辑配置文件

  • Windows:
    notepad $env:USERPROFILE\.codex\config.toml
    
  • macOS/Linux:
    vim ~/.codex/config.toml
    

配置内容

model = "gpt-5"
model_provider = "openai-chat-completions"

[model_providers.openai-chat-completions]
name = "PROXY"
base_url = "https://api.foobar.example/v1"
env_key = "PROXY_OPENAI_API_KEY"
wire_api = "chat"

配置环境变量

Windows(临时生效 + 持久化)
# 临时生效(当前终端)
$env:PROXY_OPENAI_API_KEY = "sk-xxxx"

# 持久化(用户级)
[System.Environment]::SetEnvironmentVariable('PROXY_OPENAI_API_KEY', 'sk-xxxx', 'User')
macOS/Linux(临时生效 + 持久化)
# 临时生效(当前终端)
export PROXY_OPENAI_API_KEY="sk-xxxx"

# 持久化(bash 用户)
echo 'export PROXY_OPENAI_API_KEY="sk-xxxx"' >> ~/.bashrc
source ~/.bashrc

# 若使用 zsh,替换为:
# echo 'export PROXY_OPENAI_API_KEY="sk-xxxx"' >> ~/.zshrc
# source ~/.zshrc

Gemini CLI

安装

npm install -g @google/gemini-cli

配置方式(二选一)

Gemini 没有专门的配置文件,支持 .env 文件或直接设置环境变量。

方法一:.env 文件配置
  1. 创建/编辑 .env 文件:

    • Windows:
      notepad $env:USERPROFILE\.env
      
    • macOS/Linux:
      vim ~/.env
      
  2. 配置内容:

    GOOGLE_GEMINI_BASE_URL=https://api.foobar.example/gemini
    GEMINI_API_KEY=sk-xxxx
    GEMINI_MODEL=gemini-2.5-pro
    
方法二:直接设置环境变量
Windows(持久化)
[System.Environment]::SetEnvironmentVariable('GOOGLE_GEMINI_BASE_URL', 'https://api.foobar.example/gemini', 'User')
[System.Environment]::SetEnvironmentVariable('GEMINI_API_KEY', 'sk-xxxx', 'User')
[System.Environment]::SetEnvironmentVariable('GEMINI_MODEL', 'gemini-2.5-pro', 'User')
macOS/Linux(持久化)
# bash 用户
cat >> ~/.bashrc << 'EOF'
export GOOGLE_GEMINI_BASE_URL=https://api.foobar.example/gemini
export GEMINI_API_KEY=sk-xxxx
export GEMINI_MODEL=gemini-2.5-pro
EOF
source ~/.bashrc

# zsh 用户
cat >> ~/.zshrc << 'EOF'
export GOOGLE_GEMINI_BASE_URL=https://api.foobar.example/gemini
export GEMINI_API_KEY=sk-xxxx
export GEMINI_MODEL=gemini-2.5-pro
EOF
source ~/.zshrc

工具对比

工具 配置方式 环境变量 难度
Claude Code JSON 配置文件 不需要 简单
Codex TOML 配置 + 环境变量 需要 有点麻烦
Gemini CLI 环境变量或 .env 文件 需要 还行

注意事项(避坑指南)

1. API KEY 安全防护

避免配置文件泄露,添加到 .gitignore

.env
settings.json
config.toml

2. 环境变量持久化

  • Windows:优先使用「用户级环境变量」或编辑 PowerShell 配置文件 $PROFILE
  • macOS:默认终端为 Zsh,需将环境变量添加到 ~/.zshrc(而非 ~/.bashrc
  • Linux:根据使用的 Shell(bash/zsh)选择对应的配置文件

3. 配置文件权限

确保配置文件仅当前用户可读写,避免权限泄露:

  • Windows:
    icacls "$env:USERPROFILE\.claude\settings.json" /inheritance:r /grant:r "$env:USERNAME:F"
    
  • macOS/Linux:
    chmod 600 ~/.claude/settings.json
    chmod 600 ~/.codex/config.toml
    chmod 600 ~/.env
    

4. 常见问题排查

找不到配置目录?

手动创建配置目录:

# Windows
mkdir $env:USERPROFILE\.claude -Force
mkdir $env:USERPROFILE\.codex -Force
# macOS/Linux
mkdir -p ~/.claude ~/.codex
环境变量不生效?
  • Windows:重启终端或注销重新登录
  • macOS/Linux:执行 source ~/.bashrcsource ~/.zshrc(根据 Shell 类型)
切换不同 API 代理?
  • Claude Code:直接修改 ANTHROPIC_BASE_URL
  • Codex:可配置多个 model_providers 节点,切换 model_provider 字段值
  • Gemini CLI:修改 GOOGLE_GEMINI_BASE_URL 环境变量或 .env 文件
Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐