跳转到内容

配置

Claudex 按以下顺序搜索配置文件:

  1. $CLAUDEX_CONFIG 环境变量
  2. ./claudex.toml(当前目录)
  3. ./.claudex/config.toml(当前目录)
  4. 父目录(最多向上 10 级),检查上述两种模式
Terminal window
# 查看加载的配置路径和搜索顺序
claudex config
# 在当前目录创建本地配置
claudex config --init
# Claude 二进制文件路径(默认:从 PATH 中查找 "claude")
# claude_binary = "/usr/local/bin/claude"
# 代理设置
proxy_port = 13456
proxy_host = "127.0.0.1"
# 日志级别:trace, debug, info, warn, error
log_level = "info"
# 模型别名(简称 → 完整模型名)
[model_aliases]
grok3 = "grok-3-beta"
gpt4o = "gpt-4o"
ds3 = "deepseek-chat"

每个 profile 代表一个 AI 提供商连接。有三种提供商类型:

用于原生支持 Anthropic Messages API 的提供商。请求以最小修改直接转发。

[[profiles]]
name = "anthropic"
provider_type = "DirectAnthropic"
base_url = "https://api.anthropic.com"
api_key = "sk-ant-..."
default_model = "claude-sonnet-4-20250514"
priority = 100
enabled = true

兼容提供商:AnthropicMiniMax

用于使用 OpenAI Chat Completions API 的提供商。Claudex 自动在 Anthropic 和 OpenAI 协议之间翻译。

[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
default_model = "grok-3-beta"
backup_providers = ["deepseek"]
priority = 100
enabled = true

兼容提供商:Grok (xAI)OpenAIDeepSeekKimi/MoonshotGLM(智谱)OpenRouterOllamavLLMLM Studio

用于使用 OpenAI Responses API 的提供商(如 ChatGPT/Codex 订阅)。Claudex 自动在 Anthropic Messages API 和 OpenAI Responses API 之间翻译。

[[profiles]]
name = "codex-sub"
provider_type = "OpenAIResponses"
base_url = "https://chatgpt.com/backend-api/codex"
default_model = "gpt-4o"
auth_type = "oauth"
oauth_provider = "openai"

兼容提供商:ChatGPT/Codex 订阅(通过 Codex CLI)

字段默认值说明
name必填唯一标识名
provider_typeDirectAnthropicDirectAnthropicOpenAICompatibleOpenAIResponses
base_url必填提供商 API 端点
api_key""API 密钥(明文)
api_key_keyring从 OS 钥匙链读取 API 密钥
default_model必填默认使用的模型
auth_type"api-key""api-key""oauth"
oauth_providerOAuth 提供商(claudeopenaigoogleqwenkimigithub)。auth_type = "oauth" 时必填
backup_providers[]故障转移 profile 名列表
custom_headers{}额外 HTTP 请求头
extra_env{}启动 Claude 时的额外环境变量
priority100智能路由优先级
enabledtrue是否启用
[profiles.models]模型 slot 映射表(haikusonnetopus 字段)

添加 profile 最简单的方式是使用交互式向导:

Terminal window
claudex profile add

它会引导你完成提供商选择、API 密钥输入(支持 keyring 存储)、模型选择和连通性测试。

将 API 密钥安全存储在 OS 钥匙链中,而非明文配置:

[[profiles]]
name = "grok"
api_key_keyring = "grok-api-key" # 从 OS 钥匙链读取

支持的后端:

  • macOS:Keychain
  • Linux:Secret Service(GNOME Keyring / KDE Wallet)

除了 API 密钥,你还可以通过 OAuth 使用现有的提供商订阅进行认证。适用于 Claude Pro/Team、ChatGPT Plus 或其他订阅方案。

  1. 将 profile 的 auth_type 设为 "oauth" 并指定 oauth_provider
[[profiles]]
name = "chatgpt-oauth"
provider_type = "OpenAICompatible"
base_url = "https://api.openai.com/v1"
default_model = "gpt-4o"
auth_type = "oauth"
oauth_provider = "openai"
  1. 使用 auth 命令登录:
Terminal window
claudex auth login openai
  1. 检查认证状态:
Terminal window
claudex auth status
提供商oauth_providerToken 来源
Claudeclaude~/.claude 读取(Claude Code 原生配置)
OpenAIopenai~/.codex/auth.json 读取(Codex CLI)
GooglegoogleOAuth 设备码流程
QwenqwenOAuth 设备码流程
KimikimiOAuth 设备码流程
GitHubgithubOAuth 设备码流程

使用 OAuth profile 时,Claudex 启动 Claude Code 时设置 ANTHROPIC_AUTH_TOKEN(而非 ANTHROPIC_API_KEY)。这可以避免与 Claude Code 自身订阅登录机制冲突,因为 Claude Code 内部使用 ANTHROPIC_API_KEY

代理会在 OAuth token 过期前自动刷新。你也可以手动刷新:

Terminal window
claudex auth refresh openai

Claude Code 内置 /model 切换器,包含三个 slot:haikusonnetopus。默认映射到 Anthropic 模型,但通过 Claudex 可以将它们映射到任意提供商的模型。

在任意 profile 中添加 [profiles.models] 表:

[[profiles]]
name = "grok"
provider_type = "OpenAICompatible"
base_url = "https://api.x.ai/v1"
api_key = "xai-..."
default_model = "grok-3-beta"
[profiles.models]
haiku = "grok-3-mini-beta"
sonnet = "grok-3-beta"
opus = "grok-3-beta"

在 Claude Code 中输入 /model sonnet 时,Claudex 会将请求翻译为使用 grok-3-beta/model opus 命令映射到 grok-3-beta,以此类推。

# OpenAI 模型映射
[profiles.models]
haiku = "gpt-4o-mini"
sonnet = "gpt-4o"
opus = "o1"
# DeepSeek 模型映射
[profiles.models]
haiku = "deepseek-chat"
sonnet = "deepseek-chat"
opus = "deepseek-reasoner"
# Google Gemini 模型映射
[profiles.models]
haiku = "gemini-2.0-flash"
sonnet = "gemini-2.5-pro"
opus = "gemini-2.5-pro"

部分提供商(尤其是 OpenAI)对工具(函数)名称有 64 字符长度限制。Claude Code 生成的工具名可能超过此限制。

Claudex 在向 OpenAI 兼容提供商发送请求时,自动截断超过 64 字符的工具名,并在处理响应时透明还原原始名称。整个往返过程完全透明,无需额外配置。

Claudex 支持一次性(非交互)执行,适用于 CI/CD 流水线、脚本和自动化:

Terminal window
# 输出响应后退出
claudex run grok "Explain this codebase" --print
# 跳过所有权限提示(用于全自动流水线)
claudex run grok "Fix lint errors" --print --dangerously-skip-permissions

非交互模式下,日志写入每实例日志文件 ~/Library/Caches/claudex/proxy-{timestamp}-{pid}.log(而非 stderr),保持 stdout 输出干净,便于管道和自动化处理。

每个 Claudex 代理实例将日志写入独立文件:

~/Library/Caches/claudex/proxy-{timestamp}-{pid}.log

这避免了多实例运行时的日志交错,并在 claudex run 期间(尤其是非交互模式下)保持 stderr 干净。日志内容包括代理启动、请求翻译、OAuth token 刷新事件和断路器状态变化。

参见 config.example.toml 获取包含所有提供商和选项的完整配置文件。

每个提供商的详细配置步骤(包括 API 密钥获取链接和 OAuth 流程),请参见 Provider 配置指南