新手上路(八):Codex 还在终端里切来切去?VS Code 扩展装上,编辑器里直接问、直接改 Codex IDE 集成——VS Code 与终端之外的 CodexWindows 10/11 · Codex CLI v0.130.0 · VS Code 1.100 · DeepSeek V4 Pro · dsv4-cc-proxy-tray · 2026-06-02 · 中度时效一、这篇教程解决什么问题一句话定位前七篇你一直在终端里用codex命令——但大部分日常编码是在 VS Code 里完成的。Codex 的 VS Code 扩展可以直接在编辑器里对话、内联编辑、选中代码即问。这篇教你安装、配置、避开已知坑并建立一套 CLI IDE 的协作工作流。跳读指南只想装扩展的直接跳到 第二节 安装与首次启动。想搞清楚配置怎么共享的跳到 第四节 config.toml 与扩展配置的关系。想知道 Codex 和 Copilot 能不能同时装的跳到 第八节 与 GitHub Copilot 共存。遇到问题的跳到 Debug 章节。阅读前提已完成第 0 篇安装codex命令能在终端正常启动dsv4-cc-proxy-tray 已启动且工作正常了解config.toml基础详见 [一config.toml 深度配置](新手上路一Codex config.toml 深度配置——模型供应商、Profile 与沙箱机制.md)已安装 VS Code1.100 版本读完能得到什么了解 Codex 在 CLI、VS Code、JetBrains 三端的可用功能和差异掌握 VS Code 扩展的安装、配置和四种交互方式Sidebar Chat / Inline Edit / 选中即问 / Agent Mode搞清楚 CLI config.toml 和 VS Code 扩展的配置共享机制——以及扩展 GUI 权限选择器会覆盖 config.toml 的关键陷阱一套 CLI IDE 的协作工作流终端做重型操作编辑器做轻量修改和审查Codex 与 GitHub Copilot 的差异和共存策略二、安装与首次启动2.1 三端形态速览Codex 目前有三种使用形态形态安装方式主要能力适合场景CLI终端npm install -g openai/codex或 winget完整功能Profiles、MCP、exec、Sandbox重型操作、重构、CI/CDVS Code 扩展扩展市场搜索由 OpenAI 官方发布Sidebar Chat、Inline Edit、Agent Mode、云委派日常编码、轻量修改、代码理解JetBrains 插件JetBrains 插件市场基础 Chat 功能仅限 JetBrains 用户功能受限本文聚焦 VS Code 扩展。JetBrains 插件现状见 第七节。2.2 安装前关键前提VS Code 扩展的正式名称为“Codex – OpenAI’s coding agent”由 OpenAI 发布安装量 970 万它依赖本地已安装的codexCLI。# 确认 CLI 已安装codex--version# 预期: codex x.x.xDeepSeek 用户特别注意扩展不从 Shell 继承环境变量。如果你在 PowerShell$PROFILE中设置了DEEPSEEK_API_KEY扩展看不到。必须创建~\.codex\.env文件# 创建 C:\Users\用户名\.codex\.env DEEPSEEK_API_KEYsk-你的Key |Out-File-FilePath$env:USERPROFILE\.codex\.env-Encoding utf8这是踩坑率最高的一步。没有这个文件扩展会尝试直连 OpenAI API忽略你的代理配置。2.3 安装Step 1打开 VS Code Step 2CtrlShiftX 打开扩展面板 Step 3搜索 Codex — OpenAI Step 4找到发布者为 OpenAI 的 Codex — OpenAIs coding agent → Install Step 5安装完成后左侧活动栏出现 Codex 图标# 验证扩展已安装code--list-extensions|findstr-i codex# 预期: openai.chatgpt该扩展的 marketplace ID2.4 首次启动点击左侧活动栏的 Codex 图标 → 侧边栏打开 Chat 面板扩展自动读取~\.codex\config.toml获取模型配置点开聊天输入框下方的权限下拉菜单——默认为 “Agent” 模式如果侧边栏显示 “Connection error” 或模型名显示为gpt-5-codex而不是你配的deepseek-v4-pro说明扩展没读到你的配置。见 Debug #2。三、VS Code 扩展的四种交互方式3.1 Sidebar Chat侧边栏对话—— 主力相当于把终端 Codex 对话搬到了 VS Code 侧边栏┌─────────────────────┐ │ Codex 侧边栏 │ │─────────────────────│ │ 上下文: main.py │ ← 自动感知当前活动文件 │ │ │ 这段代码加个缓存层 │ │ │ │ 我会给 get_user │ │ 加 Redis 缓存... │ ← 回复 代码 diff │ │ │ [Apply] [Reject] │ ← 一键应用或拒绝修改 └─────────────────────┘可用功能filename引用文件作为附加上下文拖放文件到输入框选中代码后右键 “Add to Codex Chat”斜杠命令/review、/compact、/status3.2 Agent Mode默认—— 自动执行操作VS Code 扩展默认以Agent 模式运行意味着 Codex 不仅回答问题还能自动读写文件、运行命令模式行为何时用Chat只读仅回答纯问答、分析、查询Agent默认工作区读写 按需审批日常开发推荐Agent (Full Access)无沙箱限制不推荐日常使用严格安全项目如果要限制扩展的行为应该在config.toml中设sandbox_mode read-only然后把扩展的权限下拉菜单选为Custom (config.toml)。3.3 Inline EditCtrlI—— 小块修改光标放在代码中按CtrlI直接输入指令Codex 修改代码并以 diff 形式展示# 操作流程1.打开 main.py光标放在 process_order 函数体 2.CtrlI 3.输入add type hints and try/except for ValueError4.回车 → Codex 显示diff预览 5.检查diff→ Accept 或 RejectInline Edit 适合小块修改。不要用它做跨文件重构——切到终端用 CLI。3.4 云委派Cloud Delegation—— 长时间任务扩展可以把耗时长的任务全项目重构、大规模代码生成委派到云端运行在 Chat 中输入任务 → 勾选 Delegate to cloud → 任务在 OpenAI 云端执行 → 完成后通知你 → 审查变更 diff → 本地 Apply注意云委派使用OpenAI 的模型不是 DeepSeek不计入你的 DeepSeek API 消费。但需要 ChatGPT 订阅Plus/Pro。如果你是纯 DeepSeek 用户此功能不可用。四、config.toml 与 VS Code 扩展的配置共享4.1 共享机制——核心真相VS Code 扩展和 CLI 共用同一份~\.codex\config.toml。没有独立的扩展配置文件。这是有意为之的设计——配置一次到处使用。但不是所有功能都跨端等效config.toml 字段CLIVS Code 扩展说明model✅✅共享model_provider✅✅共享base_url✅✅共享——都指向代理model_reasoning_effort✅✅共享instructions/developer_instructions✅✅共享sandbox_mode✅⚠️共享但扩展 GUI 会覆盖见下approval_policy✅⚠️共享但扩展 GUI 会覆盖profiles.*✅❌扩展不支持 Profile 切换MCP 配置✅⚠️Windows/WSL 下扩展经常检测不到 MCPmodel_max_output_tokens✅✅共享4.2 最大陷阱扩展 GUI 权限选择器覆盖 config.tomlVS Code 扩展的聊天输入框下方有一个权限下拉菜单提供四个选项┌──────────────────────────┐ │ Chat │ ← 只读 │ Agent默认 │ ← 工作区写入 按需审批 │ Agent (Full Access) │ ← 无限制 │ Custom (config.toml) │ ← 使用 config.toml 的权限设置 ✅ └──────────────────────────┘前三个选项会覆盖 config.toml 中的approval_policy和sandbox_mode。只有选 “Custom (config.toml)” 时扩展才真正尊重你的 TOML 配置。这是最容易踩的坑。很多人在 config.toml 里精心配了审批规则结果扩展选了 Agent 模式——所有规则都被忽略。4.3 扩展专属的 VS Code 设置在 VS Codesettings.jsonCtrl,→ 搜索 “codex”中的扩展专属项设置项作用推荐值chatgpt.cliExecutable自定义 codex 二进制路径默认无需修改chatgpt.runCodexInWindowsSubsystemForLinux在 WSL 而非 Windows 中运行如果你用 WSL 开发 →trueWindows 用户注意如果启用了chatgpt.runCodexInWindowsSubsystemForLinux扩展会读 WSL 内的~/.codex/config.toml而不是 Windows 的%USERPROFILE%\.codex\config.toml。这是另一个常见踩坑点——改了半天 Windows 的 config.toml扩展根本不读。4.4 配置改了不生效改完config.toml后扩展不会即时读取方式 1重新加载 VS Code 窗口 CtrlShiftP → Developer: Reload Window 方式 2关闭侧边栏 Chat → 重新打开 侧边栏右上角 ⋯ → Close Panel → 重新点击 Codex 图标五、CLI 与 IDE 的协作工作流5.1 分工原则CLI 和扩展不是替代关系——它们互补任务类型CLI终端VS Code 扩展项目初始化/脚手架✅ 完整❌ 不适合理解一段代码✅ 可以✅更好选中即问重构单个函数✅ 可以✅更好CtrlI跨多文件重构✅更好完整工具链❌ 无 exec 模式运行测试 修 bug✅ Bash 循环❌ 不能代码审查diff 管道✅ exec 模式❌ 无管道输入快速修改一行❌ 太重要切终端✅更好CI/CD 自动化✅ exec JSON 输出❌ 不支持Profiles 切换✅--profile heavy❌ 不支持5.2 典型一天的双端节奏09:00 VS Code 打开项目 → Sidebar Chat 就绪 09:15 产品说改一个字段名 → 选中代码 CtrlI 10:00 不熟悉的 API → 选中 → Add to Codex Chat 11:00 重写一个模块跨 5 个文件 → 切终端 → codex --profile heavy 14:00 PR Review → 终端 git diff | codex exec -p 审查 15:00 修 review 意见 → VS Code 逐一 CtrlI 17:00 安全检查 → 终端 codex 跑完整扫描5.3 准则需要改 ≥ 3 个文件 → 切终端 CLI完整能力 需要改 ≤ 2 个文件 → VS Code 扩展轻量快速 需要思考/讨论 → VS Code Sidebar Chat不离开编辑器 需要自动化/CI → CLI exec唯一选择六、与 GitHub Copilot 的差异和共存6.1 互补而非竞争维度Codex VS Code 扩展GitHub Copilot交互方式对话式你问它答/它改补全式你停顿它接上触发时机你主动提问你停顿时自动代码修改Inline Edit指令 → 整体修改逐行补全一点一点接AI 角色副驾驶员能讨论能改自动完成快速接上后端模型DeepSeek V4或自定义GPT-5.4-mini / GPT-5.5成本DeepSeek API 按量计费Copilot 订阅$10/月6.2 同时安装各司其职两个扩展可以同时安装、同时运行。互不冲突你在 VS Code 里写代码 ⌨️ type def process_order( ← 停顿 → Copilot: 灰色补全建议 (order: dict) - bool: ← 自动触发 选中整段函数 → CtrlI → Codex: add error handling for empty orders ← 你主动触发 侧边栏打开 Codex Chat → 这个模块是不是应该拆成两个类 ← 开放式思考推荐分工场景用谁代码自动补全Copilot一直在后台理解代码Codex选中 → Ask功能级修改Codex Inline EditCtrlI架构讨论Codex Sidebar Chat项目级操作Codex CLI终端七、JetBrains 插件现状与限制7.1 是否可用Codex 有官方 JetBrains 插件支持 IntelliJ IDEA、PyCharm、WebStorm、GoLand 等安装方式JetBrains IDE → Settings → Plugins → Marketplace → 搜索 Codex → Install但功能远不如 VS Code 扩展功能VS Code 扩展JetBrains 插件Sidebar Chat✅ 完整✅ 基础Agent 模式✅⚠️ 部分支持Inline Edit✅⚠️ 部分文件拖放✅❌Profiles❌❌MCP 服务器⚠️❌云委派✅❌7.2 已知限制依赖 CLI 预装与 VS Code 扩展一样同样需要.env文件JetBrains 插件也不从 Shell 继承环境变量不支持 Profiles重型操作仍需切终端更新频率低VS Code 扩展每月更新数次JetBrains 插件更新明显更慢建议如果你用 JetBrains IDE把 Sidebar Chat 当随时可问的 AI 助手。重型操作切到终端 CLI。不要在 JetBrains 插件上期望 VS Code 扩展的完整功能。八、DeepSeek VS Code 扩展配置验证8.1 确认扩展真的在用 DeepSeek安装扩展后最重要的第一步——确认它连的是 DeepSeek 而不是 OpenAI在 VS Code 侧边栏 Codex Chat 中输入 用简体中文回复你当前使用的模型全名是什么 预期回复deepseek-v4-pro或你 config.toml 中配置的模型名如果回复gpt-5-codex或类似 OpenAI 原生模型名 → 扩展忽略了你的 config.toml → 立即跳到 Debug #2。8.2 完整检查清单# 1. 确认 CLI 侧正常codex--version codex# 启动后确认模型名正确# 2. 确认 .env 文件存在cat~\.codex\.env# 必须包含 DEEPSEEK_API_KEYsk-...# 3. 确认 config.toml 语法正确# model_provider 引用的 key 必须在 [model_providers.xxx] 中存在# 4. 确认代理在运行curl http://localhost:16889/health九、Debug——五个最常见的 IDE 集成问题Debug #1扩展完全连不上现象VS Code 侧边栏 Codex Chat 显示 “Connection error” / “Failed to connect”。根因分析三种可能~\.codex\.env不存在——最常见。扩展不从 Shell 继承环境变量必须有.env文件代理没启动——curl localhost:16889/health确认base_url配置错误一览对比表维度正常异常.env存在且DEEPSEEK_API_KEYsk-...不存在或为空代理curl localhost:16889/health→ OKcurl 失败模型名Chat 中询问 → 回复deepseek-v4-pro回复gpt-5-codex修复# 1. 创建 .env DEEPSEEK_API_KEYsk-你的Key |Out-File-FilePath$env:USERPROFILE\.codex\.env-Encoding utf8# 2. 确认代理在运行curl http://localhost:16889/health# 3. 重启 VS Code验证重启 VS Code → 打开 Codex Chat → 输入 hi 收到回复 → 问题解决Debug #2扩展使用的是 GPT 而不是 DeepSeek现象CLI 中codex正常使用 DeepSeek V4 Pro但扩展显示正在用 GPT 模型。根因分析两种最常见原因model_provider字段拼写或引用错误——扩展启动时如果 TOML 解析失败或 provider key 不存在静默回退到 OpenAI 默认扩展的chatgpt.runCodexInWindowsSubsystemForLinux true但你在改 Windows 的config.toml——扩展实际在读 WSL 里的那份还有一个已知 bug#4558在新对话中模型名称可能未被正确传递给自定义 provider。修复# 1. 确认 config.toml 中 provider 引用正确cat~\.codex\config.toml# model_provider deepseek → 必须有 [model_providers.deepseek]# 2. 检查扩展是否在 WSL 模式# VS Code settings 中搜索 chatgpt.runCodexInWindowsSubsystemForLinux# 如果为 true → 检查 WSL 内 ~/.codex/config.toml不是 Windows 的# 3. 强制重读CtrlShiftP → Developer: Reload Window# 4. 如果仍有问题 → 给 config.toml 中 model 字段写完整路径名model deepseek-v4-pro# 不要用简写或别名验证扩展 Chat 中输入你的模型全名是什么 应回复 deepseek-v4-proDebug #3config.toml 配了权限规则但扩展不遵守现象config.toml 中approval_policy on-request配好了但扩展直接操作文件从不弹审批窗。根因分析这不是 bug是设计如此。扩展的权限下拉菜单覆盖了 config.toml。只要选择的是 “Chat”、“Agent” 或 “Agent (Full Access)”扩展的 GUI 设置优先级高于 config.toml。修复在扩展聊天输入框下方的权限下拉菜单中 选择 Custom (config.toml) → 这时扩展才真正读取并尊重 config.toml 的审批和沙箱设置历史此 Custom 模式在 v0.5.692026 年 2 月曾被移除社区强烈抗议后在 v0.5.70 恢复。目前仍可用但值得关注未来是否会再次变动。验证选 Custom 模式后用 CtrlI 做一次编辑操作 如果 config.toml 中 approval_policy on-request → 应弹出审批对话框Debug #4Inline Edit 说 “权限不足”现象按 CtrlI 输入指令后Codex 给出了分析但不改代码。或者直接报 “Edit was blocked”。根因分析四种可能权限下拉菜单选了 “Chat” 模式→ 只读永远不改文件sandbox_mode read-only在 config.toml 中 → 所有写入操作被阻止文件在项目工作区外→ 沙箱不允许越界写入文件是只读的git update-index --assume-unchanged或系统属性修复# 检查 1权限下拉菜单 → 确认是 Agent 或 Custom # 检查 2如果选了 Custom检查 config.toml sandbox_mode workspace-write # 不要用 read-only # 检查 3文件在项目目录内吗 # 如果文件在 C:\other_project\ → 沙箱会阻止 # 检查 4文件属性 Get-Item .\main.py | Select-Object IsReadOnly验证项目内打开任意 .py 文件 → 选中一行 → CtrlI → 输入简单指令 预期出现 diff 预览 → 可 AcceptDebug #5改完 config.toml 扩展的行为没变化现象你改了config.toml的model字段保存了但扩展还在用旧模型。根因分析扩展在启动时读取一次config.toml之后缓存。不会实时监听文件变更。此外如果你正在--resume旧会话旧会话的快照不包含新的 config.toml 改动。修复# 确保执行以下全部三步 1. 保存 config.toml 2. VS Code: CtrlShiftP → Developer: Reload Window 3. Codex Chat 面板 → 右上角 ⋯ → New Chat废弃旧会话缓存验证新 Chat 中输入你当前用的模型全名是什么 应与 config.toml 中的 model 字段一致十、速查卡10.1 三端对比能力CLIVS CodeJetBrainsProfiles 切换✅❌❌exec 模式✅❌❌MCP 服务器✅⚠️Windows/WSL 下不稳定❌Agent 自动操作✅默认✅默认⚠️云委派❌✅❌管道输入✅git diff | codex exec❌❌10.2 关键文件位置文件被谁读用途~\.codex\config.tomlCLI 扩展模型、provider、沙箱~\.codex\.env扩展仅环境变量Key$PROFILE中的$env:DEEPSEEK_API_KEYCLI仅环境变量10.3 常见踩坑速查问题答案扩展为什么显示 GPT 而不是 DeepSeek没建.env文件或 provider 名称拼写错误配了审批但不弹窗权限下拉菜单没选 “Custom (config.toml)”改了 config.toml 不生效需要 Reload Window New ChatCopilot 和 Codex 冲突吗不冲突——可以同时装十一、扩展阅读新手上路一Codex config.toml 深度配置 — config.toml 完整字段字典新手上路七双轨并行 — CLI IDE 混合使用的高级协作模式[新手上路九代码审查](新手上路九Codex 代码审查——用 Codex 做你的第一读者.md) — VS Code 内审查代码的流程----即将发布新手上路六成本优化 — 扩展和 CLI 共享成本策略十二、参考文献Codex IDE Extension (VS Code Marketplace) — 官方 VS Code 扩展ID: openai.chatgptCodex IDE Features (OpenAI Docs) — 扩展功能文档Codex CLI Configuration (OpenAI Docs) — config.toml 配置体系Custom Provider Model Name Bug (GitHub #4558) — 新对话中模型名被忽略Extension Ignores config.toml Approval Policy (GitHub #7963) — 权限 GUI 覆盖行为Sandbox Network Access Disabled (GitHub #5041) — macOS seatbelt 网络限制Path Case Sensitivity on Windows (GitHub #15993) — Windows 路径大小写敏感GitHub Copilot Documentation — Copilot 官方文档