将下面整段命令直接粘贴到 zsh 终端执行。结果会写入当前目录的 models-5.6-sol.json:
(
set -euo pipefail
AUTH_FILE="${CODEX_HOME:-$HOME/.codex}/auth.json"
OUTPUT="$PWD/models-5.6-sol.json"
TEMP_FILE="$(mktemp)"
trap 'rm -f "$TEMP_FILE"' EXIT
CLIENT_VERSION="$(codex --version | awk '{print $NF}')"
ACCESS_TOKEN="$(jq -er '.tokens.access_token | select(type == "string" and length > 0)' "$AUTH_FILE")"
ACCOUNT_ID="$(jq -er '.tokens.account_id | select(type == "string" and length > 0)' "$AUTH_FILE")"
curl --fail-with-body --silent --show-error \
-H "Authorization: Bearer ${ACCESS_TOKEN}" \
-H "ChatGPT-Account-ID: ${ACCOUNT_ID}" \
-H "Accept: application/json" \
"https://chatgpt.com/backend-api/codex/models?client_version=${CLIENT_VERSION}" \
| jq -e '
{
models: [
.models[]
| select(.slug == "gpt-5.6-sol")
]
}
| select(.models | length > 0)
' > "$TEMP_FILE"
mv "$TEMP_FILE" "$OUTPUT"
trap - EXIT
echo "已生成:$OUTPUT"
jq '{count: (.models | length), slugs: [.models[].slug]}' "$OUTPUT"
)依赖:已登录的 Codex CLI、curl 和 jq。
在 ~/.codex/config.toml 的顶层配置区域加入以下内容,路径替换为命令生成文件时输出的绝对路径:
model = "gpt-5.6-sol"
model_catalog_json = "/absolute/path/to/models-5.6-sol.json"如果使用第三方模型提供方,例如 webinfra_model,保留原有 provider 配置,并确认顶层同时包含:
model = "gpt-5.6-sol"
model_provider = "webinfra_model"
model_catalog_json = "/absolute/path/to/models-5.6-sol.json"
[model_providers.webinfra_model]
name = "webinfra_model"
base_url = "https://your-provider.example.com/responses"
wire_api = "responses"注意事项:
model_catalog_json是顶层字段,不要放到[model_providers.webinfra_model]表中。- 建议填写绝对路径;TOML 中的
$HOME不会自动展开。 - 该模型目录只在 Codex 启动时加载,修改后需要完全退出并重新启动 Codex。
- 这个 JSON 只包含
gpt-5.6-sol,因此它会作为当前进程的完整模型目录使用。 model_catalog_json只提供模型能力元数据;实际请求仍会发送给model_provider指定的 API。