Windows 上跑 Codex 和 Claude Code说难不难说简单也真不简单。我最近刚在一台全新的 Windows 开发机上把整套流程走完从 Node.js 到终端到 VSCode 接入中间踩了不少坑。网上搜到的教程有一大半是 macOS 和 Linux 的路径Windows 用户照着做第一关就卡在 PowerShell 执行策略上第二关卡在 PATH 环境变量第三关可能直接卡在”这命令怎么不见了”。这篇文章把我实测通过的完整流程和踩坑记录整理出来希望帮你少走几小时弯路。1. 为什么 Windows 上装这两个 CLI 格外费劲——先说清楚它们到底是什么1.1 这两个工具到底是干嘛的Codex 是 OpenAI 出品的编程智能体它不只是给你补全代码而是能在终端里理解整个项目的上下文然后直接动手改文件、跑命令、查日志像一个坐在你旁边帮你干活的人。Claude Code 是 Anthropic 家的同类产品特点是长上下文能力很强适合读大仓库、梳理多文件逻辑、做代码重构。很多开发者两个都装因为不同模型在不同任务上各有胜负比如让 Claude Code 做架构分析让 Codex 处理需要频繁调用工具链的任务。这两个工具的共同点是通过命令行交互工作所以它们对运行环境的要求比较敏感。你需要一个能正常跑 Node.js 的终端一个能让 CLI 完成登录认证的网络条件以及一位愿意配合的 Windows 系统——最后一条往往最难。1.2 为什么 Windows 用户总被劝退先说个扎心的事实大部分官方文档和社区教程默认开发者用的是 bash 环境。Windows 上跑起来的坑文档里几乎不会写。常见的有这几个PowerShell 默认禁止执行 npm 全局安装产生的脚本文件报错信息看着像系统坏了其实就是执行策略没放开。PATH 环境变量的分隔符是分号但很多人从 Linux 教程里复制命令用冒号分隔结果路径全部失效。Node.js 版本混乱系统里可能同时存在多个版本npm 全局安装的包装到了某个你不知道的目录。VSCode 的集成终端默认可能是 cmd 而不是 PowerShell某些命令在 cmd 下语法完全不同。这些坑单个拿出来都不难解决但叠在一起就能耗掉一整个下午。所以这篇文章我不只写”怎么装”还写”每一步为什么要这么设”这样你换一台机器、换一个环境也能自己排查。1.3 一个总览完整安装链路先说清楚整条链路方便你心里有数。环节需要安装/配置的东西作用环境准备Node.js LTS、Git for Windows、Windows Terminal为 CLI 提供运行和登录的基础环境Codex 安装openai/codex 全局 npm 包 登录认证让 codex 命令可用并关联账号Claude Code 安装anthropic-ai/claude-code 全局 npm 包 凭据配置让 claude 命令可用并关联账号VSCode 接入官方扩展 集成终端配置在编辑器里直接使用两个 AI 工具踩坑排查执行策略、PATH、残留环境变量、DNS 解析处理安装后跑不起来的各种问题下面从环境准备开始一步一步来。2. 环境准备Node.js、Git、终端这三样决定你能走多远2.1 Node.js 安装版本选择和 PATH 配置Codex 和 Claude Code 都是 npm 全局包没有 Node.js 什么都装不了。这里有一个关键建议只装 LTS 版本不要追最新版。最新版可能自带一些新特性但很多全局 CLI 包的兼容性测试都跑在 LTS 上你装 Current 版本遇到诡异的兼容性问题排查起来很痛苦。到 Node.js 官网下载 Windows Installer (.msi)双击安装。安装过程中有几个细节值得注意安装到默认目录即可除非你明确知道自己要改什么。安装向导里务必确认勾选 “Add to PATH”这一步漏了后面没法玩。安装完成后打开 PowerShell输入node -v和npm -v能正常输出版本号才算成功。如果你之前的电脑上已经有 Node.js 了但版本比较老建议先卸载干净再装避免多版本残留。我见过太多人系统里同时存在 Node 14 和 Node 20npm 全局目录指向旧的新装的包全跑到旧版本下面然后怎么找都找不到命令。这里再补充一个版本对比方便你判断自己的环境Node.js 版本状态适合做什么18.x已进入维护晚期老项目兼容不建议新装20.xLTS当前大多数工具链的安全选择22.xLTS较新可以选但部分老包兼容性要测最新 Current非稳定不建议作为主力环境我装在 20.x LTS 上Codex 和 Claude Code 跑起来没有任何问题。如果你的 npm 安装包时经常报网络超时可能是 npm 默认源的问题后面会单独说。2.2 Git 安装凭据管理器与默认编辑器Git 也是必装的因为 Codex 和 Claude Code 都需要读取 Git 仓库信息来判断项目结构、查看改动、生成提交信息。你去 Git for Windows 官网下载安装包一路 Next 到选择 PATH 的界面时务必选 “Git from the command line and also from 3rd-party software”。如果不选这个很多 npm 包在安装时调用 git 会找不到命令。另外两个选项我说下自己的建议默认编辑器选 VS Code 或者 Notepad别选 Vim。Windows 上 Vim 的打开方式和预期不太一样容易卡住。换行符选项选 “Checkout as-is, commit as-is”。这个能避免代码在 Git 里被强制转换换行符减少莫名其妙的 diff。安装完同样验证一下PowerShell 里输入git --version能看到版本号就行。如果之前装过老版本建议重装一次新版因为新版 Git 自带的 SSL 证书和认证管理器更新CLI 做远程仓库操作时更不容易报证书错误。2.3 Windows Terminal把命令行体验拉回正轨虽然不装 Windows Terminal 也能跑但我强烈建议装。Windows 自带的控制台窗口在显示长日志、支持终端颜色主题、复制粘贴这些体验上都很糟糕。而 Codex 和 Claude Code 都是交互型 CLI启动后会输出大量带颜色的内容用老控制台看简直折磨。你可以直接在 Microsoft Store 搜索 Windows Terminal 安装。装好后打开设置把默认终端配置文件设为 PowerShell然后按Ctrl ,进入设置在“交互”里把“自动检测 URL”打开。这个功能让我省了很多事CLI 输出里的链接可以直接点击不用手动复制。另外Windows Terminal 支持多标签页和分屏。我平时的用法是左边开一个标签跑 Claude Code右边开一个标签跑 Codex上方再开一个普通 PowerShell 窗口操作文件三个会话互不干扰。这比在 VSCode 里来回切终端标签要高效得多。2.4 执行策略PowerShell 的一处关键设置这一步是我这次踩的第一个大坑。安装完 Node 和 Git 之后我执行npm install -g openai/codex一切正常。等装完我输入codexPowerShell 直接给我弹了一行红字”因为在此系统上禁止运行脚本”。这不是安装失败是 PowerShell 的执行策略默认挡住了 npm 生成的.ps1脚本。解决办法是在管理员 PowerShell 里执行Set-ExecutionPolicy RemoteSigned -Scope CurrentUser然后输入Y确认。这个策略的意思是本地创建的脚本可以运行从网络下载的脚本需要数字签名。npm 全局包装出来的codex.ps1属于本地生成所以能直接跑。这个设置只影响当前用户不改系统级策略安全上没有明显问题。3. Codex 安装全流程全局安装、登录认证、首次对话3.1 全局安装 Codex CLI环境准备好之后装 Codex 其实只是一个命令的事npm install -g openai/codex安装完成后在 PowerShell 里执行codex --version能正常显示版本号就说明装成功了。如果提示找不到命令优先检查两件事一是 npm 全局目录有没有加到 PATH二是执行策略有没有改。npm 全局目录查看方式npm prefix -g输出结果应该是类似C:\Users\你的用户名\AppData\Roaming\npm这样的路径。你需要确认这个路径出现在系统环境变量的 PATH 里。如果不在手动加进去然后重新打开终端。安装的时候顺便说一句我遇到过一次 npm 装到一半报错提示ECONNRESET或者ETIMEDOUT这是网络层面的问题。如果你所在网络访问 npm 官方源不稳定可以把源切到镜像源具体命令后面写排查那节会给出这一步先不展开。3.2 登录认证从浏览器回到终端装完后运行codex会看到一个欢迎界面然后提示登录。最新版 Codex CLI 的登录方式是 OAuth 流程终端会给你一个链接通常指向chatgpt.com或相关认证页面你用浏览器打开登录 OpenAI 账号然后授权。这里有一个容易卡住的地方终端里按回车打开浏览器后浏览器可能没有正常跳转一直停在空白页。我第一次就遇到了。这时候不用慌看终端提示它通常还会给出一串手动验证码或者让你手动输入一个 code。直接在浏览器里把流程走完等浏览器显示“授权成功”再回到终端一般几秒钟内就会显示Logged in as xxx。登录信息会保存在用户目录下的配置文件夹里具体位置是C:\Users\你的用户名\.codex\。这个文件夹里会有auth.json之类的凭据文件不要手动改里面的内容删了就得重新登录。3.3 用 Codex 跑通一次真实对话登录完成之后进入一个写代码的项目目录然后运行codex它通常有三种方式启动不带参数进入交互式对话模式。codex 你的问题直接执行一次性任务。codex --dangerously-bypass-approvals-and-sandbox跳过审批直接执行——这个我强烈不建议新手一上来就用。先说交互模式。启动之后Codex 会自动读取当前目录的代码结构。我第一次测试是在一个 Python 项目里让它帮我写一个单元测试文件。它会先列出计划然后创建文件、运行测试、修正报错整个过程我只需要在关键节点按回车确认。这种”它动手、你审批”的节奏我觉得是 Codex 最实用的用法。如果你用 VSCode 的集成终端去跑代码高亮和输出显示效果比 PowerShell 更好。强烈建议后续把它作为主要启动方式。具体怎么接入文章后面专门写。登录后还可以看一下当前账号状态codex login status如果这里显示没有登录或者提示 organization 有权限限制说明你的账号可能没有开通对应功能或者所在组织关闭了相关访问权限。这个属于账号配置层面的问题需要联系账号管理员确认不是本地安装能解决的。4. Claude Code 安装全流程确认版本、完成凭据、进项目目录4.1 安装 Claude Code CLIClaude Code 的安装命令同样是一条npm install -g anthropic-ai/claude-code装完先验证版本claude --version能看到版本号就说明包本身装好了。如果你之前装过旧版建议先卸载再装命令是npm uninstall -g anthropic-ai/claude-code然后再重新 install。这种 CLI 工具迭代速度很快旧版本可能会出现和最新服务端不兼容的情况重装能避免很多莫名其妙的问题。4.2 完成凭据配置Claude Code 的登录比 Codex 稍微麻烦一点因为它支持多种认证方式。最常见的是两种第一种直接运行claude终端会引导你完成浏览器登录。按提示操作浏览器授权完成后回到终端它会自动保存凭据。这个流程和 Codex 的 OAuth 登录比较像。第二种使用 API 密钥。如果你已经有 Anthropic API 的 key可以设置环境变量[Environment]::SetEnvironmentVariable(ANTHROPIC_API_KEY, 你的key, User)设置完成后重开终端运行claude就能生效。注意 PowerShell 里设置用户级环境变量重开终端是必须的因为环境变量读取发生在启动时。我用的是浏览器登录方式。登录成功后会有一个输出提示告诉你当前账号和使用的模型。如果你看到类似 “Your organization has disabled Claude subscription access for Claude Code” 的提示说明当前账号的组织策略不允许使用 Claude Code需要联系管理员开通或者换个账号登录。4.3 进到项目目录再启动Claude Code 的设计思路是你进入哪个目录它就看哪个目录的代码。所以使用前一定要先cd到项目根目录再运行claude。如果你在用户主目录直接启动它会把整个用户目录当项目不仅启动慢权限范围也太大AI 可能提出一些奇怪的修改建议。首次启动会有一些交互式问题比如确认是否允许 Claude Code 读取目录文件、是否使用多模态能力等。按提示选择即可。如果不想每次启动都确认可以在项目根目录下创建.claude/settings.json文件把偏好写进去。一个实用的配置示例{ model: claude-sonnet-4-20250514, permissions: { allow: [ Read, Glob, Bash ] } }这里只是示例具体字段以你安装版本的最新文档为准。设置文件的核心作用是预先声明允许的操作减少对话中的反复询问让流程更顺畅。Claude Code 在 Windows 上跑大项目时的优势很明显。我在一个几万行的前端项目里试过一次让它梳理 API 层的调用关系它能快速定位所有 import 路径并生成调用链清单这个活儿要我自己看至少得花小半天。5. 把 Codex 和 Claude Code 接进 VSCode集成终端才是主战场5.1 VSCode 扩展怎么选先说结论在 VSCode 里用 Codex 和 Claude Code最省事、最不容易出问题的接入方式是把它们跑在 VSCode 的集成终端里而不是依赖第三方图形界面插件。原因有几个CLI 的交互是自绘界面在终端里显示效果最完整。集成终端继承了 VSCode 的工作目录你打开哪个项目终端就在哪个项目根目录。出了问题CLI 的日志输出直接可见不会像插件那样把报错吞掉。Codex 官方有 VSCode 扩展直接在扩展市场搜索 Codex认准 OpenAI 官方发布的那个。安装后它可能在侧边栏给你一个面板但你本质上还是需要登录、需要配置启动的还是一个终端会话。这个扩展适合喜欢图形化操作的开发者但它和 CLI 并不冲突。Claude Code 方面官方目前主推的还是 CLI 模式VSCode 上有一批社区扩展。我的建议是先不用急着装直接用集成终端跑claude等你觉得确实需要图形化界面的会话列表、历史记录这些功能再去看社区扩展也不迟。5.2 配置集成终端调整默认 shell 和快捷键VSCode 的集成终端默认 shell 可能是 PowerShell也可能被配置成了 cmd 或者 Git Bash。如果你要让 Codex 和 Claude Code 跑得顺建议统一用 PowerShell。按Ctrl Shift P输入Terminal: Select Default Profile选择 PowerShell。然后把终端字体调大一点我个人喜欢Cascadia Mono配 14 号字长时间看不容易累。这个字体是 Windows Terminal 自带的VSCode 里也能直接用。资源消耗方面要留意VSCode 本身吃掉的内存不少集成终端里再跑两个常驻的 CLI 会话旧电脑可能会感觉到卡顿。我在一台 8GB 内存的机器上同时开两个会话VSCode 加终端加浏览器差不多把内存吃满。5.3 高效的工作流分屏、多标签和快捷启动接入 VSCode 之后我用的工作流是这样的左侧编辑器写代码右侧集成终端固定放一个 Claude Code 会话专门负责代码理解、重构建议、生成补丁。上方开一个普通 PowerShell 标签跑 Git 命令日常提交、切换分支不打扰 AI 会话。需要 Codex 的时候新建一个标签运行codex专门处理需要频繁执行测试、脚本的任务。为了让启动更迅速可以在键盘快捷键设置里给集成终端绑定一个你自己顺手的组合键比如Ctrl Alt T打开新终端。我的习惯是把默认终端打开快捷键Ctrl 保留另外把新建终端的快捷键改成Ctrl Alt T这样按下就能开一个新的 CLI 会话。还有一个很容易被忽略的点在.gitignore里把.claude/和.codex/目录加上。这两个工具会在项目目录里写一些历史记录、会话文件如果它们被提交到 Git 仓库不但污染仓库还可能泄露提示词和项目上下文。前期没加后期越积越乱。5.4 在 VSCode 里接入时容易出现的两个小问题第一个问题是集成终端打开了但命令找不到。明明在独立 PowerShell 里能运行codex在 VSCode 集成终端里却提示不是内部或外部命令。这个主要是因为 VSCode 的终端是在启动时加载环境变量的如果你修改了 PATH 之后没有重启 VSCode它的终端拿到的还是旧环境。解决办法很简单完整重启 VSCode别只重开终端窗口。第二个问题是终端显示乱码。CLI 工具输出的 Unicode 字符和特殊符号在部分编码下会显示不对。遇到这种情况在 PowerShell 里执行一次[Console]::OutputEncoding [Text.Encoding]::UTF8如果每次都要设置太麻烦可以在 PowerShell 的配置文件$PROFILE里把这行写进去重开终端自动生效。6. 我实际踩过的坑执行策略、残留环境变量、版本错位6.1 PowerShell 执行策略红色报错不代表系统坏了这个前面提过一次这里再说细一点。很多人在终端里运行codex或claude时看到那行红字以为是自己装坏了实际上只是 PowerShell 的安全策略。报错内容长这样无法加载文件 C:\Users\xxx\AppData\Roaming\npm\codex.ps1因为在此系统上禁止运行脚本。处理方法是Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser执行完按Y确认即可。设置完重开终端命令就能正常跑了。关于安全性再补一句RemoteSigned 策略并没有放开所有脚本它只放行本地创建的和有可信签名的远程脚本这是 Windows 推荐的主流用户配置不是什么危险操作。6.2 npm 网络超时源设置和 DNS 问题装包时最常见的报错有两种ETIMEDOUT和ECONNRESET。在排除掉明显的问题之后大多数原因是默认源访问不稳定。你可以临时切换源实验一下npm install -g openai/codex --registryhttps://registry.npmmirror.com如果换成镜像源之后安装秒过说明是网络问题。长期使用也可以把全局默认源切过去npm config set registry https://registry.npmmirror.com但要提醒一句切换源之后某些包的签名校验可能会有提示而且很多新包发布到镜像源会慢一点所以如果你能稳定访问官方源还是保持默认更稳妥。6.3 残留环境变量导致 endpoint 类报错这里是我最想写的一段。有一次我运行claude终端弹出一段非常复杂的错误信息里面带有类似cc switch local proxy failed while handling codex endpoint /responses的字样。当时我把注意力全放在 “proxy” 和 “endpoint” 这些词上误以为是工具服务端出了问题折腾了半天。后来发现这是旧机器上残留的环境变量在作怪。Windows 的环境变量是全局生效的尤其是用户级变量你以前配置过的 HTTP_PROXY、HTTPS_PROXY、API_BASE_URL 这些东西即使原服务已经不用了它们仍然留在环境变量里。CLI 启动时会读取这些变量一旦某个值指向了无效地址就会出现这种看起来特别专业的报错。排查思路分享给你先执行Get-ChildItem Env:查看当前所有环境变量重点看有没有 HTTP_PROXY、HTTPS_PROXY、ALL_PROXY 这些。如果看到值指向一个本地端口或内网地址先确认这个服务是不是还在用。不用了就直接清理。清理用户级环境变量用[Environment]::SetEnvironmentVariable(变量名, $null, User)。清理完后重启终端再试。这种类型的报错九成是本地环境残留不是工具本身坏了。遇到类似的报错信息第一反应应该是检查环境变量而不是去翻服务端状态。6.4 Node.js 版本错位npm 全局包装到了旧版本下这个坑我在老电脑上踩过一次。当时系统里装着一个 Node 14我后来又装了 Node 18但 PATH 顺序不对导致命令行默认用的是旧版本。npm install 全局包的时候包被装到了旧版本的 node_modules 目录下而 PATH 里靠前的又是新版本的 npm结果就是命令完全找不到。遇到这种情况建议直接用 nvm-windows 来管理多个 Node 版本nvm install 20 nvm use 20用 nvm 之后每个版本的全局包是隔离的切版本不会互相污染。如果你已经不需要多版本并存直接只留一个 LTS 版本从根上杜绝这个问题。6.5 公司网络环境的边界问题最后说一个很多人不好意思问的事。如果你在公司网络里安装时频繁失败报错信息五花八门先不要急着怀疑是自己操作问题。企业网络通常有出口管控npm 源和一些认证服务域名可能不在放行名单里。这种情况下你需要让网络管理员确认必要的服务域名是否可达而不是一台机器上反复重装。这个问题和本地配置无关重装一百遍也不会好。最好的做法是如果你的办公网络受限可以先在自己可控的网络环境下完成安装配置进项目开发时再切换到办公网络这样工具本身已经就绪日常使用基本不受影响。7. 最后的几条个人建议这套流程走完之后我最大的感受是Windows 下配置这类 CLI 工具真正花时间的不是安装本身而是装完之后的排障。安装命令就那么两三条但执行策略、PATH、环境变量、Node 版本、网络环境任何一环出问题都会让你觉得是自己智商不够。给你几个可以马上用的建议第一次配置的时候把每一步骤的终端输出截图存下来。后面出问题对比排查非常有用。尽量在统一环境里跑一台 Windows 机器上Node 版本固定终端一律用 Windows Terminal 加 PowerShell别混着用 cmd 和 Git Bash。把.claude/和.codex/目录加进.gitignore防止会话记录进入仓库。不要一上来就开--dangerously-bypass-approvals-and-sandbox这类跳过审批的模式第一次用先体验完整的审批流程心里有数之后再做取舍。希望这篇分享能帮你把 Codex 和 Claude Code 在 Windows 上顺利跑起来。如果你装的过程中遇到别的坑欢迎在评论区把报错信息放出来大家一起看看这种环境问题往往是几个人加起来就能拼出答案的。