Codex CLI
Codex CLI 是 OpenAI 官方的终端编程工具。接入 MaomaoToken 后,你只需一个 API Key 就能在终端里调用并自由切换 GLM、Claude、Gemini、DeepSeek 等各家模型,无需绑定单一厂商。
本文覆盖两种接入方式:基础方式(profile + 固定单模型,最快上手)与自定义模型方式(用 model_catalog_json 目录文件,在 /model 列表里随时切换)。
安装
官网下载(macOS)
https://openai.com/zh-Hans-CN/codex/
命令行安装
npm install -g @openai/codex环境变量配置
使用配置文件配置
- 修改
~/.codex/config.toml,增加如下配置:
profile = "maomaotoken"
[model_providers.maomaotoken]
name = "maomaotoken"
base_url = "https://api.maomaotoken.com/v1"
personality = "pragmatic"
wire_api = "responses"
[profiles.maomaotoken]
model = "gpt-5.2"
model_provider = "maomaotoken"
model_reasoning_effort = "high"- 修改
~/.codex/auth.json:
{
"OPENAI_API_KEY": "YOUR_MAOMAO_API_KEY"
}将 YOUR_MAOMAO_API_KEY 替换为你在 MaomaoToken 控制台 生成的真实密钥。
通过 CC Switch 配置
- 运行 CC Switch,添加供应商
- 在预设列表中选择「MaomaoToken」
- 在「API Key」栏填写你的密钥并点击「添加」保存设置
- 返回首页,在供应商列表中选择「MaomaoToken」,点击「启用」即可使用
使用 Codex
在终端中使用
进入你的项目目录,运行:
cd /你的项目路径
codex启动后根据需求设置权限、选择模型,输入自然语言指令,若正常响应说明配置成功。
在 Codex 桌面端使用
- 打开 Codex 桌面端,选择工作目录
- 在输入框输入任务,若正常响应说明配置成功
实用命令参考
codex -h # 显示帮助信息完整命令选项:
Usage
$ codex [options] <prompt>
Options
-h, --help 显示帮助信息并退出
-m, --model <model> 指定使用的模型 (默认: codex-mini-latest)
-i, --image <path> 包含图像输入的文件路径
-v, --view <rollout> 查看之前保存的会话记录
-q, --quiet 非交互模式,仅打印助手的最终输出
-a, --approval-mode <mode> 覆盖审批策略: 'suggest', 'auto-edit', 或 'full-auto'
--auto-edit 自动批准文件编辑;仍会提示确认命令
--full-auto 自动批准沙箱环境中的编辑和命令
--no-project-doc 不自动包含仓库中的 'codex.md' 文件
--project-doc <file> 包含指定的 Markdown 文件作为上下文
--full-stdout 不截断命令输出的 stdout/stderr
-f, --full-context 以"完整上下文"模式启动,将整个仓库加载到上下文中
示例
$ codex "编写并运行一个打印 ASCII 艺术的 Python 程序"
$ codex -q "修复构建问题"在 Codex 中使用自定义模型
Codex 默认只在 /model 列表里展示 OpenAI 官方模型。如果你想直接从列表中选择 MaomaoToken 上的任意模型(GLM、Claude、Gemini、DeepSeek、Kimi、Qwen……),可以用官方支持的「自定义模型」机制:通过一个本地 JSON 文件(model_catalog_json)声明可选模型。
两种接入方式对比:
整体流程:生成目录文件 → 改 config.toml → 设环境变量 → 重启选模型。
第 1 步:生成模型目录文件
目录文件格式为 { "models": [ ... ] },每个条目描述一个可在 /model 里选择的模型。
下面是已验证可被 Codex 解析的最小完整条目:
{
"models": [
{
"slug": "glm-5.2",
"display_name": "GLM 5.2",
"description": "GLM 5.2 (via MaomaoToken)",
"context_window": 1000000,
"max_context_window": 1000000,
"supported_reasoning_levels": [
{ "effort": "low", "description": "Fast responses" },
{ "effort": "medium", "description": "Balanced" },
{ "effort": "high", "description": "Deeper reasoning" }
],
"shell_type": "shell_command",
"visibility": "list",
"supported_in_api": true,
"priority": 0,
"availability_nux": null,
"upgrade": null,
"base_instructions": "You are Codex, a coding agent.",
"supports_reasoning_summaries": true,
"support_verbosity": false,
"default_verbosity": null,
"apply_patch_tool_type": null,
"truncation_policy": { "mode": "tokens", "limit": 10000 },
"supports_parallel_tool_calls": true,
"experimental_supported_tools": []
}
]
}常用字段说明:
mkdir -p ~/.codex/model-catalogs
# 取内置模型当模板(自带所有必填字段)
codex debug models --bundled > /tmp/_tpl.json
# 拉 MaomaoToken 模型列表
curl -s "https://api.maomaotoken.com/v1/models" \
-H "Authorization: Bearer YOUR_MAOMAO_API_KEY" > /tmp/_maomao.json
# 克隆模板逐个生成条目
python3 - <<'PY' > ~/.codex/model-catalogs/custom-models.json
import json, sys
tpl = json.load(open("/tmp/_tpl.json"))["models"][0]
api = json.load(open("/tmp/_maomao.json"))["data"]
api = [m for m in api if "image_generation" not in (m.get("types") or "")][:30]
out = []
for i, m in enumerate(api):
e = dict(tpl)
mid = m.get("id") or m.get("model_id") or ""
ctx = m.get("context_window") or m.get("context_length") or 200000
e["slug"] = mid
e["display_name"] = m.get("name") or m.get("model_name") or mid
e["description"] = (m.get("name") or mid) + " (via MaomaoToken)"
e["context_window"] = ctx
e["max_context_window"] = ctx
e["visibility"] = "list"
e["supported_in_api"] = True
e["priority"] = i
e["availability_nux"] = None
e["upgrade"] = None
out.append(e)
json.dump({"models": out}, sys.stdout, ensure_ascii=False, indent=2)
PY第 2 步:修改 config.toml
# model_catalog_json 必须写在根级别,不能放进 [model_providers.*] 段里
model = "glm-5.2"
model_provider = "maomaotoken"
model_catalog_json = "~/.codex/model-catalogs/custom-models.json"
model_reasoning_effort = "high"
[model_providers.maomaotoken]
name = "MaomaoToken"
base_url = "https://api.maomaotoken.com/v1"
wire_api = "responses"
env_key = "MAOMAO_API_KEY"第 3 步:设置环境变量
export MAOMAO_API_KEY=sk-xxx建议写进 ~/.zshrc / ~/.bashrc 持久化。
第 4 步:重启并选择模型
重启 Codex,然后在交互界面输入 /model 即可看到目录里声明的全部模型并切换。
第 5 步:验证是否生效
- 输入
/model,确认能看到并切换到自定义模型 - 随便提一个问题验证链路打通