Codex 的安装和使用
(一)安装
1. Ubuntu
安装 Node.js(推荐 20+)
sudo apt update
sudo apt install -y nodejs npm
检查版本:
node -v
npm -v
如果版本低于 18,建议用 nvm 重装(很多 Ubuntu 自带版本很老)。
安装 Codex CLI
npm install -g @openai/codex
检查:如果看到帮助说明就成功。
codex --help
Codex CLI 和 Cursor 有什么区别?
Codex CLI 无 UI,它的工作方式是:
- 读取当前目录代码
- 理解项目
- 修改文件
- 执行 shell
- 运行测试
- 再修改
所以它更像: AI DevOps / AI 工程代理, 而不是简单的代码补全工具。
Cursor 是一个 AI IDE。
本质上是:VS Code + AI
(二)配置 OpenRouter API
设置 API key
export OPENAI_API_KEY="你的OPENROUTER_KEY"
Codex CLI 默认只支持 OpenAI 官方 API,不直接支持 OpenRouter。所以我们需要 改 API base URL
export OPENAI_BASE_URL="https://openrouter.ai/api/v1"
设置默认模型
export OPENAI_MODEL="openai/gpt-5.2"
可选:写入
.bashrc否则每次登录都要重新 export。
vim ~/.bashrc加入:
export OPENAI_API_KEY="你的OPENROUTER_KEY" export OPENAI_BASE_URL="https://openrouter.ai/api/v1" export OPENAI_MODEL="openai/gpt-5.2"保存后:
source ~/.bashrc
(三)测试
进入一个代码目录,比如:
mkdir test_codex
cd test_codex
然后运行:
codex
或者直接给任务:
codex "create a hello world python script"
如果配置正确,它会:
- 调用 OpenRouter
- 返回代码
- 写入文件

Codex CLI 默认会强制使用
gpt-5.3-codex作为 coding agent 模型,即使你改了 API base URL。在最新版本 Codex CLI 中:
- 默认模型:
gpt-5.3-codex是专门给 终端代理 / coding agent 用的模型。方法1:启动时指定模型
codex -m gpt-5.2-codex或者:
codex --model gpt-5例如:
codex -m gpt-5 "explain this repo"
方法2:交互模式切换
在 Codex 终端里输入:
/model然后选择模型。
CLI 支持:
- gpt-5.3-codex
- gpt-5.2-codex
- gpt-5.1-codex-mini
- gpt-5
- 等等
方法3:永久修改默认模型(推荐)
编辑配置文件:
vim ~/.codex/config.toml写:
model = "gpt-5.2-codex"以后默认就会用这个模型。
(四) 最常见的 5 个用途
我建议你以后这样用:
1 阅读项目
codex "explain this repository"
2 自动改代码
codex "add logging to this project"
3 自动修 bug
codex "fix the error in main.py"
4 自动写 Dockerfile
codex "create a dockerfile for this project"
5 自动部署
codex "write a systemd service for this app"
(五)权限控制 和 容器隔离
Codex 本身没有“额外权限”,它只拥有你当前 Linux 用户的权限。Codex 本质上只是 替你运行 shell 命令。如果你运行 sudo codex,那么:Codex 会获得 root 权限。
默认情况下 Codex 能读代码,修改代码,运行普通命令,但只限于 当前工作目录。
1. Codex 的三种权限级别
- 默认模式(安全)
--sandbox workspace-write
能力: 读文件,改项目代码,运行普通命令
限制:不允许改系统,不允许访问任意路径,不允许危险命令
-
半自动模式
codex --full-auto等价于:
--sandbox workspace-write
--ask-for-approval on-requestAI可以:自动改代码,自动运行命令,但如果命令危险会询问。 (OpenAI开发者)
-
完全自由模式(危险)
codex --dangerously-bypass-approvals-and-sandbox
或
codex --yolo
效果:
- 不再询问
- 没有 sandbox
- 可以执行任何命令
例如:
apt install
docker run
systemctl
rm -rf
这是 完全系统权限。
2. Linux sandbox 机制
Codex 在 Linux 上默认使用 Landlock + seccomp容器化 来限制 AI 执行命令。
它是在 宿主 Linux 进程里运行的,但给 agent 子进程加了一层 Linux sandbox(Landlock + seccomp)。也就是说:
Shell
└─ codex (CLI)
└─ sandboxed subprocess (AI 执行的命令)
而不是:
Docker container
└─ codex
默认情况下是这样:AI 并不是直接执行命令,而是通过一个 sandbox executor。
User Terminal
│
▼
codex CLI (普通用户进程)
│
▼
Sandbox Executor
│
┌───────────────┐
│ Landlock FS │ 限制文件系统访问
│ seccomp │ 限制系统调用
└───────────────┘
│
▼
AI 生成的 shell commands
其中
-
Landlock 是 Linux kernel 的 安全模块(LSM)。
作用:限制进程可以访问哪些路径。
例如 Codex 会设置类似规则:
allow:
./project/**
deny:
/etc/**
/usr/**
/home/**所以 AI 执行:
cat /etc/passwd即使你是 sudo 用户也会直接被 kernel 拒绝。
-
seccomp
作用:限制系统调用(syscalls)
例如可以禁止:
mount
ptrace
clone
reboot所以 AI 进程不能:
mount filesystem
debug other processes
create privileged namespaces这防止 AI 逃逸 sandbox。
为什么不用 Docker
Docker sandbox 成本很高。启动延迟太慢
Codex CLI 本身是在 sandbox 外的。
结构是:
codex CLI
│
├─ network access
├─ API access
│
└─ spawn sandboxed subprocess
└─ run commands所以:
- Codex 可以联网
- 可以调用 API
- 可以管理 sandbox
但 AI 执行的 shell 在 sandbox 里。
如果你运行:
codex --dangerously-bypass-approvals-and-sandbox
或者
codex --yolo
结构就变成:
Shell
└─ codex
└─ AI commands (no sandbox)
此时没有沙箱,AI 就直接执行任何命令。