云聚 AI Token Plan 满 199 减 35 元
AI编程 · 架构思考 · 技术人生
DigitalOcean 开发者云
Codex CLI Intel Mac 安装指南:版本、Node 与 Rosetta 封面

Codex CLI Intel Mac 安装指南:版本、Node 与 Rosetta

37 min read #Codex CLI 深度
#Codex CLI 深度
目录

GSC 后台看到一个搜索词,叫”codex mac intel 版本”。84 次曝光,0 次点击。点不进来,是因为搜的人想要一个确定答案:我这台 Intel Mac,到底能不能跑 Codex?

答案要拆成两半。Codex CLI 能。Codex Desktop App 不能。

阿里云 OPC 一人公司创业装备库

下面这篇把这条线讲清楚,包含三条安装路径、Node 版本陷阱、7 个常见报错、以及一份「我应不应该死磕 Desktop」的判断表。

先说结论

把上面那句话再展开一层:

  • Codex CLI:OpenAI 官方在 GitHub Release 同时发布 codex-x86_64-apple-darwin.tar.gzcodex-aarch64-apple-darwin.tar.gz。前者就是给 Intel Mac 的原生 x86_64 二进制,跟 Apple Silicon 平起平坐。npm、Homebrew Cask、直接下二进制三条路都通。
  • Codex Desktop App:OpenAI 官方 GitHub issue #10410 里用户反馈在 Intel Mac 上跑出来是「禁止」图标根本启动不了。OpenAI 暂未给出 x86_64 build 时间表。社区有民间 fork 能 patch 起来跑,但要自己编译,下面单独讲。

所以如果你只是想在 Intel Mac 上用 Codex 写代码、跑 agent、做修改 commit,装 CLI 就行。不需要等 Desktop,不需要折腾 Rosetta,更不需要换机器。

你真正要解决的不是「有没有 Intel 版」,是装完之后那一连串 codex: command not foundEBADENGINEEACCES 报错。这些跟 Intel 没关系,跟 Node 生态有关系。

Intel Mac 在 AI 编程工具里被默认歧视了一段时间。Apple 自己 2020 年宣布转 Apple Silicon 后,2023 年底基本不再卖 Intel 新机型,整个开发者生态对 Intel 的优先级一路下滑。但 2017-2020 年那批 Intel MacBook Pro 还有大量在役机器,硬件性能跑 LLM CLI 客户端完全够。这就出现一个错位:硬件没问题,工具方的 release pipeline 把你忘了。

具体到 Codex,OpenAI 在 CLI 这条线上没忘——CLI 用 Rust 写、cross compile 到 x86_64 几乎零成本,一开始就把 Intel binary 一起发出来了。Desktop App 那边是 Electron + native module + Code signing 三重负担,他们选了 Apple Silicon 先行。判断一下产品逻辑就知道,Intel Desktop 短期内不会有——OpenAI 没动机为一个被淘汰的硬件平台维护一条单独的 build pipeline。

所以心态要调整:不要等 Desktop,就用 CLI。CLI 不是「过渡方案」,是 OpenAI 这条产品线对开发者的最终形态。

CLI 和 Desktop App 不是一个东西

很多人把这两个混为一谈,然后在搜索引擎里搜「Codex Intel Mac 版本」时被官方下载页劝退,以为 Intel Mac 整个生态都缺。

它们其实是两个独立产品:

