两件事分开看:想让 Codex 生成视频、图片和配音,装 apimodels 插件(登录一次、两条命令,Codex 用什么模型都行);想让 Codex 本身用 apimodels 的 GPT-6 Sol / Luna,写一份 config.toml(命令行和桌面版共用)。这里给出两种做法、能选哪些模型、定价、一条 curl 自检命令和常见报错。
用 wire_api = "responses"、base_url = "https://api.apimodels.app/v1"、model = "gpt-6-sol"(要更低单价用 "gpt-6-luna"),环境变量里放 API key。Codex 的 model 只能填聊天模型;要出视频或图片,再挂 apimodels MCP,然后直接让 Codex 去生成。
Codex 负责规划:写脚本、拆分镜、写提示词、用 ffmpeg 剪辑;插件负责把视频、图片、配音真正生成出来。插件里带了一份技能说明,Codex 会自己判断什么时候用、选哪个模型、视频要等多久、批量生成前先问你 —— 直接用大白话提需求即可。插件不改 Codex 用的模型,用 ChatGPT 账号登录 Codex 也能装。
1. 登录一次:浏览器打开 apimodels.app,点「授权」,key 自动存到本机,不用复制粘贴
npx -y apimodels-mcp login2. 安装插件,然后重启 Codex
codex plugin marketplace add stimQQ/apimodels-mcp
codex plugin add apimodels@apimodels只装了 Codex 桌面版、终端里没有 codex 命令?把命令里的 codex 换成 npx -y @openai/codex 即可,它会临时运行官方命令行,和桌面版共用同一份配置。
3. 直接提需求,比如「做一段 5 秒 16:9 的视频:小猫在晨光里缓慢抬头」。生成视频、图片、语音会花钱,Codex 每次会先请你确认;查进度、查余额不会打扰你。
需要本机有 Node.js。没装的话,装好插件后直接提需求,Codex 会征得你同意替你装官方 Node.js(Windows 只需在系统弹窗点「是」,Mac 在官方安装器里点「继续」「安装」),之后重启 Codex。登录那一步也可以交给 Codex 来跑,你只需要在浏览器里点授权。
到 控制台 新建一个 sk_… 字符串。
把下面这段贴到 ~/.codex/config.toml(没文件就新建;Windows 在 C:\Users\你的用户名\.codex\)。
把 key 写进环境变量,重新打开 Codex。
~/.codex/config.toml
# ~/.codex/config.toml — drop-in, paste as-is
model_provider = "apimodels"
model = "gpt-6-sol" # or "gpt-6-luna" (lowest-priced) / "gpt-5.5"
review_model = "gpt-6-sol" # model used by /review
model_reasoning_effort = "medium" # low | medium | high
disable_response_storage = true
[model_providers.apimodels]
name = "apimodels"
base_url = "https://api.apimodels.app/v1"
wire_api = "responses"
env_key = "APIMODELS_API_KEY"终端
# put your apimodels key in the env var the config points at,
# then launch codex (add this line to ~/.zshrc to make it stick):
export APIMODELS_API_KEY="sk_…your_key…"
codex
# Windows (PowerShell or cmd) — then reopen Codex:
setx APIMODELS_API_KEY "sk_…your_key…"| 字段 | 值 | 为什么这么填 |
|---|---|---|
| wire_api | responses | Codex 的原生模式:每一轮对话都发到 /v1/responses,推理和多轮工具调用的状态都在这条端点上。 |
| base_url | https://api.apimodels.app/v1 | 我们 /v1 端点统一前缀,结尾不带斜杠。 |
| model | gpt-6-sol / gpt-6-luna / gpt-5.5 | 必须是 /v1/responses 上的聊天模型,见下一节。gpt-5.5 写点号或横杠(gpt-5-5)都认。 |
| review_model | gpt-6-sol | /review 命令用的模型。可选,不填就用上面的 model。 |
| model_reasoning_effort | low / medium / high | Codex 把它转成请求体里的 reasoning.effort,见下文。 |
| env_key | APIMODELS_API_KEY | 随便起名,只要这个环境变量等于你的 API key。 |
| model_provider | apimodels | 与下面 [model_providers.apimodels] 段名一致即可。 |
Codex 的 model 是它自己用来对话、读代码、改代码的那个模型,每一轮都通过 /v1/responses 调用。所以这里只能填这条端点上的聊天模型;填别的会收到 HTTP 400,报错里会写明原因。
| 推荐 | gpt-6-sol · gpt-6-luna · gpt-5.5 | /v1/responses 上调用量最大、验证最充分的几个。gpt-6-sol 做日常主力,gpt-6-luna 单价最低、适合跑量。 |
| 也能选 | gpt-6-astra · gpt-5.6-* · grok-4.6 · qwen3.8 · deepseek-v4 · glm-5.2 | 同样在 /v1/responses 上。这条端点上用得最多的是 GPT 系列,其余几家调用量少得多。 |
| 不能选 | Claude · Gemini | 它们只在 /v1/chat/completions 上,Codex 只用 /v1/responses,所以选不了。 |
| 不能选 | 视频 / 图片 / 语音模型 | 它们不是聊天模型。想在 Codex 里出视频或图片,用下一节的 MCP。 |
视频、图片模型不能填进 model,但可以作为工具交给 Codex 调用。不装插件的话,在同一份 config.toml 里加上我们的 MCP 服务器 apimodels-mcp,Codex 就多了 generate_video、generate_image、text_to_speech 等工具,站上的视频和图片模型都能用。需要电脑上装有 Node.js(用到 npx)。运行过上面的 login,env 那一行可以省掉。
# add to the same ~/.codex/config.toml
[mcp_servers.apimodels]
command = "npx"
args = ["-y", "apimodels-mcp"]
env = { APIMODELS_API_KEY = "sk_…your_key…" }
# tool_timeout_sec = 660 # optional: lets one call wait for the whole video重启 Codex 后提需求。没有插件里那份技能说明,Codex 不一定主动去找这些工具,所以提问时点名「apimodels 的 generate_video」:
Use apimodels generate_video with grok-imagine-video-1.5 to make a 10-second 16:9 video:
a golden tabby kitten slowly raises its head in warm morning light.视频要等一会儿:中位约 2.5 分钟,九成在 8 分钟内。Codex 默认 60 秒就中止一次工具调用,所以工具每次最多等 50 秒,没出来就先交回任务号,Codex 会自己调 get_task 接着取,拿到视频链接为止。不会重复提交,也不会重复扣费。
Windows 上如果 MCP 服务器起不来,改成经 cmd 启动:
# Windows: if the MCP server does not start, launch npx through cmd
[mcp_servers.apimodels]
command = "cmd"
args = ["/c", "npx", "-y", "apimodels-mcp"]
env = { APIMODELS_API_KEY = "sk_…your_key…" }全部工具、参数和环境变量见 /docs/mcp。
推理强度是请求体里的 reasoning.effort 参数(Codex 用 model_reasoning_effort 设置),不是模型名后缀。所有等级单价相同;等级越高,reasoning tokens 越多(算进 output_tokens 一起计费)。直接调 API 时传 "reasoning": { "effort": "high" }。
| reasoning.effort | 适用 |
|---|---|
| low | 快速、单步任务、简单补全 |
| medium | 多步骤重构、设计权衡 |
| high | 复杂调试、跨文件分析 |
输出 token 含 reasoning tokens。每次调用实算后扣到你的 apimodels 账户余额,以模型页上的价格为准。视频和图片按各自模型页的价格单独计费。其他聊天模型价格见 /docs/llm。
装 Codex 之前先用 curl 确认端点和 key 都能通:
curl -s https://api.apimodels.app/v1/responses \
-H "Authorization: Bearer $APIMODELS_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "gpt-6-luna",
"input": "Reply with exactly: ok",
"reasoning": { "effort": "low" },
"max_output_tokens": 16
}'期望响应(节选):
{
"id": "resp_...",
"object": "response",
"status": "completed",
"output": [{
"type": "message",
"role": "assistant",
"content": [{ "type": "output_text", "text": "ok" }]
}],
"usage": { "input_tokens": 22, "output_tokens": 5, "total_tokens": 27 }
}看到 HTTP 200 + output[].content[0].text = "ok" 就稳了。
Codex 用 wire_api = "responses"(它的原生模式,对推理和多轮工具调用处理得最干净),所以给 Codex 就选 responses。这也决定了 Codex 能选的模型范围:Claude、Gemini 只在 /v1/chat/completions 上,在别的只会发 chat 格式的客户端里(Cherry Studio、Cursor 等)照常可用。
| 症状 | 原因 / 修法 |
|---|---|
| HTTP 401 Invalid or missing API key | 环境变量没设上,或 key 已被禁用。重新设置 APIMODELS_API_KEY 后重开 Codex,或去控制台新建一个。 |
| HTTP 400 … is a video generation model / is not available on /v1/responses | model 填了视频、图片、语音模型,或 Claude、Gemini。把 model 改成 gpt-6-sol 或 gpt-6-luna;要出视频或图片,用上面的 MCP。 |
| HTTP 400 Unknown model | 模型名拼错了。用 gpt-6-sol / gpt-6-luna / gpt-5.5,完整列表见 GET https://api.apimodels.app/v1/models。 |
| 404 / 端点找不到 | base_url 写错了——必须是 https://api.apimodels.app/v1(含 /v1,结尾不带斜杠)。Codex 会自动接上 /responses。 |
| Codex 里看不到 generate_video 等工具 | 先确认插件已安装(codex plugin list 里有 apimodels@apimodels)且装完重启过 Codex;再确认装了 Node.js(命令行里 npx -v 有输出);运行 npx -y apimodels-mcp status 看是否已登录。手动配置的话,Windows 可换成上面 cmd /c 的写法,改完 config.toml 要重启 Codex。 |
| 视频等到一半工具调用被中止 | Codex 默认 60 秒中止一次工具调用。apimodels-mcp 0.3.0 起每次最多等 50 秒,然后交回任务号让 Codex 用 get_task 接着取。用的是旧版本的话,把 args 里的包名写成 apimodels-mcp@latest 再重启 Codex。也可以设 tool_timeout_sec 让一次调用等完整个视频。 |
| 回复是空或只有 reasoning,没正文 | max_output_tokens 太小,推理 token 把预算吃光了。给 high 至少留几百 tokens。 |
| 出账多了 | output_tokens 包含 reasoning_tokens。effort=high 时推理 token 可能数倍于可见输出——按需选等级;跑量的任务换 gpt-6-luna。 |