想在终端里让 AI 直接读项目、改代码、跑命令,又不想绑定 ChatGPT 订阅?
试试 Codex:OpenAI 官方出的终端 AI Coding Agent。装好、配上天天AI,就能开聊。
本文只讲 CLI(命令行)。Codex 的 IDE 扩展、云端版本有兴趣可自行去官网看,这里不展开。
关于文中的链接: 文中会挂官网文档链接,主要是给想深入了解或事后备忘用的。按本文步骤照做一般就够了,不必把每个链接都点开看一遍。
同系列教程:
- 只想要 Anthropic 系的:Claude Code 保姆级安装
- 想玩多角色编排(规划 / 执行拆开):OpenCode + oh-my-opencode 保姆级安装
一、它是什么
Codex 是 OpenAI 官方的终端 Agent:能读你的代码仓库、改文件、跑 shell、帮你处理 Git,用自然语言跟它说话就行。
二、安装
官方推荐用 npm(要求 Node 22 以上)。先在终端敲一句:
node -v
能打出版本号 → 走情况一;提示找不到命令 → 走情况二。
情况一:已有 Node.js(用 npm)
没有 Node 的话,去 https://nodejs.org/ 下载 LTS,装完新开终端,确认 node -v / npm -v 有版本号,再回来。
npm install -g @openai/codex
装完新开一个终端,再确认:
codex --version
能打出 codex-cli 开头的版本号就对了。
情况二:macOS 用 Homebrew
brew install --cask codex
装完同样新开终端,跑 codex --version。
Windows 用户建议走 WSL(按情况一装),原生支持还不太稳:https://learn.microsoft.com/zh-cn/windows/wsl/install
三、配置(先跑通最小闭环)
这一步的目标很简单:让 Codex 能连上模型开始干活。
官方那套「登录 ChatGPT 订阅」又贵又绕,新手直接跳过。本文用 天天AI 一把配好。
关于官方登录
装完第一次跑 codex,默认会让你登录 ChatGPT 账号(见 https://developers.openai.com/codex/cli/)。
本文不走这条。 按下面把天天AI 写进配置文件,Codex 检测到自定义供应商后就不会再弹官方登录。
正确做法:
- 先下载模型目录、写好下面的配置文件
- 再启动
codex - 直接用中文说需求
1. 先拿到天天AI 的密钥
- 打开 https://ai.ttshuli.com 注册并登录
- 进控制台,创建一个 API 密钥(一般长这样:
sk-mt-...) - 复制保存好,后面要贴进配置文件;别发到群里、别截图露出来
站点文档页也有同款接入说明,可对照:https://ai.ttshuli.com/docs.html
2. 下载模型目录
启动 codex 前先执行一次,/model 才会列出平台提供的模型:
mkdir -p ~/.codex
curl -fsSL https://ai.ttshuli.com/codex-model-catalogs.json -o ~/.codex/model-catalogs.json
3. 写配置文件:config.toml
目录(没有就新建):
- macOS / Linux:
~/.codex/ - Windows(WSL):
~/.codex/
新建或编辑 config.toml,粘贴下面整段(把密钥换成你的):
model = "auto"
model_provider = "tiantian"
model_catalog_json = "~/.codex/model-catalogs.json"
approval_policy = "never"
sandbox_mode = "danger-full-access"
[model_providers.tiantian]
name = "天天AI"
base_url = "https://ai.ttshuli.com/v1"
wire_api = "responses"
http_headers = { "Authorization" = "Bearer 这里换成你的密钥" }
要点:
base_url写带/v1的 OpenAI 兼容地址https://ai.ttshuli.com/v1。Codex 走的是 OpenAI 协议;Claude Code 那篇写的站点根不带/v1,两边别抄混。wire_api = "responses"是协议档位。 Codex 只支持 Responses 协议(旧的 chat/completions 协议已于 2026 年 2 月起移除,详见官方公告 https://github.com/openai/codex/discussions/7782)。网上旧教程让你写wire_api = "chat"的,在新版 Codex 会直接报配置错误,别抄。- 密钥直接写在配置文件里:
http_headers那行就是鉴权头,Bearer和密钥之间有一个空格,整串原样保留。不习惯 TOML 写法的照抄即可;改密钥时也只改这一行。 model填auto,让天天AI 自己选最优模型。名单会定期更新,新手别死盯某个具体模型名。- 上下文窗口在模型目录里:
model-catalogs.json每条模型带context_window/max_context_window,平台统一为 180000。Codex 不从/v1/models读窗口,只认这份目录;换机或目录更新后重新跑上面的curl覆盖本地文件。 approval_policy和sandbox_mode必须写在文件顶层,和model、model_provider并列。写进[model_providers.tiantian]里会被丢掉,Codex 仍按默认的「每次确认 + 只能写当前项目」不停弹权限。sandbox_mode = "danger-full-access"没有冒号(那是旧沙箱字段);新版权限档才写成default_permissions = ":danger-full-access",两套不要混用,本教程只用sandbox_mode。改完新开一轮会话才生效。
4. 打开 Codex
进到你的项目目录,启动:
cd /你的项目路径
codex
- 第一次在某个目录启动,会问你是否信任该目录,选信任即可
- 因为已配置自定义供应商,正常不会再要求登录;万一弹出 ChatGPT 登录页,退出检查
config.toml顶层model_provider = "tiantian"与[model_providers.tiantian]名字是否一字不差
进去之后直接打字,例如:
这个项目是干什么的?
能正常回答,就说明配置通了。
四、怎么用(入门够用)
先问再改
第一次进项目,先让它摸清结构,再动手改代码。例如:
这个项目用了哪些技术?入口在哪?
再给一个具体任务:
给用户列表页加上按昵称搜索,复用现有表格组件,别改接口协议
说清楚「改哪、约束是什么」,比只说「修一下」省 Token、也少返工。
权限:别把两句写错位置
上面示例已经加了 approval_policy = "never" 和 sandbox_mode = "danger-full-access":跳过命令确认,并关掉文件系统沙箱(本机全权,自行承担风险)。
这两句只能写在文件顶层。 塞进 [model_providers.tiantian] 等于没写。改完要新开一轮会话。若用的是 VS Code / Cursor 里的 Codex 面板,面板自己的 Approvals / Sandbox 会覆盖配置文件,面板里也要选 Never + Full Access。
想每次都确认的话,删掉这两句,或在会话里用 /approvals 改回去。
常用启动方式
在系统终端里:
| 命令 | 作用 |
|---|---|
codex |
进入当前目录的交互会话 |
codex resume |
恢复上一次会话继续聊 |
codex "一句话" |
带着初始任务开聊 |
codex --version |
看版本 |
会话里常用
| 命令 | 作用 |
|---|---|
/help |
看有哪些斜杠命令 |
/init |
生成 AGENTS.md(项目说明,见下) |
/diff |
看本次会话改了什么 |
/quit |
退出(也可按两次 Ctrl+C) |
输入 / 可以唤出命令列表。
可选:项目里放一份 AGENTS.md
在项目根目录放 AGENTS.md,写上技术栈、目录约定、别乱动的红线等。有的话它更懂你的项目;没有也不妨碍先试用(Claude Code 用户的 CLAUDE.md 与之等价,内容可直接复用)。
五、省钱与排障
你前面已经用天天AI 接好了,比官方订阅通常便宜一截。再用几条习惯继续省:
- 模型保持
auto,让系统选;小活别硬指定最贵的那档 - 任务说清楚范围(改哪个文件、不要动什么)
- 大改可以先让它「只分析、先别改代码」,确认方案再动手
常见问题:
codex找不到:新开终端;确认 npm 全局目录在 PATH 里;重装一次npm install -g @openai/codex- 报配置错误 / 提示 wire_api 不支持:说明在用旧版 Codex 或抄了旧教程的
wire_api = "chat"。把配置里的wire_api改成"responses";还不行就升级:npm install -g @openai/codex@latest - 报鉴权错误 / 401:检查
config.toml里http_headers那行,Bearer后面有空格、密钥是完整的sk-mt-...;回控制台确认密钥没删、余额够 - 报 404 / 找不到端点:检查
base_url是不是https://ai.ttshuli.com/v1(别漏/v1、别多写路径) - 仍弹 ChatGPT 登录:检查
config.toml顶层model_provider = "tiantian"与[model_providers.tiantian]名字是否一字不差 - 仍不停弹权限确认:
approval_policy/sandbox_mode写错位置了。必须在[model_providers.tiantian]上面的顶层;写在表里面等于没写。改完新开会话。IDE 面板也会覆盖配置,面板里同样改成 Never + Full Access - 要换密钥:改
config.toml里http_headers的Bearer后面那一串,重启 Codex 即可
官网速查
- Codex 官方文档:https://developers.openai.com/codex/cli/
- Codex 开源仓库:https://github.com/openai/codex
- chat/completions 弃用公告:https://github.com/openai/codex/discussions/7782
- Node.js:https://nodejs.org/
- 天天AI:https://ai.ttshuli.com
- 天天AI 接入文档:https://ai.ttshuli.com/docs.html
- Claude Code 教程:/articles/claude-code-install.html
- OpenCode 教程(多角色编排):/articles/opencode-oh-my-opencode.html
装完先跑:写好 ~/.codex/config.toml(密钥在 http_headers 里)→ cd 进项目 → codex → 问一句「这个项目是干什么的」;通了再丢一个小改动任务。