在之前的系列文章中,我们分别探讨了 Codex 的沙箱模式、MCP 扩展、CI/CD 集成等进阶功能。但对于大多数开发者来说,Codex 最常用的场景仍然是——在 VS Code 的终端里敲下 codex 命令,让它帮忙改代码、写测试、修 bug。如何让 Codex 与 VS Code 配合得天衣无缝,把 AI 助手真正变成编辑器的一部分,是提升日常开发效率的关键。本文将介绍从基础配置到高级工作流的完整实践方案。
确保你已经完成了 Codex 的安装和登录:
# 安装 Codex CLI(macOS/Linux) curl -fsSL https://raw.githubusercontent.com/openai/codex/main/install.sh | bash # 或通过 npm 安装 npm install -g @openai/codex # 登录 OpenAI 账号 codex login
确认 VS Code 已安装并且 code 命令可用(Windows 下安装时勾选 "Add to PATH"):
code --version
在项目根目录创建 AGENTS.md 文件,这是 Codex 读取项目约定的核心配置:
# AGENTS.md ## 项目概述 这是一个基于 React + TypeScript 的全栈应用,前端使用 Vite 构建,后端使用 Express。 ## 技术栈 - 前端:React 18, TypeScript, Vite, Tailwind CSS - 后端:Express, Prisma ORM, PostgreSQL - 测试:Vitest(前端), Jest(后端) - Lint:ESLint + Prettier ## 编码规范 - 使用函数组件 + Hooks,避免 Class 组件 - API 路由遵循 RESTful 设计,放在 src/routes/ 目录 - 数据库迁移使用 Prisma Migrate - 所有 PR 前必须通过 `npm run typecheck && npm run lint && npm run test`
将这个文件放在项目根目录,Codex 每次启动时会自动读取,确保它的建议符合项目规范。
VS Code 的内置终端(` Ctrl+ ``)是使用 Codex 最自然的位置。你可以直接在其中输入 Codex 指令,AI 的回答和生成代码会直接显示在终端中。
# 启动交互式会话 codex # 或者直接给出一条指令(非交互模式) codex exec "帮我在 src/utils 下创建一个 formatDate.ts,处理日期格式化"
一个标准的工作流通常是这样的:
在 VS Code 编辑器中浏览代码,发现需要修改的地方
按 ` Ctrl+ `` 打开终端
输入 codex 启动会话
描述需求:"把 src/api/user.ts 里的 fetch 调用改成 axios,并统一错误处理"
Codex 自动定位文件、修改代码、运行测试验证
回到编辑器查看改动结果
这种 "编辑器浏览 + 终端 AI 执行" 的模式,比来回切换窗口高效得多。
VS Code 的 Tasks 系统可以让你一键运行预定义的 Codex 命令。在项目的 .vscode/tasks.json 中配置:
{
"version": "2.0.0",
"tasks": [
{
"label": "Codex: 代码审查当前文件",
"type": "shell",
"command": "codex",
"args": [
"exec",
"审查 ${file},检查潜在的性能问题、安全漏洞和代码坏味道,输出改进建议"
],
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Codex: 为当前文件生成单元测试",
"type": "shell",
"command": "codex",
"args": [
"exec",
"为 ${file} 生成完整的单元测试,使用 Vitest,覆盖所有导出函数和边界情况"
],
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
},
{
"label": "Codex: 生成 Git Commit Message",
"type": "shell",
"command": "codex",
"args": [
"exec",
"查看 git diff --staged,生成一条符合 Conventional Commits 规范的中文 commit message"
],
"problemMatcher": [],
"presentation": {
"reveal": "always",
"panel": "dedicated"
}
}
]
}
配置完成后,按 Ctrl+Shift+P → "Tasks: Run Task",就能看到这些预定义的 Codex 任务。你也可以在 keybindings.json 中给它们绑定快捷键:
[
{
"key": "ctrl+shift+r",
"command": "workbench.action.tasks.runTask",
"args": "Codex: 代码审查当前文件"
},
{
"key": "ctrl+shift+t",
"command": "workbench.action.tasks.runTask",
"args": "Codex: 为当前文件生成单元测试"
}
]
这样,选中文件后按 Ctrl+Shift+R 就能让 Codex 自动审查,按 Ctrl+Shift+T 自动生成测试——全程不需要离开键盘。
VS Code 支持多终端面板,这让你可以同时运行多个 Codex 会话。典型的并行工作模式如下:
| 终端面板 | 用途 | 示例命令 |
|---------|------|---------|
| 终端 1 | Codex 主会话(代码修改) | codex 交互模式 |
| 终端 2 | Codex 后台任务 | codex exec "分析整个项目的类型安全问题" |
| 终端 3 | 开发服务器 / 测试 | npm run dev 或 npm test -- --watch |
分屏操作:右键终端标签 → "Split Terminal"(或 Ctrl+Shift+5),即可在同一视图中查看多个终端。这样你可以在一个终端让 Codex 修改代码,在另一个终端观察开发服务器的热更新效果。
一个实用的实战案例——重构前端组件时:
# 终端 1:启动开发服务器 npm run dev # 终端 2(分屏打开):让 Codex 重构组件 codex exec "将 src/components/UserProfile.tsx 拆分为更小的子组件: - UserAvatar:头像展示 - UserInfo:基本信息 - UserStats:统计数据 保持 Props 接口清晰,确保 TypeScript 类型完整"
Codex 支持在项目级配置中定义自定义命令。在 .opencode/commands/ 目录下创建命令文件:
.opencode/commands/review.md:
--- description: 代码审查当前文件 argument-hint: [file-path] --- 请对 $ARGUMENTS 指向的文件进行全面代码审查,从以下几个维度分析: 1. **逻辑正确性**:代码逻辑是否存在边界条件处理不足的问题 2. **性能**:是否存在不必要的重复计算、内存泄漏风险 3. **安全性**:是否存在 XSS、SQL 注入、CSRF 等安全风险 4. **可维护性**:函数是否过长、命名是否清晰、注释是否充分 5. **最佳实践**:是否符合项目技术栈的惯用写法 输出格式化的审查报告,每个问题标注严重程度(🔴 严重 / 🟡 建议 / 🟢 优化)。
.opencode/commands/testgen.md:
--- description: 为指定文件生成单元测试 argument-hint: [source-file] --- 为 $ARGUMENTS 生成完整的单元测试文件,要求: - 测试框架使用本项目配置的 Vitest - 覆盖所有导出函数和组件 - 包含正常输入、边界值、异常输入三类测试用例 - 对 React 组件使用 @testing-library/react 进行渲染测试 - 每个测试用例包含清晰的中文描述 - 测试文件放在源文件同级的 __tests__ 目录下
定义好命令后,在 VS Code 终端中可以一键调用:
codex exec /review src/services/payment.ts codex exec /testgen src/components/DataTable.tsx
VS Code 的 Problems 面板(Ctrl+Shift+M)会汇总所有 TypeScript 类型错误、ESLint 警告等。你可以将这些诊断信息直接喂给 Codex,让它批量修复:
# 将 VS Code 的诊断输出导出并传给 Codex npx tsc --noEmit 2>&1 | codex exec "阅读以下 TypeScript 编译错误,逐一修复所有问题。错误输出:" --stdin
更优雅的方式是使用管道连接 lint 工具和 Codex:
# ESLint 错误修复
npx eslint src/ --format json | codex exec "根据以下 JSON 格式的 ESLint 报告,修复所有错误和警告:" --stdin
# 或者直接对单个文件
codex exec "阅读以下 ESLint 输出的问题并修复 ${file} 中的所有 lint 错误:" < <(npx eslint ${file})
一个被低估但极其高效的工作模式是——借助 VS Code 的 "Open in Editor" 能力,让 Codex 在终端中生成的内容直接在编辑器中打开:
# Codex 生成的新文件,用 VS Code 打开 codex exec "创建一个管理用户权限的 React Hook:src/hooks/usePermission.ts" # 生成完成后 code src/hooks/usePermission.ts
反过来,当你在编辑器中选中一段代码时,也可以快速让 Codex 分析:
# 对当前选中的代码提问(需要先将选中内容复制或通过管道传递) codex exec "解释这段代码的功能和潜在问题:$(pbpaste)"
结合以上所有技巧,一个完整的日常开发工作流如下:
1. git checkout -b feature/xxx # 创建功能分支 2. code . # 打开 VS Code 3. Ctrl+` → codex # 启动 Codex 交互会话 4. "根据 AGENTS.md 的规范,帮我搭建新功能的基础代码结构" 5. Ctrl+Shift+T # 触发测试生成 Task 6. npm run dev # 分屏启动开发服务器 7. Ctrl+Shift+R # 触发代码审查 Task,修复发现的问题 8. Ctrl+Shift+G → 查看改动 # VS Code Git 面板 9. codex exec "生成 git commit message" # 生成提交信息 10. git push && 创建 PR # 完成
上下文长度:在 VS Code 中打开过多文件后,Codex 的上下文可能受限。建议在 AGENTS.md 中明确指定需要始终关注的目录和文件。
模型选择:对于简单任务(格式化、lint 修复),使用 codex --model gpt-4o-mini 可以节省 token 消耗;复杂重构则使用默认的高能力模型。
安全问题:Codex 生成的代码在写入文件前会自动展示 diff,养成在 VS Code 编辑器中复核改动的习惯,不要盲目接受所有变更。
文件变更追踪:在 VS Code 的 SCM 面板中可以看到 Codex 修改的所有文件,配合 GitLens 等插件可以直观地对比 AI 改动前后的差异。
VS Code 和 Codex 的配合,本质上是将 AI 编程能力融入开发者已有的肌肉记忆中。通过在 VS Code Tasks 中预定义 Codex 命令、合理使用多终端面板、借助管道传递诊断信息,你可以把 "打开终端 → 输入 codex → 描述需求 → 验证结果 → 回到编辑器" 这个循环压缩到极致,让 AI 助手真正成为编辑器的原生能力,而不是一个需要频繁切换的外部工具。
从今天起,试着在你的 .vscode/tasks.json 里添加两个 Codex 任务,习惯用快捷键触发它们——你会发现,AI 编程的流畅度又上了一个新台阶。