[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-codex-cli-terminal-code-workflow-guide-en":3,"article-related-codex-cli-terminal-code-workflow-guide-en":30,"series-tools-f9613c62-8b17-4f69-b53a-4e54e846c665":82},{"id":4,"slug":5,"title":6,"content":7,"summary":8,"source":9,"source_url":10,"author":11,"image_url":12,"cover_image":12,"category":13,"language":14,"translated_content":11,"related_article_id":15,"keywords":16,"key_takeaways":22,"views":26,"created_at":27,"published_at":28,"topic_cluster_id":29},"f9613c62-8b17-4f69-b53a-4e54e846c665","codex-cli-terminal-code-workflow-guide-en","Codex CLI 让你在终端里写代码","\u003Cp data-speakable=\"summary\">我把这篇 \u003Ca href=\"\u002Ftag\u002Fcodex\">Codex\u003C\u002Fa> 上手说明拆成了终端可直接用的工作流模板。\u003C\u002Fp>\u003Cp>我用过不少“AI 写代码”工具，最烦的不是它们不会写，而是它们太爱抢方向。你让它补一个函数，它顺手把整个模块改了；你想在终端里跑一小步，它非要把 IDE、插件、账号、订阅全绑进来。最后的感觉就是：工具很多，手感很差。\u003C\u002Fp>\u003Cp>这次我看的是知乎这篇《如何配置使用 Codex 编写代码 — 完整上手指南（更新VScode安装codex插件使用入口）》，原文把选择路径讲得很直白：\u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2025255230749590320\">如果你重视灵活性和多模型支持，或者是在 Linux 服务器上工作，Codex CLI 是首选；如果更习惯在 IDE 内工作，可以考虑 Cursor；如果已经有 GitHub Copilot 订阅，可以继续保留。\u003C\u002Fa> 这句话其实把重点说透了：别把“AI 编程”想成单一产品，而要想成一套工作方式。\u003C\u002Fp>\u003Cp>我把它拆开后发现，真正有价值的不是“装了哪个插件”，而是你怎么把终端、编辑器、模型和权限边界拼在一起。下面我按这个思路讲，顺手给你一个能直接抄的模板。\u003C\u002Fp>\u003Ch2>先别问哪个最强，先问你在哪写代码\u003C\u002Fh2>\u003Cblockquote>如果你重视灵活性和多模型支持，或者是在 Linux 服务器上工作，Codex CLI 是首选；如果更习惯在 IDE 内工作，可以考虑 Cursor；如果已经有 GitHub Copilot 订阅，可以继续保留。\u003C\u002Fblockquote>\u003Cp>这段话的核心不是“推荐工具”，而是先按工作场景分流。说白了，工具不是越全越好，越贴近你当前环境越好。Linux 服务器、纯终端、远程机器，这些场景里你根本不想先折腾一个重 IDE；反过来，如果你每天都在 \u003Ca href=\"\u002Ftag\u002Fvs-code\">VS Code\u003C\u002Fa> 里切文件、看报错、跳定义，那 IDE 内的助手就比终端里来回切窗口舒服得多。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780089498661-jv8g.png\" alt=\"Codex CLI 让你在终端里写代码\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>我自己最早踩的坑就是把“能不能写”当成第一标准，结果装了一堆扩展，最后每次都要先想：我到底是在本地改、远程改，还是在容器里改？一旦上下文不清，AI 的建议就会越来越像瞎猜。\u003C\u002Fp>\u003Cp>怎么应用？很简单，先按下面三类分：终端优先、IDE 优先、订阅优先。你不是在选信仰，你是在选入口。\u003C\u002Fp>\u003Cul>\u003Cli>终端优先：适合 Linux、SSH、容器、脚本式改动。\u003C\u002Fli>\u003Cli>IDE 优先：适合日常函数修改、重构、定位报错。\u003C\u002Fli>\u003Cli>订阅优先：如果你已经有 Copilot，不必为了“统一”强行换工具。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>我建议你先把“入口”想清楚，再谈模型。入口错了，后面全是补丁。\u003C\u002Fp>\u003Ch2>Codex CLI 的价值，不是酷，而是少折腾\u003C\u002Fh2>\u003Cp>原文把 Codex CLI 放在首选位置，我觉得这个判断挺实在。CLI 的好处不是花哨，而是它把很多中间层都砍掉了：你不用先打开一个重型界面，不用为了一个小任务在多个面板里找按钮，也不用担心插件版本和编辑器版本互相打架。\u003C\u002Fp>\u003Cp>我理解它的实际含义是：把“写代码”变成一个命令行任务。你给它一个目录、一段上下文、一条修改目标，它就开始干活。对我这种经常在仓库里来回切换的人来说，这种方式很省脑子。\u003C\u002Fp>\u003Cp>我跑过类似流程时最明显的感受是，终端里做事更像“发工单”。你可以明确告诉它改哪里、别碰哪里、完成后跑什么检查。这个边界感很重要，因为 AI 最怕的就是自由发挥。\u003C\u002Fp>\u003Cp>怎么应用？我会把 CLI 的使用拆成四步：\u003C\u002Fp>\u003Cul>\u003Cli>先进入正确的仓库和分支。\u003C\u002Fli>\u003Cli>只给当前任务相关的文件和说明。\u003C\u002Fli>\u003Cli>明确要求它先列计划，再动手。\u003C\u002Fli>\u003Cli>改完立刻跑测试或 lint，不要拖。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你在服务器上工作，这种方式尤其顺手。远程环境里最烦的就是图形界面不稳定、插件不兼容、同步慢。CLI 没那么多戏，反而更稳。\u003C\u002Fp>\u003Ch2>IDE 不是落后，只是更适合另一种节奏\u003C\u002Fh2>\u003Cp>原文提到 Cursor 作为 IDE 内工作的一种选择，这点我同意。\u003Ca href=\"https:\u002F\u002Fcursor.com\u002F\">Cursor\u003C\u002Fa> 的优势在于，它把 AI 放在你本来就在用的编辑流程里，而不是强迫你切到另一个工作台。你在看代码、改代码、看 diff 的时候，助手就在旁边，这种连续性很值钱。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780089504188-a9v5.png\" alt=\"Codex CLI 让你在终端里写代码\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>它的实际意义是：当你需要频繁跳转、快速看上下文、边改边看结果时，IDE 内助手更顺手。尤其是重构、补测试、看报错链路这种活，编辑器里的上下文窗口比命令行更直观。\u003C\u002Fp>\u003Cp>但我也得说，IDE 内工具很容易让人变懒。因为它太方便了，你会不自觉地让它接管太多判断。结果是代码看起来改得很快，实际你根本没消化它为什么这么改。\u003C\u002Fp>\u003Cp>我自己的做法是把 IDE 工具限制在“局部协助”上：补全、解释、生成测试、辅助重构。涉及架构边界、状态流、权限逻辑，我还是会回到更显式的流程里确认。\u003C\u002Fp>\u003Cp>怎么应用？如果你偏 IDE，我建议你把它当成“增强编辑器”，不是“自动交付系统”。具体做法如下：\u003C\u002Fp>\u003Cul>\u003Cli>先让它解释现有代码，再让它改。\u003C\u002Fli>\u003Cli>优先用在单文件或小范围重构。\u003C\u002Fli>\u003Cli>每次改动都看 diff，不要只看结果。\u003C\u002Fli>\u003Cli>把测试和静态检查作为强制步骤。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你常用 \u003Ca href=\"https:\u002F\u002Fcode.visualstudio.com\u002F\">VS Code\u003C\u002Fa>，那就更简单了：让工具贴着编辑器走，但别让它替你做判断。\u003C\u002Fp>\u003Ch2>Copilot 不是必须替换，别做工具洁癖\u003C\u002Fh2>\u003Cp>知乎原文里有一句我很认同：如果已经有 \u003Ca href=\"\u002Ftag\u002Fgithub-copilot\">GitHub Copilot\u003C\u002Fa> 订阅，可以继续保留。这个判断很务实，因为很多人一看到新工具就想“统一栈”，最后把自己折腾得很累。实际上，AI 编程工具之间并不天然冲突，关键是你怎么分工。\u003C\u002Fp>\u003Cp>我把这句话翻成工程语言，就是：不同工具解决不同层次的问题。一个工具负责编辑器内的即时补全，一个工具负责终端里的批量任务，一个工具负责更复杂的多模型调用。你没必要强行让一个产品吃掉全部场景。\u003C\u002Fp>\u003Cp>我见过最没必要的浪费，是明明 \u003Ca href=\"\u002Ftag\u002Fcopilot\">Copilot\u003C\u002Fa> 已经覆盖了日常补全，还非要为了“统一体验”硬换到另一个系统。结果新工具还没熟，生产力先掉一截。说到底，订阅费不是唯一成本，切换成本也很贵。\u003C\u002Fp>\u003Cp>怎么应用？我的建议是先列出你现在的工作流，再决定保留什么：\u003C\u002Fp>\u003Cul>\u003Cli>日常补全和提示：保留 Copilot 这类编辑器内工具。\u003C\u002Fli>\u003Cli>批量修改和脚本任务：交给 CLI。\u003C\u002Fli>\u003Cli>复杂上下文和跨文件重构：看 IDE 与 CLI 谁更顺手。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你现在已经有一套能跑的组合，就别为了“最新”去折腾。能稳定交付的工具链，比看起来统一的工具链更值钱。\u003C\u002Fp>\u003Ch2>多模型支持真正值钱的地方，是你不用赌一个答案\u003C\u002Fh2>\u003Cp>原文提到 Codex CLI 的一个优势是多模型支持。这个点我特别在意，因为单模型工作流最容易出的问题，不是它不会答，而是它总在同一种错误里循环。你一旦把所有任务都押在一个模型上，遇到不擅长的场景就会很难受。\u003C\u002Fp>\u003Cp>我理解多模型支持的价值，不是“模型越多越高级”，而是你可以按任务切换。写测试、解释遗留代码、生成迁移脚本、整理注释，这些任务的最佳模型并不一定一样。能切换，就意味着你不用把所有问题都塞给同一种思路。\u003C\u002Fp>\u003Cp>我自己最常见的用法是：先用一个模型做粗分解，再用另一个模型复核边界。这样比单次问到底靠谱得多。尤其是涉及副作用、数据结构、权限路径的时候，第二个视角经常能帮你抓出前一个回答里的漏点。\u003C\u002Fp>\u003Cp>怎么应用？别把多模型支持理解成“到处试”。你应该把它变成固定流程：\u003C\u002Fp>\u003Col>\u003Cli>先让一个模型列出修改计划。\u003C\u002Fli>\u003Cli>再让另一个模型检查风险点。\u003C\u002Fli>\u003Cli>最后只在当前仓库里落地改动。\u003C\u002Fli>\u003C\u002Fol>\u003Cp>这样做的好处是，你得到的不是一堆花哨答案，而是更像代码评审的过程。这个过程比“直接生成一坨代码”靠谱得多。\u003C\u002Fp>\u003Ch2>把 AI 放进终端，最大好处是权限边界更清楚\u003C\u002Fh2>\u003Cp>如果你经常在 Linux 服务器上干活，你会很快发现一件事：终端天然适合做边界控制。哪些目录能看，哪些命令能跑，哪些操作需要你确认，这些都比图形界面更明确。Codex CLI 这类工具的优势就在这里，它更容易嵌进你已有的运维和开发习惯里。\u003C\u002Fp>\u003Cp>我跑远程开发时最怕的不是慢，而是失控。图形界面一多，窗口一多，工具一多，你很容易忘了自己到底改了什么。终端工作流反而逼你更清楚地写出目标、命令和检查步骤。\u003C\u002Fp>\u003Cp>这也是为什么我会建议把 AI 当成“受控执行者”，不是“全权代理”。你让它做事，但你保留最后的确认权。尤其是代码提交前，必须有人类看过 diff 和测试结果。\u003C\u002Fp>\u003Cp>怎么应用？我会给终端工作流加三条硬规则：\u003C\u002Fp>\u003Cul>\u003Cli>任何自动修改都必须能回滚。\u003C\u002Fli>\u003Cli>任何跨文件改动都必须先列计划。\u003C\u002Fli>\u003Cli>任何提交前都必须跑测试或至少静态检查。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你的团队已经有 shell 脚本、Makefile、任务编排工具，那就更适合把 Codex CLI 接进去。别改习惯，顺着习惯接工具，效果通常更好。\u003C\u002Fp>\u003Ch2>真正该抄的不是工具名，是这套分工逻辑\u003C\u002Fh2>\u003Cp>看完这篇知乎内容，我最大的收获不是“我该装哪个”，而是“我该怎么分工”。终端负责批量和受控修改，IDE 负责局部编辑和上下文查看，Copilot 负责日常补全。如果你再加上多模型切换，那就是一套挺实用的组合拳。\u003C\u002Fp>\u003Cp>我以前总想找一个“全能入口”，后来发现这想法本身就有问题。写代码这件事本来就分层：想法、定位、修改、验证、提交。\u003Ca href=\"\u002Ftag\u002Fai-工具\">AI 工具\u003C\u002Fa>也应该分层，而不是一个按钮包办一切。\u003C\u002Fp>\u003Cp>如果你要立刻开始，我建议先别折腾太多扩展。先选一个主入口，再补一个辅助入口，最后把验证步骤固定下来。这样你会更快知道工具到底有没有帮到你，而不是只是在界面上更热闹。\u003C\u002Fp>\u003Ch2>你可以直接复制的工作流模板\u003C\u002Fh2>\u003Cpre>\u003Ccode># Codex \u002F IDE 混合工作流模板\n\n## 1. 先选入口\n- 终端优先：Codex CLI\n- 编辑器优先：VS Code \u002F Cursor\n- 已有订阅：保留 GitHub Copilot\n\n## 2. 每次开始任务前先写清楚\n- 仓库路径：\n- 当前分支：\n- 目标：\n- 不能改的文件：\n- 必须通过的检查：\n\n## 3. 给 AI 的标准指令\n请先不要直接改代码。\n先做三件事：\n1. 用 3-5 条列出你理解的任务\n2. 标出可能影响的文件\n3. 说明你会怎么验证结果\n\n确认后再开始修改。\n\n## 4. 修改规则\n- 只改当前任务相关文件\n- 跨文件改动先说明原因\n- 任何生成内容都要看 diff\n- 不允许跳过测试\n\n## 5. 验证规则\n- 先跑单元测试\n- 再跑 lint \u002F typecheck\n- 失败就回到修改步骤，不要硬提交\n\n## 6. 推荐分工\n- Copilot：日常补全\n- Codex CLI：终端里的批量任务、脚本、受控修改\n- Cursor \u002F VS Code：局部编辑、重构、看上下文\n\n## 7. 提交前检查\n- [ ] diff 看过了\n- [ ] 测试通过了\n- [ ] 没碰不该碰的文件\n- [ ] 变更原因写清楚了\n- [ ] 可以回滚\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp>这套模板的重点不是“最先进”，而是“能落地”。你拿去改成自己的仓库流程，基本就能开干。\u003C\u002Fp>\u003Cp>如果你要追原文，出处是知乎专栏文章《如何配置使用 Codex 编写代码 — 完整上手指南（更新VScode安装codex插件使用入口）》，链接是 \u003Ca href=\"https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2025255230749590320\">https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2025255230749590320\u003C\u002Fa>。我这里做的是拆解和重组，不是原文复述；真正的工具选择和配置细节，还是建议回到原文核对。\u003C\u002Fp>","我把知乎这篇 Codex 上手说明拆成可执行流程，整理成终端与 IDE 都能直接用的模板。","zhuanlan.zhihu.com","https:\u002F\u002Fzhuanlan.zhihu.com\u002Fp\u002F2025255230749590320",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1780089498661-jv8g.png","tools","en","dbd7c5e0-0d56-45db-b203-4a35d30f3170",[17,18,19,20,21],"Codex CLI","VS Code","Cursor","Copilot","终端工作流",[23,24,25],"先按工作场景选入口，再谈模型和插件。","Codex CLI 更适合终端、Linux 和受控修改。","Copilot、Cursor 和 CLI 可以组合，不必强行统一。",4,"2026-05-29T21:17:53.113015+00:00","2026-05-29T21:17:53.106+00:00","f8b38c0e-e87c-4fe2-89b6-05bf73c2aaf6",{"tags":31,"relatedLang":41,"relatedPosts":45},[32,34,35,37,39],{"name":19,"slug":33},"cursor",{"name":21,"slug":21},{"name":18,"slug":36},"vs-code",{"name":17,"slug":38},"codex-cli",{"name":20,"slug":40},"copilot",{"id":15,"slug":42,"title":43,"language":44},"codex-cli-terminal-code-workflow-guide-zh","Codex CLI 讓你在終端寫程式","zh",[46,52,58,64,70,76],{"id":47,"slug":48,"title":49,"cover_image":50,"image_url":50,"created_at":51,"category":13},"fbd166b2-30ad-451c-bfa5-8f190d0c4252","500-ai-agent-projects-show-where-agents-work-now-en","500 AI agent projects show where agents work now","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781033595427-zvq5.png","2026-06-09T19:32:37.573706+00:00",{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":13},"8f987f8b-1e3b-409d-9ca9-3f0884d5e1d9","chocolatey-go-package-policy-installs-en","Chocolatey’s Go package turns installs into policy","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781029112225-4nik.png","2026-06-09T18:18:05.601854+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":13},"c1c49550-3032-4381-bad9-a7ef29973b4d","go-support-policy-turns-releases-into-a-checklist-en","Go support policy turns releases into a checklist","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781028203465-bas6.png","2026-06-09T18:02:50.061065+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":13},"75f55dc1-b87b-4a8a-812f-bc31ab4ae4dc","rustdesk-self-hosting-secure-remote-access-en","RustDesk self-hosting setup for secure remote access","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781017372462-mgyj.png","2026-06-09T15:02:24.622252+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":13},"a0ce6402-ebae-4dbb-95e4-56b2e0dcb819","aider-open-source-coding-agent-repo-edits-en","Aider turns open-source coding into repo edits","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781013807484-ff3a.png","2026-06-09T14:02:56.712253+00:00",{"id":77,"slug":78,"title":79,"cover_image":80,"image_url":80,"created_at":81,"category":13},"459960b1-d65b-4b87-b4d7-6a21dc35bde5","wwdc-2026-rumors-siri-assistant-ios-27-en","WWDC 2026 rumors turn Siri into a real assistant","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1781007515256-xcxs.png","2026-06-09T12:18:04.416148+00:00",[83,88,93,98,103,108,113,118,123,128],{"id":84,"slug":85,"title":86,"created_at":87},"8008f1a9-7a00-4bad-88c9-3eedc9c6b4b1","surepath-ai-mcp-policy-controls-en","SurePath AI's New MCP Policy Controls Enhance AI Security","2026-03-26T01:26:52.222015+00:00",{"id":89,"slug":90,"title":91,"created_at":92},"27e39a8f-b65d-4f7b-a875-859e2b210156","mcp-standard-ai-tools-2026-en","MCP Standard in 2026: Integrating AI Tools","2026-03-26T01:27:43.127519+00:00",{"id":94,"slug":95,"title":96,"created_at":97},"165f9a19-c92d-46ba-b3f0-7125f662921d","rag-2026-transforming-enterprise-ai-en","How RAG in 2026 is Transforming Enterprise AI","2026-03-26T01:28:11.485236+00:00",{"id":99,"slug":100,"title":101,"created_at":102},"6a2a8e6e-b956-49d8-be12-cc47bdc132b2","mastering-ai-prompts-2026-guide-en","Mastering AI Prompts: A 2026 Guide for Developers","2026-03-26T01:29:07.835148+00:00",{"id":104,"slug":105,"title":106,"created_at":107},"3ab2c67e-4664-4c67-a013-687a2f605814","garry-tan-open-sources-claude-code-toolkit-en","Garry Tan Open-Sources a Claude Code Toolkit","2026-03-26T08:26:20.245934+00:00",{"id":109,"slug":110,"title":111,"created_at":112},"66a7cbf8-7e76-41d4-9bbf-eaca9761bf69","github-ai-projects-to-watch-in-2026-en","20 GitHub AI Projects to Watch in 2026","2026-03-26T08:28:09.752027+00:00",{"id":114,"slug":115,"title":116,"created_at":117},"9f332fda-eace-448a-a292-2283951eee71","practical-github-guide-learning-ml-2026-en","A Practical GitHub Guide to Learning ML in 2026","2026-03-27T01:16:50.125678+00:00",{"id":119,"slug":120,"title":121,"created_at":122},"1b1f637d-0f4d-42bd-974b-07b53829144d","aiml-2026-student-ai-ml-lab-repo-review-en","AIML-2026 Is a Bare-Bones Student Lab Repo","2026-03-27T01:21:51.661231+00:00",{"id":124,"slug":125,"title":126,"created_at":127},"6d1bf3f6-e191-4d30-b55b-8a0722fa6afe","ai-trending-github-repos-and-research-feeds-en","AI Trending Tracks Repos and Research Feeds","2026-03-27T01:31:35.709532+00:00",{"id":129,"slug":130,"title":131,"created_at":132},"010539a1-4c3a-4bd3-937a-26616422ee0d","awesome-ai-for-science-research-tools-map-en","Awesome AI for Science Is Becoming a Real Research Map","2026-03-27T01:46:50.89513+00:00"]