第一次安装 Codex 看这篇Windows 新手从下载到开始使用我把自己的 Codex 入门路线整理成了这份教程先下载 Node.js再安装 Codex CLI接上 CrazyRouter最后生成一个能打开、能点按钮的网页。下面从打开下载网站开始说明每一步应该在哪个窗口操作。1. 下载并安装 Node.js我先打开 Node.js 官方下载页。选择LTS → Windows → Windows Installer.msi。在 Windows「设置 → 系统 → 关于」查看系统类型选择对应的x64或ARM64安装包。下载完成后到「下载」文件夹双击安装包。依次点击Next、接受许可条款通常保留默认目录和组件确认包含npm和Add to PATH点击Install完成后点击Finish。我关闭旧终端从开始菜单搜索PowerShell并打开新窗口。下面每条命令复制后按 Enter不复制窗口里的 PS 提示符。如果电脑已有 Node.js可以直接运行这两条命令确认node--version npm.cmd--version2. 安装 Codex CLInpm.cmd install-g openai/codexlatest codex.cmd--version我等待安装结束、提示符重新出现后再检查版本。新安装的版本可能比截图更新。3. 把Key放进环境变量把连接设置放进配置文件我先打开 CrazyRouter 的 Codex 接入页登录自己的账号在控制台创建 API Key并确认账户可以使用本文配置的模型 gpt-5.6-sol。接下来用这个 Key 配置连接。这一步最容易把两种内容放反Key在PowerShell中输入TOML放进记事本打开的文件。1. 用隐藏输入接收Key回到控制台重新复制Key在PowerShell执行$codexKeySecureRead-Host请粘贴 CrazyRouter API Key然后按回车-AsSecureString看到提示后只在这个位置粘贴Key再按回车。输入时可能没有可见字符这不代表没粘贴成功。不要因为屏幕没有回显就重复粘贴。等回到PS ...整段执行下面的代码$codexKeyPointer[Runtime.InteropServices.Marshal]::SecureStringToBSTR($codexKeySecure)try{$codexKeyPlain[Runtime.InteropServices.Marshal]::PtrToStringBSTR($codexKeyPointer)if([string]::IsNullOrWhiteSpace($codexKeyPlain)){throw没有输入 Key请重新执行上一条命令}[Environment]::SetEnvironmentVariable(OPENAI_API_KEY,$codexKeyPlain.Trim(),User)[Environment]::SetEnvironmentVariable(OPENAI_BASE_URL,https://cn.crazyrouter.com/v1,User)$env:OPENAI_API_KEY $codexKeyPlain.Trim()$env:OPENAI_BASE_URL https://cn.crazyrouter.com/v1}finally{[Runtime.InteropServices.Marshal]::ZeroFreeBSTR($codexKeyPointer)$codexKeyPlain$null}这段代码会把Key保存到当前Windows用户的环境变量并让当前PowerShell进程立即可用。用户环境变量不是密码保险箱共用电脑时不要使用共享Windows账号。如果你已有其他工具使用OPENAI_API_KEY它可能被这次设置覆盖。可以改用专用变量名但必须同时修改PowerShell保存变量和TOML里的env_key不能只改一处。2. 打开配置文件前先备份在同一个PowerShell中执行$codexConfigDirif($env:CODEX_HOME){$env:CODEX_HOME}else{Join-Path$env:USERPROFILE.codex}New-Item-ItemType Directory-Path$codexConfigDir-Force|Out-Null$codexConfigFileJoin-Path$codexConfigDirconfig.tomlif(Test-Path-LiteralPath$codexConfigFile){Copy-Item-LiteralPath$codexConfigFile-Destination($codexConfigFile.bak.(Get-Date-FormatyyyyMMdd-HHmmss))}notepad.exe$codexConfigFile记事本打开后空文件才粘贴下面内容model gpt-5.6-sol model_provider crazyrouter [model_providers.crazyrouter] name Crazyrouter base_url https://cn.crazyrouter.com/v1 env_key OPENAI_API_KEY wire_api responses按Ctrl S保存再关闭记事本。env_key填的是变量名不是你的真实Key。model、model_provider必须位于顶层如果它们被粘到某个方括号段落下面TOML含义就变了。如果原来的config.toml已有内容不要先按Ctrl A全选覆盖。只修改同名字段或在文件末尾新增[model_providers.crazyrouter]段落并确保同一段落没有重复字段。保存后检查文件名是config.toml不是config.toml.txt。文件资源管理器中打开“查看→显示→文件扩展名”另存为时选择“所有文件”。图4我在记事本中保存的 provider 配置。4. 重开PowerShell检查保存结果关闭旧终端从开始菜单重新打开PowerShell。然后按顺序执行codex.cmd--version[bool]$env:OPENAI_API_KEY返回True只能证明变量非空不能证明Key有效、额度足够或模型有权限。再检查地址$env:OPENAI_BASE_URL应该显示https://cn.crazyrouter.com/v1不要执行$env:OPENAI_API_KEY来“看看Key对不对”这样会把密钥直接打印到终端历史或截图中。5. 进入专用练习目录再启动Codex不要第一次就在桌面、用户目录或正式项目中试。先创建一个只放本次练习的文件夹New-Item-ItemType Directory-Path$env:USERPROFILE\CodexProjects\hello-codex-ForceSet-Location$env:USERPROFILE\CodexProjects\hello-codex确认当前目录Get-Location输出路径应以CodexProjects\hello-codex结尾。启动写入会话codex.cmd--sandbox workspace-write--ask-for-approval on-request第一次可能询问是否信任目录。先核对屏幕显示的确实是hello-codex再用方向键选择信任并按回车。目录没有信任时模型可以回答但文件写入可能被只读沙箱阻止。我第一次创建文件时遇到了目录尚未信任的提示。确认练习目录并完成受限 Windows 沙箱设置后就可以继续创建网页。6. 先做最小连接测试再做网页任务1. 只验证模型是否真实返回进入Codex输入框后粘贴下面的任务并按回车请只回复 CODEX_CONNECTION_OK。 本次不要读取文件、不要修改文件也不要执行命令。如果回复中出现CODEX_CONNECTION_OK这才证明本次选中的provider、Key、模型和网关完成了一次真实请求。如果出现401、403、404、429、模型不存在或缺少环境变量先停在这里处理错误不要继续发建站任务。图5这张图对应真实连接检查。版本号只能证明CLI能启动CODEX_CONNECTION_OK才是模型请求层的证据。截图中的会话标识不应公开。2. 让Codex只创建一个文件仍在Codex输入框完整粘贴下面的任务请在当前练习目录里实际创建 index.html不要只在聊天里输出代码。 要求 1. 页面标题是“我的第一个 Codex 网页”。 2. 页面显示“你好Codex”。 3. 有一个“点击打招呼”按钮点击后显示“按钮可以正常工作”。 4. CSS 和 JavaScript 都放在这个 HTML 文件内。 5. 不使用外部图片、字体、框架或 CDN不安装依赖。 6. 只创建或修改 index.html不处理其他文件。 7. 完成后告诉我文件位置和打开方法。 如果当前权限不允许写文件请明确说明不要声称已经创建成功。如果出现审批提示先看目标路径和操作内容。只允许当前练习目录中的index.html不要为了完成一个HTML练习而允许修改用户目录、安装依赖或关闭全部审批。7. 退出Codex检查文件和浏览器结果在Codex输入框输入/quit按回车回到PowerShell。确认当前目录仍是练习目录后执行Test-Path.\index.html返回True说明文件实际存在。返回False先执行Get-Location确认是不是在错误目录不要只根据Codex最后一句话判断。打开页面Start-Process.\index.html在浏览器中检查三项标题是否正确、页面是否显示“你好Codex”、点击“点击打招呼”后是否显示“按钮可以正常工作”。图6这是最终业务验收不是模型回答截图。真实测试中按钮点击后显示了约定文字页面没有使用外部图片、字体、框架或CDN。这次网页创建后收尾回复出现过上下文提示我仍能在浏览器中打开文件并点击按钮。