TL;DR
OpenAI Codex CLI 让你在本地安全驾驭 GPT-5.2 算力,无需上传代码到云端。本文揭秘 sandbox 三境界(只读→工作区→YOLO)、config.toml 武器库、exec 自动化实战,以及 90% 的人都会踩的权限配置坑。
为什么你需要 Codex CLI?
2026 年,AI 编程助手成为标配。Cursor、Windsurf 很香,但你的代码必须上传云端。
企业代码不能外传?本地模型太弱?
OpenAI 刚发布的 Codex CLI 给了第三条路——本地运行 + GPT-5.2 算力 + 完全可控的权限沙箱。
但 90% 的人装完就踩坑:
codex --yolo "帮我重构这个项目"
# AI: "好的,我先删掉这些'无用'的配置文件..."
# 你: "???我的 .env 呢???"
--yolo 一时爽,删库跑路火葬场。
如何在本地安全地驾驭 Codex?如何让 AI 既能改代码,又不会 rm -rf /?
这篇文章分三幕解答:
1. 新手上路:安装→登录→第一次安全运行
2. 权限掌控:sandbox 三境界 + config.toml 武器库
3. 自动化进阶:exec + MCP 扩展实战
第一幕:新手不翻车的最小可用配置
安装 Codex CLI
两种方式(推荐 npm,更新快):
# 方式 1: npm(推荐)
npm i -g @openai/codex
# 方式 2: Homebrew
brew install codex
坑点提醒:Homebrew 版本可能滞后,关键功能更新会慢 1-2 周。
登录:两种方式的选择
codex login
会提示你选择:
- ChatGPT 登录(订阅访问)
- 适合:已有 ChatGPT Plus/Pro 订阅的个人用户
- 优点:无需额外付费
-
缺点:受订阅计划的使用限制
-
API Key 登录(按量计费)
- 适合:企业用户、高频使用场景
- 优点:无限制调用(只要账户有余额)
- 缺点:需要单独充值 OpenAI API 账户
凭据缓存:登录信息默认存在
~/.codex/auth.json或系统 keychain,可通过config.toml控制:
toml
cli_auth_credentials_store = "keyring" # file | keyring | auto
第一次安全运行:只读模式
永远不要第一次就给 AI 写权限。
先用只读模式让 AI 帮你审阅代码:
codex --sandbox read-only "帮我审阅这个 PR,找出潜在的性能问题"
发生了什么?
– ✅ AI 可以读取当前目录的所有文件
– ❌ AI 不能修改任何文件
– ❌ AI 不能执行任何命令
情绪舒缓:”原来可以先只读,不会搞坏东西。”
第二幕:Sandbox 三境界——从只读到 YOLO 的生死边界
Codex CLI 的权限控制靠两个参数:
– --sandbox:read-only | workspace-write | danger-full-access
– --ask-for-approval:untrusted | on-failure | on-request | never
境界 1:只读禅师(read-only)
适用场景:
– 代码审阅(Code Review)
– 学习别人的开源项目
– 生成文档/注释
命令:
codex --sandbox read-only --ask-for-approval on-request
社交货币:”我用 AI 做 Code Review,但绝不让它瞎改。”
境界 2:工作区剑客(workspace-write)⭐ 推荐
这是 99% 场景的最佳选择。
命令:
codex --full-auto # 便捷别名,等价于 --sandbox workspace-write
核心机制:
– ✅ 可以修改当前工作目录的文件
– ✅ 可以创建/删除当前目录下的文件
– ❌ 默认无网络访问(需手动开启)
– ❌ 不能修改系统文件(如 /etc/hosts)
– ❌ 不能访问父目录(除非用 --add-dir 显式授权)
常见坑:workspace-write 默认没网络
很多人发现 AI 写的脚本无法下载依赖、调用 API,原因是 workspace-write 默认禁用网络。
解决方案:在 ~/.codex/config.toml 中开启:
[sandbox_workspace_write]
network_access = true
允许额外目录写权限(比直接 danger-full-access 更安全):
codex --add-dir ../shared --add-dir ~/scripts
情绪触发:焦虑→共鸣(”原来 workspace-write 默认没网,怪不得我的脚本跑不通!”)
境界 3:YOLO 狂徒(danger-full-access)⚠️ 极度危险
命令:
codex --yolo # 别名:--dangerously-bypass-approvals-and-sandbox
AI 可以做什么?
– ❌ 删除任意文件(包括系统文件)
– ❌ 修改系统配置(如 /etc/passwd)
– ❌ 执行任意网络请求(可能泄露敏感信息)
– ❌ 安装系统级依赖(可能引入恶意软件)
唯一适用场景:
– 隔离的 Docker 容器
– 一次性的临时任务
– 你完全理解 AI 要做什么
官方起名 dangerously,你还敢随便用?
情绪触发:愤怒/警惕(”这是在玩火。”)
Sandbox 三境界对比表
| 模式 | 适用场景 | 风险等级 | 推荐指数 |
|---|---|---|---|
read-only |
代码审阅、学习 | 🟢 无风险 | ⭐⭐⭐⭐ |
workspace-write |
日常开发、重构 | 🟡 低风险 | ⭐⭐⭐⭐⭐ |
danger-full-access |
隔离容器、紧急修复 | 🔴 极高风险 | ⭐ |
第三幕:自动化进阶——让 Codex 成为 CI 管道的一环
codex exec:非交互式自动化
codex exec 是跑脚本、CI、流水线的主力:
– 进度写到 stderr
– 最终结果写到 stdout
– 方便管道处理和日志分离
基本用法:
codex exec "总结仓库结构并标注风险点"
绝活 1:结构化输出(JSON Schema)
场景:生成 changelog、提取依赖版本、自动化文档
codex exec "提取项目元数据" \
--output-schema ./schema.json \
-o ./project-metadata.json
输出示例(project-metadata.json):
{
"name": "my-awesome-project",
"version": "2.3.1",
"dependencies": ["react@18.2.0", "next@14.0.0"],
"last_commit": "2026-01-27"
}
下游消费:
jq '.version' project-metadata.json # 2.3.1
情绪触发:敬畏(”原来 AI 可以输出结构化数据,直接接入 CI。”)
绝活 2:续跑(Resume)——多轮迭代修复
# 第一轮:发现问题
codex exec "review the change for race conditions"
# 第二轮:修复问题
codex exec resume --last "fix the race conditions you found"
适用场景:
– 复杂重构(先分析→再修改)
– 安全审计(先扫描→再修复)
– 性能优化(先 profiling→再优化)
绝活 3:MCP 扩展——接入外部工具
MCP(Model Context Protocol) 让 Codex 可以调用外部工具:
– 数据库查询
– Jira 工单管理
– Slack 通知
– 自定义 API
添加 MCP Server:
codex mcp add context7 -- npx -y @upstash/context7-mcp
查看可用工具(在 TUI 中):
codex
# 然后输入:
/mcp
实战示例:让 Codex 自动创建 Jira 工单
codex exec "分析这个 bug,创建 Jira 工单并分配给后端团队"
情绪触发:敬畏(”AI 可以这样串联整个工作流?”)
高频 CLI Flags 速查
# 指定模型
codex -m gpt-5.2-codex
# 指定工作目录(在 agent 开始前切到该目录)
codex -C /path/to/repo
# 允许 Web Search(agent 可调用 web_search)
codex --search
# 选择沙箱与审批策略
codex -s workspace-write -a on-request
# 直接用本地开源 provider(需要 Ollama 运行)
codex --oss
# 载入 profile(预设配置)
codex --profile full_auto
# JSONL 事件流输出(便于接 jq/CI 解析)
codex exec --json "..."
# 把最终回复写到文件(仍会打印到 stdout)
codex exec -o ./last.txt "..."
TUI 内置 Slash Commands(交互式必备)
在 Codex 交互式界面中,可以用 / 开头的命令控制行为:
| 命令 | 作用 | 使用场景 |
|---|---|---|
/status |
查看当前模型、审批策略、token 使用 | 确认配置是否生效 |
/approvals |
中途切换权限/审批策略 | 从只读切到自动模式 |
/model |
切换模型 | 换用更快/更便宜的模型 |
/diff |
查看工作区 diff(含未追踪文件) | 确认 AI 改了什么 |
/review |
让 Codex 审阅当前工作树 | 提交前的最后检查 |
/mention |
把文件/路径挂载进对话 | 引用其他文件作为上下文 |
/compact |
压缩对话(释放上下文) | token 用完时清理历史 |
/new |
开新对话线程 | 切换到不同的任务 |
/resume |
从历史会话恢复 | 继续昨天的工作 |
实战工作流:
/diff # 看 AI 改了什么
/review # 让 AI 自审
/approvals # 确认权限设置
/compact # 清理上下文
config.toml 武器库:一次配置,终身受用
Codex 的用户配置在 ~/.codex/config.toml。
最小可用配置
# 模型与 provider
model = "gpt-5.2-codex"
model_provider = "openai"
# 审批策略与沙箱模式(推荐组合)
approval_policy = "on-request" # untrusted | on-failure | on-request | never
sandbox_mode = "workspace-write" # read-only | workspace-write | danger-full-access
# 开启 workspace-write 的网络访问
[sandbox_workspace_write]
network_access = true
Profiles:一键切换”模式”
场景:不同项目需要不同的权限策略。
[profiles.full_auto]
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[profiles.readonly_quiet]
approval_policy = "never"
sandbox_mode = "read-only"
[profiles.danger_zone]
approval_policy = "never"
sandbox_mode = "danger-full-access"
使用:
codex --profile full_auto
codex --profile readonly_quiet
CLI 单次覆盖配置
不想改配置文件?用命令行参数临时覆盖。
# 覆盖模型
codex --model gpt-5.2-codex
# 覆盖任意配置项(支持 dot notation)
codex --config sandbox_workspace_write.network_access=true
常见坑与排查
坑 1:workspace-write 默认没网络
症状:AI 写的脚本无法下载依赖、调用 API
解决:在 config.toml 中开启 network_access = true
坑 2:YOLO 模式误删文件
症状:AI 删掉了”看起来无用”的配置文件
解决:永远不要在生产代码上用 --yolo,只在隔离容器中使用
坑 3:CI 环境凭据问题
症状:CI 管道中 codex login 失败
解决:用环境变量传递 API Key:
export OPENAI_API_KEY="sk-..."
codex exec --full-auto "..."
坑 4:token 用完导致对话中断
症状:长对话中 AI 突然”失忆”
解决:用 /compact 压缩对话,或 /new 开新线程
你现在有三个选择
-
继续用 Cursor
代码上传云端,方便但不可控 -
用本地模型
可控但智商感人(Llama 3 写的代码你敢用?) -
用 Codex CLI + 正确的 sandbox 配置
既要本地隐私,又要 GPT-5.2 算力
立即行动
安装 Codex CLI
npm i -g @openai/codex
codex login
创建你的第一个 profile
cat > ~/.codex/config.toml << EOF
model = "gpt-5.2-codex"
approval_policy = "on-request"
sandbox_mode = "workspace-write"
[sandbox_workspace_write]
network_access = true
EOF
第一次安全运行
cd your-project
codex --full-auto "帮我重构这个模块,提升可读性"
转发给你的 Tech Lead
把这篇文章转发给你的技术负责人,告诉他:
“我们可以不用等 Cursor 企业版审批了。
Codex CLI 让我们在本地安全地用 GPT-5.2,代码不出内网。”
这就是 2026 年本地 AI 工具的正确打开方式。






