---
name: "qoder-codex-api-config"
description: "Use when configuring local Qoder/Qoder CLI to use the current Codex API settings, including writing Qoder custom model records, encrypted SecretStorage API keys, and default model selections on Windows."
---

# Qoder Codex API Config

用于把当前 Codex 的 API 配置写入本机 Qoder 配置。适用场景：

- 用户要求“配置 Qoder 使用当前 Codex API”
- 用户要求“把 Codex 的 API/模型接到 Qoder”
- 用户要求“直接修改 Qoder 配置”

## 核心规则

- 不把 API key 明文写入仓库、日志或普通 JSON 配置。
- 写入前检查 Qoder 是否正在运行；正在运行时默认停止并让用户关闭 Qoder，避免 Qoder 退出时覆盖 SQLite。
- 写入前备份 `User/globalStorage/state.vscdb` 及同名 `-wal`、`-shm`。
- 默认从 `C:\Users\<user>\.codex\config.toml` 读取 `model`、当前 `model_provider` 和对应 provider 的 `base_url`。
- 默认从 `C:\Users\<user>\.codex\auth.json` 读取 `OPENAI_API_KEY`，用 Qoder `Local State` 的 Chromium OSCrypt key 加密后写入 `secret://aicoding.customModel.apiKey.<model_id>`。

## 一步配置

运行 bundled 脚本：

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .agents\skills\qoder-codex-api-config\scripts\configure-qoder-codex-api.ps1
```

常用覆盖参数：

```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File .agents\skills\qoder-codex-api-config\scripts\configure-qoder-codex-api.ps1 `
  -Model "gpt-5.5" `
  -BaseUrl "http://47.250.148.224" `
  -Alias "Codex GPT-5.5" `
  -Provider "openai" `
  -ByokTypeKey "openai"
```

## 写入内容

脚本会写入：

- `aicoding.customModels`: Qoder custom model 数组
- `secret://aicoding.customModel.apiKey.<model_id>`: 加密后的 API key
- `chat.modelConfig.assistant`: `custom:<model_id>`
- `chat.modelConfig.experts`: `custom:<model_id>`
- `aicoding.aicoding-agent`: `globalstate-selected-models` 中的 chat/assistant
- `__$__targetStorageMarker`: 补充相关 storage scope marker

默认模型 ID 会从模型名生成，例如 `gpt-5.5` -> `model_codex_gpt_5_5`。

## 验证

配置后脚本会验证：

- `aicoding.customModels` 是数组且包含目标模型
- SecretStorage 记录可被当前 Windows 用户解密，且和 Codex API key 一致
- 默认模型选择已写入

如果 Qoder 启动后仍不显示该模型，优先检查：

1. Qoder 是否在写入时仍在运行。
2. Qoder 后端是否允许 BYOK，自定义模型功能可能受账号/远端开关控制。
3. Qoder 实际 provider 是否接受 `Provider`/`ByokTypeKey`，默认使用 `openai`。
4. Codex 当前 `wire_api` 可能是 `responses`，而 Qoder BYOK 后端可能只支持 provider 自身协议。
