作者:互联网 时间: 2026-08-13 20:07:54
GitHub: https://github.com/openai/codex

| 痛点 | 报错信息 |
|---|---|
| Node.js 版本太低 | SyntaxError: Unexpected reserved word → await new Promise |
| apt 装的 Node 太旧 | Ubuntu 20.04 → Node 12,Ubuntu 22.04 → Node 16 |
| npm 全局安装后找不到命令 | codex: command not found |
| 装好了但没有 API Key | OPENAI_API_KEY is not set |
| VMware/虚拟机里网络慢 | npm install 超时、nvm 下载失败 |
如果你遇到了 SyntaxError: Unexpected reserved word 且关键字是 await,那 99% 的原因是 Node.js 版本太低。Codex CLI 使用了 top-level await,只有 Node 16+ 才支持。
OpenAI Codex CLI 是一个在本地终端运行的 AI 编程代&理,可以:
核心要求:Node.js >= 16,推荐 Node.js 20(最稳定)。
| 报错关键词 | 根因 | 解决方案 |
|---|---|---|
| Unexpected reserved word + await | Node < 16 | 升级 Node.js |
| EACCES permission denied | npm 全局目录权限 | 用 nvm 或修复 npm prefix |
| command not found: codex | PATH 未配置 | 重装或检查 PATH |
| OPENAI_API_KEY is not set | 未配置 API Key | 设置环境变量或登录 ChatGPT |
| network timeout | 网络问题 | 换源或检查代&理 |
| Unsupported engine | Node 版本不满足 | 升级 Node.js |
这个脚本从零开始,自动处理 nvm 安装、Node.js 升级、Codex CLI 安装,幂等可重复运行:
#!/bin/bashset -euo pipefail# Codex CLI 一键安装脚本(自动处理 Node.js 版本问题)# 用法: bash install-codex.shecho "=== [1/5] 检查当前 Node.js 版本 ==="NEED_INSTALL=0if command -v node &>/dev/null; then NODE_VERSION=$(node -v | sed 's/v//' | cut -d. -f1) echo "当前 Node.js 版本: $(node -v)" if [ "$NODE_VERSION" -lt 16 ]; then echo "版本过低(需要 >= 16),将安装新版 Node.js" NEED_INSTALL=1 fielse echo "未检测到 Node.js,将安装" NEED_INSTALL=1fiecho "=== [2/5] 安装 nvm(如需要) ==="if [ ! -d "$HOME/.nvm" ]; then curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash echo "nvm 安装完成"else echo "nvm 已安装"fiexport NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"echo "=== [3/5] 安装 Node.js 20 ==="if [ "$NEED_INSTALL" -eq 1 ] || [ "$(node -v | sed 's/v//' | cut -d. -f1)" -lt 18 ]; then nvm install 20 nvm use 20 nvm alias default 20 echo "Node.js $(node -v) 安装完成"else echo "Node.js $(node -v) 已满足要求"fiecho "=== [4/5] 安装 Codex CLI ==="npm uninstall -g @openai/codex 2>/dev/null || truenpm install -g @openai/codexecho "=== [5/5] 验证安装 ==="if command -v codex &>/dev/null; then echo "" echo "=========================================" echo " Codex CLI 安装成功!" echo " Node.js: $(node -v)" echo " npm: $(npm -v)" echo " codex: $(codex --version 2>/dev/null || echo '已安装')" echo "" echo " 下一步:" echo " 1. 运行 codex 启动" echo " 2. 选择 'Sign in with ChatGPT' 或设置 API Key" echo " 3. export OPENAI_API_KEY='sk-xxx'(如用 API)" echo "========================================="else echo "codex 未找到,请运行: source ~/.bashrc 后重试"fi
关键:永远不要用 apt install nodejs 安装 Node.js——Ubuntu 仓库里的版本太旧。用 nvm 才是正道。
| 方式 | 命令 | 优点 | 缺点 |
|---|---|---|---|
| npm 全局安装 | npm i -g @openai/codex | 最简单 | 依赖 Node.js 版本 |
| Homebrew (macOS) | brew install --cask codex | 不依赖 Node | 仅 macOS |
| GitHub Release 二进制 | 下载对应平台 tar.gz | 零依赖 | 需手动更新 |
推荐:Linux 用户用 npm + nvm,macOS 用户用 Homebrew。
codex# 选择 "Sign in with ChatGPT"# 浏览器自动打开,登录即可
支持 Plus、Pro、Business、Edu、Enterprise 等计划。
export OPENAI_API_KEY='sk-your-key-here'codex
永久写入 Shell 配置:
echo 'export OPENAI_API_KEY="sk-your-key-here"' >> ~/.bashrcsource ~/.bashrc
export OPENAI_API_KEY='your-key'export OPENAI_BASE_URL='https://your-provider.com/v1'codex
99% 是 Node.js 版本太低。Codex CLI 使用了 top-level await,需要 Node >= 16。
node -v # 如果显示 v12/v14/v16 以下nvm install 20nvm use 20nvm alias default 20npm uninstall -g @openai/codexnpm install -g @openai/codex
npm 全局安装目录没有写权限。不要用 sudo npm install,用 nvm 解决:
nvm install 20nvm use 20npm install -g @openai/codex
nvm 会将 npm 全局目录放在用户目录下,不需要 sudo。
PATH 没有包含 npm 全局 bin 目录:
source ~/.bashrc# 或nvm use 20
使用镜像:
export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/nodenvm install 20
npm update -g @openai/codex
| Ubuntu 版本 | 默认 Node 版本 | 能装 Codex 吗 |
|---|---|---|
| 20.04 | Node 12 | 不行 |
| 22.04 | Node 16 | 勉强(不推荐) |
| 24.04 | Node 18 | 可以(推荐升级到 20) |
Codex CLI 的安装核心就一件事:确保 Node.js >= 16,推荐 20。Ubuntu 用户千万别用 apt 装 Node,用 nvm 一步到位。跑完上面的一键脚本,5 分钟内就能用上 OpenAI 的终端 AI 编程代&理。