Codex 接入

OpenAI 的 Codex CLI 支持自定义模型服务商。配置好书童后,用 codex-st 启动:读写文件、改代码、跑命令的能力不变,调用经书童鉴权、按人民币计费,普通的 codex 命令不受影响。

1. 安装 Codex

npm install -g @openai/codex
codex --version

2. 添加书童服务商与配置档

mkdir -p ~/.codex

# 1. 定义书童这个模型服务商(追加到 ~/.codex/config.toml)
cat >> ~/.codex/config.toml <<'EOF'

[model_providers.shutong]
name = "书童 ShuTong"
base_url = "https://shutong.ai/api/openai/v1"
env_key = "SHUTONG_API_KEY"
wire_api = "responses"
EOF

# 2. 书童配置档(独立文件,不影响默认的 codex)
cat > ~/.codex/shutong.config.toml <<'EOF'
model_provider = "shutong"
model = "gpt-5.3-codex"
EOF

Codex 只支持 OpenAI Responses 格式,书童的 /api/openai/v1 入口就是为它准备的。默认模型可以在 shutong.config.toml 里改。

3. 添加 codex-st 命令

# 书童密钥(与 claude-st 共用同一个文件)
mkdir -p ~/.shutong
printf '%s' "sk-gw-你的密钥" > ~/.shutong/cc_token
chmod 600 ~/.shutong/cc_token

cat >> ~/.zshrc <<'EOF'

# Codex 经书童网关(普通的 codex 命令不受影响)
codex-st() {
  SHUTONG_API_KEY="$(cat ~/.shutong/cc_token)" codex --profile shutong "$@"
}
EOF
source ~/.zshrc

已经配置过 claude-st 的,密钥文件不用重复创建。

4. 使用

codex-st                                 # 交互模式
codex-st exec "解释一下这个项目的目录结构"   # 一次性任务
codex-st -m gpt-6.1-sol                  # 临时换模型

可用模型

gpt-5.3-codexGPT-5.3 Codex
gpt-6.1-solGPT-6.1 Sol
gpt-6-astraGPT-6 Astra
gpt-6-lunaGPT-6 Luna

价格见 计费说明。缓存命中的输入按低价计费,Codex 长会话会大量命中缓存。

验证连通

不启动 Codex,也可以直接用 Responses 格式测试:

curl https://shutong.ai/api/openai/v1/responses \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $SHUTONG_API_KEY" \
  -d '{"model": "gpt-6-luna", "input": "用五个字介绍你自己"}'