AI周刊:大模型、智能体与产业动态追踪
程序员数学扫盲课
冲浪推荐:AI工具与技术精选导航
Claude Code 全体系指南:AI 编程智能体实战
最新评论
这篇文章写得太实用了!按照步骤一步步来,真的能从小白搭建起一个仿小红书的小程序。Cursor的AI补全功能确实大大提高了开发效率,感谢分享!
对比得很清晰。个人觉得如果只是日常聊天和简单任务,Claude 4.5的性价比更高;但如果是复杂的编程任务,GPT-5.2还是更稳定一些。希望能看到更多关于具体使用场景的对比。
开源项目的安全确实容易被忽视。这个案例提醒我们,即使是小功能也要做好权限校验。建议作者可以补充一下修复后的代码实现,让读者更清楚如何防范此类问题。
这个案例太典型了。配置错误导致的故障往往最难排查,因为看起来一切都正常。我们在生产环境也遇到过类似问题,后来引入了配置审查机制才好转。建议大家都重视配置管理!
很棒的漏洞分析!这种小号入侵的问题确实很容易被忽略。建议项目方可以增加一些风控规则,比如检测同一IP的多次注册行为。感谢分享这个案例!
FreeBSD的jail机制确实很强大,能把服务隔离得很干净。不过配置起来确实有点复杂,这篇文章把步骤写得很详细,准备按照教程试试!
实测下来确实如文章所说,规划能力有提升但偶尔会抽风。天气卡片那个案例很有意思,说明模型在理解上下文时还是会踩坑。希望后续版本能更稳定一些。
论文筛选真的是科研人员的痛点,每天arxiv上那么多新论文,手动看根本看不过来。这个工具如果能准确筛选出相关论文,能节省不少时间。感谢开源!