产品 形态 macOS Intel macOS Apple Silicon Linux Windows
Codex CLI 命令行(Rust 编译) 原生 x86_64 支持 原生 arm64 支持 支持 支持(PowerShell / WSL2)
Codex Desktop App Electron GUI 不支持(issue #10410) 支持 不支持 不支持

CLI 是用 Rust 写的,单文件可执行,启动快、占内存少、跨架构编译没难度。Desktop 是 Electron 套壳,里面绑了 Chromium runtime、Node 子进程、native modules,每个目标架构都要单独签名打包,OpenAI 目前只优先 arm64。

判断标准很简单:如果你想要的是「在终端里跟模型聊天 + 改代码 + 跑 agent」,CLI 就够。Desktop 提供的多会话切换、可视化 diff、富文本编辑这些功能,CLI 也都有,只是文本界面。习惯 vim / tmux 的人甚至会觉得 CLI 更顺手。

类似的产品分层在 Anthropic 那边也一样。Claude 也是先有 Desktop App 后有 Claude Code CLI,两者底层模型一致但前端形态不同,开发者实际上更依赖 CLI 这条线。CCswitch 实战那篇把 Claude 桌面版和 CLI 的角色拆得很清楚,对照看 Codex 这两条线会更直观。

Intel Mac 的三条安装路径

下面按「踩坑概率从低到高」排序。

路径 1:Homebrew Cask(最省心)

brew install --cask codex
codex --version

Homebrew 帮你处理了 PATH、签名公证、版本升级。前提是你装的 Homebrew 是 Intel 版(路径在 /usr/local/bin/brew,不是 Apple Silicon 的 /opt/homebrew/bin/brew)。

升级也是 brew upgrade --cask codex 一行。99% 的 Intel Mac 用户走这条最稳。

路径 2:npm(跟 Node 生态绑死的话)

npm install -g @openai/codex
codex --version

注意包名是 @openai/codex,不是 codex。后者是别人的旧包,装完跑起来不是同一个东西。OpenAI 官方 issue #9356 就是因为模型有时候自己给用户写错升级命令导致的。

走 npm 的代价是 Node 版本要求 22+,下一节细讲。

路径 3:直接下二进制(没 Node、不想装 brew)

去 GitHub Release 页面,找 codex-x86_64-apple-darwin.tar.gz

curl -L -o codex.tar.gz \
  https://github.com/openai/codex/releases/latest/download/codex-x86_64-apple-darwin.tar.gz
tar -xzf codex.tar.gz
sudo mv codex-x86_64-apple-darwin /usr/local/bin/codex
codex --version

第一次跑可能被 Gatekeeper 拦:「无法验证开发者」。xattr -d com.apple.quarantine /usr/local/bin/codex 一句话解决。

这条路适合公司机器没有 Homebrew 权限、或者想在 Docker 镜像里 pin 死某个版本的人。

Node 22 是硬要求,不是建议

走 npm 安装时最容易翻车的一处。

@openai/codexpackage.json 里把 engines.node 写成 >=22。Node 22 是 2024 年 10 月发布的当前 LTS。如果你机器上的 Node 是 18 或 20,npm install -g @openai/codex 会抛:

npm WARN EBADENGINE Unsupported engine {
  package: '@openai/[email protected]',
  required: { node: '>=22' },
  current:  { node: 'v20.11.0', npm: '10.2.4' }
}

EBADENGINE 只是 warning,npm 不会拒绝安装。但装完跑起来会在 ESM 解析、worker_threads 上随机崩。别为了省事忽略它

给 nvm 用户的提醒

如果你用 nvm 管 Node 版本,npm 的 global prefix 是按 Node 版本隔离的:

~/.nvm/versions/node/v22.5.0/bin/codex   # 装在 22 上
~/.nvm/versions/node/v20.11.0/bin/codex  # 这里没东西

所以下面这条流水线特别常见:你在 Node 22 下装了 codex,下次开终端 nvm 默认切到 18,输 codex 就 not found。

固定 default 版本是唯一干净的解:

nvm alias default 22
nvm use default
npm install -g @openai/codex

~/.zshrc 顶部加一句 nvm use default --silent,每个新终端都会先切到 22。

不想折腾 nvm 的话,直接去 nodejs.org 下 Node 22 LTS 的 .pkg 装到系统路径 /usr/local/bin/node。所有 shell(包括 GUI 应用启动的非交互 shell)都能找到。

装完跑不起来:7 个常见坑

按出现频率排序。codex: command not found 是 80% 的情况。

坑 1:PATH 没包含 npm global bin

最常见的一个。npm 装完会提示 binary 写到了 /Users/you/.npm-global/bin/codex 这种位置,但 PATH 里根本没有这个目录。

诊断:

npm prefix -g
echo $PATH | tr ':' '\n' | grep "$(npm prefix -g)/bin" || echo "NOT ON PATH"

如果是 NOT ON PATH,在 ~/.zshrc 加:

export PATH="$(npm prefix -g)/bin:$PATH"

然后 source ~/.zshrc

注意 ~/.zshrc 只对交互 shell 生效。如果你想让 GUI 应用(比如某些 IDE 内置 terminal)也能找到 codex,要写到 ~/.zshenv 里。Apple Silicon 用户可能习惯把 PATH 设置放 .zprofile,Intel Mac 用户可以保持一致,但要确认 macOS 升级后这个文件还会被读。

坑 2:sudo 装的,权限错乱

如果你历史上 sudo npm install -g xxx 过,/usr/local/lib/node_modules 这个目录的 owner 可能混着 root 和你的账号。再装 codex 时报 EACCES: permission denied

干净解法是把全局 prefix 换到用户目录:

mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
npm install -g @openai/codex

以后所有全局包都不需要 sudo。前阵子那个 Claude Opus 写 SQL 删库的故事就是个反例——把高权限的工具链跟 AI agent 混在 root 账号上跑,出事的时候追责都难。

坑 3:Volta / asdf 用户的 shim 没生成

Volta:

volta install node@22
volta install @openai/codex

asdf:

npm install -g @openai/codex
asdf reshim nodejs

asdf 不 reshim 的话,新装的 binary 在 ~/.asdf/installs/nodejs/22.x/.npm/bin 但 PATH 里挂的是 ~/.asdf/shims/,永远找不到。

坑 4:装错了包名

npm install -g codex 装的是 1999 年的某个 mock library,不是 OpenAI Codex。看清楚是 @openai/codex,带 scope。

坑 5:装在了 Apple Silicon Homebrew 上

如果你机器是双 Homebrew(很少见,迁移过的人会有):

/usr/local/bin/brew       # Intel 版
/opt/homebrew/bin/brew    # Apple Silicon 版(你机器不该有)

Intel Mac 应该只有前者。后者是迁移工具误装的,brew 自己跑不起来,会把 PATH 搞乱。brew config 看一眼 prefix 在哪。

坑 6:登录卡住,OAuth 回调到不了

第一次跑 codex,会弹浏览器要求 ChatGPT 登录。Plus / Pro / Business / Edu / Enterprise 任一档都行,免费版不行。

OAuth 回调走 http://127.0.0.1:<port>。如果你机器上有 Charles / Proxyman / VPN 客户端拦了 localhost,会卡住。临时关代理或者把 127.0.0.1 加白名单就好。Claude 接入 Charles 抓包那篇把 MCP 代理这条路讲透了,原理对 Codex 完全适用,排错时可以参考。

坑 7:装完能跑,但 codex login 报 Unauthorized

两种情况:

  1. 你账号没 Codex 权限:ChatGPT 免费版、Team 版的部分席位不带。去 ChatGPT 网页版看左下角能不能进 Codex 面板,进不去就是席位问题。
  2. 企业 SSO 没放行:你公司 ChatGPT Enterprise 管理员可能没开 Codex OAuth。让管理员去 Workspace 设置里勾上。

最近 Anthropic 7 月 8 日要强制 Claude 走身份验证,细节在这里。两家厂商都在收紧 auth 层,这条路上以后还会出更多坑。

Rosetta 在这条路上没你想的那么重要

很多 Intel Mac 用户一遇到「装不上」就第一反应「是不是要开 Rosetta」。

对 Codex CLI 来说,不需要。 x86_64 binary 是为 Intel CPU 原生编译的,根本不经 Rosetta 这层翻译。Rosetta 是给 Apple Silicon 跑 x86_64 binary 用的,方向反了。

唯一需要 Rosetta 的场景:你是 Apple Silicon 用户,但因为某些 native module 还没 arm64 build,被迫用 x86_64 版本 Node。这种情况下你装的 Codex 也是走 Rosetta 翻译的 x86_64 路径,性能损失约 10-20%。但这是 Apple Silicon 的问题,不是 Intel 的。

所以纯 Intel Mac 用户读到这一段可以放心:你装的是 native 二进制,没有性能损失。

顺带澄清一个相关误解:Apple 在 2020 年发布的 Rosetta 2 跟初代 Rosetta(PowerPC → Intel)原理不同,是 AOT + JIT 混合翻译,性能损失通常在 20% 以内。但 Codex CLI 不需要碰这层,所以你 Intel Mac 上跑 codex 的实际性能就是 Intel CPU 的原生算力,跟同代 Apple Silicon 比当然慢一截,但对 CLI 客户端来说这点延迟根本感受不到——瓶颈在网络往返延迟和 OpenAI 推理服务的响应时间,不在你本地 CPU。

也就是说,Intel Mac 跑 codex 唯一可感的性能瓶颈是网速,不是 CPU。这点跟跑本地 LLM 完全不同。

升级、版本管理与回滚

Codex CLI 迭代很快,2026 年这半年差不多每两周一个 release。三种安装路径升级命令各不一样:

# Homebrew
brew upgrade --cask codex

# npm
npm install -g @openai/codex@latest

# 直接二进制:重新下载覆盖
curl -L -o /tmp/codex.tar.gz \
  https://github.com/openai/codex/releases/latest/download/codex-x86_64-apple-darwin.tar.gz
tar -xzf /tmp/codex.tar.gz -C /tmp
sudo mv /tmp/codex-x86_64-apple-darwin /usr/local/bin/codex

模型有时候会自己建议你跑 npm install -g codex(漏 scope),结果你装了个无关的旧 npm 包覆盖了 PATH。OpenAI 自己的 issue tracker 里就有这个反馈,对应 issue #9356。看到这种建议要警觉,升级命令一定要带 @openai/ 前缀

锁定版本

生产环境或团队协作场景,建议锁版本:

codex --version  # 假设当前是 0.62.1
npm install -g @openai/[email protected]

这样所有人跑的 codex 行为一致。新版本出来先在一个人机器上试,没问题再让团队跟进。

回滚

新版本如果带 regression,直接降回去:

# 看历史版本
npm view @openai/codex versions --json

# 装指定版本
npm install -g @openai/[email protected]

Homebrew 的 cask 不太支持精确版本回滚,要回到旧版本得手动下载历史 release 包。这也是我推荐 npm 路径的一个原因:版本管理粒度更细。

配置文件迁移

升级一般不动 ~/.codex/config.toml,但偶尔大版本会引入 schema 变化。升级前备份一下:

cp ~/.codex/config.toml ~/.codex/config.toml.bak.$(date +%Y%m%d)

跑新版第一次会自动迁移,迁移失败的话拿备份还原。

完整 setup 脚本:一台干净 Intel Mac 从零到能跑

如果你拿到一台干净 Intel Mac,要从零搭起 Codex 开发环境,下面这个脚本能跑通:

#!/usr/bin/env bash
set -e

# 1. 装 Homebrew(如果没装)
if ! command -v brew >/dev/null 2>&1; then
  /bin/bash -c "$(curl -fsSL \
    https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  echo 'eval "$(/usr/local/bin/brew shellenv)"' >> ~/.zprofile
  eval "$(/usr/local/bin/brew shellenv)"
fi

# 2. 装 Node 22 LTS
brew install node@22
brew link --overwrite --force node@22

# 3. 改 npm 全局 prefix 到用户目录(避免 sudo)
mkdir -p ~/.npm-global
npm config set prefix ~/.npm-global
echo 'export PATH="$HOME/.npm-global/bin:$PATH"' >> ~/.zshrc

# 4. 装 Codex CLI
export PATH="$HOME/.npm-global/bin:$PATH"
npm install -g @openai/codex

# 5. 验证
codex --version

# 6. 首次登录(会弹浏览器)
codex login

跑完之后 codex 命令应该可用。第一次跑会触发 ChatGPT OAuth 登录,注意账号必须是 Plus / Pro / Business / Edu / Enterprise 任一档,免费 ChatGPT 账号没有 Codex 权限。

如果你不用 Homebrew,把第 1-2 步换成去 nodejs.org 下 Node 22 LTS 的 .pkg 装即可。后面 3-6 步通用。

Git 配置不要忘

Codex 会自动调 git 做 commit。如果你机器上 git 没配 user.name / user.email,commit 会失败:

git config --global user.name "你的名字"
git config --global user.email "你@example.com"

这个坑很多人在「跑 codex 让它帮我 commit」时第一次撞上。

真想跑 Desktop 版:看看这个民间 fork

GitHub 上有个项目叫 xmg2024/codex-intel-mac,专门 patch 让 Codex Desktop 在 Intel Mac 上跑起来。要自己 clone + 编译,不是开箱即用,风险自负。它修了什么:

  • backdrop-filter blur on Intel UHD GPU:原版用了 CSS backdrop-filter blur 效果,Intel 集成显卡的 GPU 合成器扛不住,整片界面渲染成白块。patch 直接禁掉 blur。
  • better-sqlite3 编译失败:依赖里有 better-sqlite3 这个 native module,标准 npm install 会调 Apple Clang 编译 C++20 代码,但 Intel Mac 上的 Clang 版本通常不带 C++20 支持。patch 改成用预编译 x64 binary 直接替换。
  • 从 Finder 启动 EPIPE 崩溃:Electron 默认会 attach console,如果 stdout 不是 TTY(双击启动就是这情况)就抛 EPIPE。patch 在启动脚本里加 ELECTRON_NO_ATTACH_CONSOLE=1
  • 对话自动折叠:UX 上的小坑,原版会自动折叠已完成的回合,patch 改成默认展开。

这四个 bug 单独看都很小,凑在一起就是「Intel Mac 上 OpenAI 完全没测过」的明证。

我自己的判断:不建议绝大多数人走这条路。要自己编译 + 替换 native module + patch CSS,每次官方更新都得重打一遍 patch。除非你有强烈的 GUI 偏好且接受不了 CLI,否则成本不划算。等 OpenAI 官方放 x86_64 build 更实际。

安全沙箱:Codex 跑起来之后

装上是第一步,让它能安全地跑代码是第二步。

Codex 本质上是个能在你本地执行命令、改文件、调 git 的 agent。它会犯错,会被 prompt injection 攻击,会在某些极端情况下做出灾难性操作。前阵子有个 AI agent 把服务器内核搞崩的真实案例,根因就是 agent 拿了 root 权限做了不该做的 sudo 操作。

Intel Mac 上跑 Codex 的最小安全实践:

  1. 专门建一个工作账号,不要用 admin 账号跑 codex。
  2. 项目目录隔离,每个 codex session 切到目标 repo 根目录跑,避免它误改其他项目。
  3. 关键操作保留 confirmation~/.codex/config.toml 里别把 auto_approve 开成 all,至少保留 shellgit_push 需要人工确认。
  4. 重要 repo 必须有 dirty state 检查:跑 codex 前 git status 干净,跑完 git diff 审一遍再 commit。

更激进的方案是把 codex 跑在 VM 里。虚拟机隔离加 Git 双向同步的方案把这套搭法详细讲了。Intel Mac 跑 VM 比 Apple Silicon 容易很多(x86 客户机不需要翻译),算是 Intel Mac 用户的一个隐藏优势。

该不该为 Codex 换 Apple Silicon

Codex CLI 既然在 Intel 上跑得好,换不换机器就变成了一个独立问题。我的判断:短期不必为 Codex 换

理由分三层:

  1. Codex CLI 在 Intel 上性能没短板。 上一节讲过,本地 CPU 不是瓶颈。除非你同时在跑别的吃 CPU 的本地工具(比如本地 LLM 推理、视频转码),单纯跑 Codex CLI 性能不构成换机理由。
  2. Desktop App 缺位不是「不能用」,是「不必用」。 你能用 CLI 完成所有 Codex 工作流,Desktop 只是另一种皮肤。Claude Desktop 的编辑器交互槽点实际上是个行业级问题,CLI 反而更能贴近你已有的开发流。
  3. AI 编程工具迭代太快,硬件投资周期对不上。 现在花两万换 M4 Pro,半年后 M5 又出来。Intel Mac 至少能撑到 2027 年,那时候硬件市场会更清晰。

什么情况下值得换:

  • 你机器是 2017-2018 年的,电池或 SSD 已经接近寿命终点
  • 你重度依赖某些只发 arm64 build 的工具(Codex Desktop 是其中一个,但少数)
  • 你机器 RAM ≤ 16GB 且经常吃满

如果都不符合,Intel Mac 配 Codex CLI 至少能再战 18 个月。

Apple Silicon 用户也该看这一节

为什么 Apple Silicon 也要懂 Intel 这条线?

团队混装。 你 leader 用 Apple Silicon,你用 Intel,新来的实习生又是 Apple Silicon。如果 onboarding 文档只写「brew install --cask codex 即可」,三种机器各自踩各自的坑。

写文档时要分两条路:

  • Apple Silicon:默认走 brew,path 在 /opt/homebrew/bin
  • Intel:默认走 brew,path 在 /usr/local/bin

shell 配置也要分:

if [[ "$(uname -m)" == "arm64" ]]; then
  export PATH="/opt/homebrew/bin:$PATH"
else
  export PATH="/usr/local/bin:$PATH"
fi

~/.zshrc 顶部。跨机器同步 dotfiles 时这一段必须有,否则 Intel Mac 用户根本找不到 brew 装的东西。

另一个常被忽略的点:arm64 binary 不能在 Intel 跑,反过来 x86_64 binary 在 Apple Silicon 上要 Rosetta 翻译。如果你直接复制队友 ~/.npm-global/ 目录过来,里面的 native module 大概率跑不起来。

CLI 之外,Intel Mac 还能用什么 AI 编程工具

如果 Codex CLI 你试下来不顺手,Intel Mac 用户还有几条退路:

需要注意 Claude Desktop 在代码编辑体验上不如竞品的反馈,所以选「Desktop App 还是 CLI」这件事 Anthropic 这边的答案也偏 CLI。整个行业的工程师工具流,目前是往 CLI 收。

Intel Mac 用户尤其要顺着这个趋势走——CLI 跨架构兼容性永远比 GUI 好,少操心一类 bug。

收束

回到 GSC 那个搜索词:「codex mac intel 版本」。

如果你是搜这个词进来的,最简的行动是:

brew install --cask codex
codex

如果 brew 没装,去 GitHub Release 拉 codex-x86_64-apple-darwin.tar.gz

不需要等「Intel 版」,不需要 Rosetta,不需要换机器。CLI 已经是一等公民。

唯一卡住你的可能是 Node 22、PATH、OAuth 这三件事——它们跟 Intel 没关系,跟你机器多年沉淀的环境有关系。

至于 Desktop App,给自己定个止损线:等官方 x86_64 build 之前不投入。

未经允许不得转载:Toy's Tech Notes » Codex CLI Intel Mac 安装指南:版本、Node 与 Rosetta
阿里云函数计算 一键部署 AI 大模型

Claude Code 合租 · KYC 封号全托管

官方又涨价又 KYC,封号还得自己重新折腾?ReClaude 拼车了解一下——200 / 400 / 800 / 1600 四档随便挑,账号、风控、切换全平台托管,触发风控自动换号不计次。

上车 4 人车 400/月查看四档套餐