1. 从“openrig”说起一个把 Claude Code 和 Codex 装进同一台机器的实战思路第一次看到openrig这个词我脑子里蹦出来的不是某个具体软件而是一种“把工具架起来”的直觉——rig 在英文里本来就有“装配、搭台子”的意思open 则暗示了开放、可组合。把这两个词放在一起再结合Claude Code、Codex、Node.js、tmux这几个热搜词基本能还原出它想解决的问题在一台开发机上把多个 AI 编程助手Claude Code、Codex CLI 等统一装好、配好、跑起来并且让它们能长期稳定地在终端里待命。这件事听起来简单实际踩过的人都知道有多碎。Node.js 版本不对、npm 全局路径混乱、Claude Code 提示地区不可用、Codex 登录卡住、组织设置被禁用、tmux 会话里环境变量丢失、本地模型接不进来……每一个都能单独写一篇排错记录。openrig的价值就在于把这些零散环节收拢成一套可复现的装配流程而不是每次换机器都从头翻教程。这篇文章适合三类人看第一类是刚接触 AI 编程助手、想在自己电脑或服务器上跑通 Claude Code 和 Codex 的开发者第二类是已经在用但被环境问题反复折磨、想找一套稳定装配方案的人第三类是想把本地模型比如通过 LM Studio 暴露的接口接进这些 CLI 工具、做私有化调用的人。我会按“整体设计思路 → 核心细节 → 实操流程 → 问题排查”的顺序展开中间穿插我自己踩过的坑和实测有效的参数。需要先说明一点openrig本身并不是一个官方大厂产品更像是一个社区里逐渐成型的“装配约定”。所以下面讲到的目录结构、脚本写法、参数选择都是基于常见实践和我个人经验的合理补全你可以直接抄也可以按自己习惯改。核心目标只有一个——让 Claude Code 和 Codex 在同一台机器上和平共处随时能调起来干活。2. 整体设计与思路拆解为什么这样装配更省心2.1 把 Node.js 作为地基而不是随便装一个版本Claude Code 和 Codex CLI 本质上都是 Node.js 生态里的命令行工具通过 npm 全局安装。很多人第一步就翻车是因为系统自带的 Node.js 太老或者用包管理器装了一个非 LTS 版本。热搜里那条error installing 24.21.0: node.js v24.21.0 is not yet released or is not available就是典型症状——你指定的版本号根本不存在或者镜像源里还没同步。我的建议很明确用 Node.js LTS 版本并且用版本管理器来管而不是直接往系统里怼。原因有三个。第一LTS 经过长时间验证npm 生态兼容性最好Claude Code 和 Codex 这类工具对 Node 版本敏感非 LTS 容易遇到原生模块编译失败。第二版本管理器比如 nvm 或 fnm让你可以在不同项目间切换 Node 版本不会因为一个工具把全局环境搞脏。第三卸载和重装成本极低出问题直接换版本不用动系统目录。具体选哪个 LTS截至我写这篇内容时Node.js 20.x 和 22.x 都是稳妥选择。如果你追求新特性22.x 更合适如果追求最大兼容性20.x 更保守。安装完之后用node -v和npm -v各确认一次别嫌麻烦这一步能省掉后面一半的怪问题。2.2 全局安装目录要独立别和系统包混在一起npm 默认的全局安装路径在有些系统上需要 sudo 权限这会导致两个后果一是安装时频繁输密码二是权限混乱后出现EACCES错误。更隐蔽的问题是当你用不同 Node 版本时全局包可能装到了旧版本的目录里新版本里根本找不到命令。我的做法是给 npm 配一个独立的全局目录并且把它加进 PATH。这样无论怎么切换 Node 版本全局命令的位置都是可控的。具体配置在实操部分会给命令。这里先记住原则全局工具目录独立、PATH 显式声明、不依赖系统默认。2.3 Claude Code 和 Codex 分开装、分开配但共享终端会话Claude Code 和 Codex 虽然都是 AI 编程助手但它们的配置方式、登录机制、模型接入点并不一样。Claude Code 更偏向和 Anthropic 的服务对接Codex 则有自己的登录和组织设置体系。热搜里出现的your organization has disabled claude subscription access for claude code和codex无法加载组织设置就是两类不同的问题。所以装配思路上我倾向于两者独立安装、独立配置但在终端层面用 tmux 统一管理会话。tmux 的好处是会话可以后台常驻断网或关掉终端窗口后任务不中断可以开多个 pane 分别跑 Claude Code 和 Codex互不干扰环境变量在会话内保持一致不会因为新开窗口丢失。对于需要长时间跑代码生成、批量重构的场景tmux 几乎是刚需。2.4 本地模型接入要留好“旁路”热搜里有一条很关键claude code 调用lmstudio的本地模型。这说明不少人不想完全依赖云端服务而是希望把本地推理接进来。LM Studio 可以在本机暴露一个兼容接口Claude Code 和 Codex 通过配置 base URL 就能指向它。但这里有个前提本地模型的接口格式、鉴权方式、模型名称必须和工具预期匹配否则会出现cc switch local proxy failed while handling codex endpoint /responses这类报错。所以在整体设计里我会把“云端配置”和“本地配置”做成两套可切换的方案而不是混在一起。云端用官方登录本地用自定义 base URL 和 API key。切换时只改环境变量或配置文件不动安装本身。这样即使本地模型服务没起来也不影响云端工具的使用。3. 核心细节解析与实操要点每个环节的坑在哪里3.1 Node.js 安装版本、镜像、PATH 三件事Node.js 安装本身不复杂但细节决定后面顺不顺。第一下载渠道优先选官网或可信镜像别用来路不明的安装包。第二安装方式上Windows 可以用官方 installermacOS 和 Linux 更推荐版本管理器。第三安装完成后一定要确认 PATH 里 Node 和 npm 的路径指向正确。如果你用 nvm安装 Node 的命令大致是nvm install 22然后nvm use 22。用 fnm 的话是fnm install 22和fnm use 22。装完后which nodeWindows 用where node应该指向版本管理器管理的目录而不是/usr/bin/node这种系统路径。这一步确认了后面 npm 全局安装才不会乱。注意有些系统上同时存在多个 Node 来源比如系统包管理器装了一个、官网 installer 装了一个、版本管理器又装了一个。node -v显示的版本和你以为的可能不一致。装之前先which -a node看一眼把多余的清理掉。3.2 npm 全局目录配置一次配好长期受益配置 npm 全局目录的命令不复杂但很多人跳过这步后面就不断遇到权限问题。以 macOS/Linux 为例先建目录mkdir -p ~/.npm-global然后npm config set prefix ~/.npm-global最后把~/.npm-global/bin加进 PATH。Windows 下类似目录换成用户目录下的某个路径PATH 在系统环境变量里加。配完之后用npm config get prefix确认再用npm install -g装一个小工具测试看命令能不能直接调用。这个测试很重要因为 PATH 没生效的话你会以为安装失败其实是找不到命令。3.3 Claude Code 安装与配置登录、地区、订阅三个关卡Claude Code 的安装通常是通过 npm 全局包完成装完后运行命令会引导登录。这里常见的三个问题一是地区限制提示热搜里note: claude code might not be available in your country就是这类二是订阅访问被组织禁用your organization has disabled claude subscription access for claude code三是登录后 token 过期或缓存异常。我的处理原则是先确认账号本身的可用状态再排查本地配置。本地配置一般放在用户目录下的隐藏文件夹里登录信息、缓存、设置都在那。遇到登录异常最直接的办法是清掉本地配置重新登录而不是反复试。清之前记得备份避免把有用的设置一起删了。另外VS Code 里配置 Claude Code 是另一个常见需求。热搜里vscode配置claude code、claude code for vs code、vscode接入claude code都指向这个场景。核心思路是先在终端里把 Claude Code 跑通再在 VS Code 的集成终端里调用同一个命令。不要指望 VS Code 插件能绕过终端配置底层还是同一套。3.4 Codex 安装与配置登录、组织设置、配置项拼写Codex 的安装同样走 npm 全局包。装完后运行会要求登录登录方式可能是浏览器回调或设备码。热搜里codex登录、codex安装 windows桌面版、codex cli都是这个环节的搜索。登录成功后配置一般写在用户目录的配置文件里。Codex 有一个很容易忽略的点配置项拼写。热搜里codex is ignoring 1 unrecognized configuration setting. check for typos or d就是配置项写错导致的。Codex 对配置键名比较严格多一个字母、少一个下划线都可能被忽略。我的建议是改配置前先看官方文档或--help输出确认键名改完后用工具自带的校验命令检查一遍别等运行时报错才回头找。组织设置加载失败codex无法加载组织设置通常和账号权限或网络请求有关。先确认账号是否属于某个组织、组织是否允许使用 Codex再排查本地网络和代理设置。如果公司网络有拦截可能需要换网络环境测试。3.5 tmux 会话管理让工具常驻不随终端关闭而退出tmux 的安装很简单macOS 用 brewUbuntu 用 aptWindows 可以在 WSL 里用。装完后核心操作就几个tmux new -s work新建会话Ctrlb d脱离会话tmux attach -t work重新接入tmux ls列出会话。我习惯给 Claude Code 和 Codex 各开一个窗口或 pane。这样一边跑代码生成一边跑测试或日志互不干扰。tmux 里环境变量是继承自创建会话时的 shell所以如果你在会话创建后才改 PATH 或 API key需要重新加载配置或新建会话。这个细节很多人踩过明明在终端里配好了tmux 里却找不到命令。提示如果你用 tmux 跑长时间任务建议开启日志记录方便事后回看。tmux pipe-pane可以把 pane 输出写到文件里排查问题时很有用。3.6 本地模型接入base URL、模型名、接口格式要对齐把 LM Studio 的本地模型接进 Claude Code 或 Codex核心是配置 base URL 和模型名称。LM Studio 默认在本机某个端口暴露兼容接口你需要在工具配置里把 API 地址指向它并填一个 LM Studio 里已加载的模型名。鉴权方面本地服务通常不校验 key但工具可能要求填一个非空值随便填一个占位即可。常见的报错cc switch local proxy failed while handling codex endpoint /responses通常意味着接口路径或请求格式不匹配。Codex 可能期望/responses这样的端点而本地服务暴露的是另一套路径。解决办法是查清楚工具实际请求的路径再在本地服务或中间层做适配。如果本地服务不支持该路径就需要一个轻量转发层把请求转成双方都能理解的格式。4. 实操过程与核心环节实现从零到跑通的完整记录4.1 环境准备确认系统、清理旧版本、装版本管理器先确认系统类型和架构。macOS 用uname -m看是 Intel 还是 Apple SiliconLinux 用uname -aWindows 建议在 WSL2 里操作避免路径和权限的额外麻烦。然后清理旧的 Node 安装如果用系统包管理器装过先卸载如果之前用 installer 装过删掉对应目录。装版本管理器。macOS/Linux 下 nvm 的安装脚本可以从官方仓库获取fnm 也可以用 brew 或 cargo 装。Windows 原生环境可以用 nvm-windows但更推荐 WSL。装完后新开终端确认nvm --version或fnm --version能输出。接着装 Node LTSnvm install 22nvm use 22nvm alias default 22。最后确认node -v输出 v22.xnpm -v输出对应版本。这一步做完地基就打好了。4.2 npm 全局目录与 PATH 配置给出可直接复制的命令macOS/Linuxmkdir -p ~/.npm-global npm config set prefix ~/.npm-global echo export PATH~/.npm-global/bin:$PATH ~/.bashrc source ~/.bashrc npm config get prefix如果你用 zsh把~/.bashrc换成~/.zshrc。Windows PowerShell 下先建目录再npm config set prefix C:\Users\你的用户名\.npm-global然后在系统环境变量 Path 里加C:\Users\你的用户名\.npm-global。配完新开终端npm config get prefix应该输出你设置的路径。测试npm install -g npm-check-updates然后运行ncu --version。能输出版本号说明全局目录和 PATH 都对了。4.3 安装 Claude Code 并完成首次登录全局安装命令通常是npm install -g加上包名。装完后运行对应命令会进入登录流程。如果是浏览器回调按提示在浏览器里完成授权如果是设备码复制码到指定页面确认。登录成功后工具会在用户目录写入配置和 token。首次登录后建议跑一个简单任务验证比如让它解释一段代码或生成一个小函数。如果提示地区不可用或订阅被禁用先确认账号状态再检查本地是否有残留的旧配置。清配置的通用做法是找到用户目录下的工具配置文件夹重命名备份后重新登录。VS Code 里使用的话在集成终端里直接调用同一个命令即可。如果 VS Code 终端找不到命令检查 VS Code 是否继承了正确的 PATH必要时在设置里指定终端环境。4.4 安装 Codex 并处理配置项Codex 的安装同样是npm install -g加包名。装完运行登录命令按提示完成。登录后检查配置文件确认键名拼写正确。如果不确定有哪些配置项运行--help或查看官方文档。配置本地模型时在配置文件里设置 base URL 和模型名。如果遇到unrecognized configuration setting逐项核对键名把不认识的项先注释掉确认工具能正常启动后再逐条加回。组织设置加载失败时先确认账号权限再检查网络请求是否被拦截。4.5 tmux 会话搭建让两个工具同时待命安装 tmux 后新建一个会话tmux new -s airig。在会话里开两个 paneCtrlb %垂直分屏或Ctrlb 水平分屏。一个 pane 跑 Claude Code一个跑 Codex。需要脱离时Ctrlb d回来时tmux attach -t airig。如果希望开机自动创建会话可以写一个简单脚本在登录时检查会话是否存在不存在则新建并启动工具。这样每次连上机器工具已经在待命状态。4.6 本地模型接入的配置示例假设 LM Studio 在本机某端口暴露接口模型名为local-model。在 Claude Code 或 Codex 的配置里把 API base 指向该地址模型名填local-modelAPI key 填一个占位字符串。保存后运行一个简单请求测试。如果报错提示端点不匹配检查工具实际请求的路径。必要时在本地服务前加一个转发层把工具的请求路径映射到本地服务的实际路径。转发层可以用 Node.js 写一个几十行的小服务也可以用现成的工具。关键是先把请求和响应的格式对齐再谈稳定性。5. 常见问题与排查技巧实录这些坑我都踩过5.1 安装类问题速查表现象可能原因处理方式node.js v24.21.0 is not yet released指定了不存在的版本号改用 LTS 版本如 20 或 22EACCES权限错误npm 全局目录需要 sudo配置独立全局目录并改 PATH命令找不到PATH 未生效或全局目录不对确认npm config get prefix和 PATH安装卡住网络或镜像源问题换镜像源或检查网络原生模块编译失败Node 版本与模块不兼容换 LTS 版本重装5.2 登录与账号类问题地区提示、订阅禁用、组织设置加载失败这三类问题本质都不在本地工具而在账号和服务端策略。我的排查顺序是先确认账号能正常登录网页端再确认账号是否有对应服务的权限最后才查本地配置。本地配置的问题通常表现为 token 过期、缓存损坏清掉重登即可。注意清配置前先备份尤其是你手动改过的设置。有些工具的配置文件夹里同时存了登录信息和自定义配置一刀切会丢东西。5.3 配置项与本地模型类问题配置项拼写错误是最冤的因为工具往往只给一个警告不告诉你具体哪项错了。我的做法是改配置时一次只改一项改完立即验证。本地模型接入时先用 curl 直接测本地服务的接口确认服务本身正常再配到工具里。这样能把问题范围缩小到“工具配置”还是“本地服务”。cc switch local proxy failed while handling codex endpoint /responses这类报错重点看端点路径和请求体格式。用抓包或日志把工具发出的请求记录下来和本地服务期望的格式对比差异一目了然。5.4 tmux 与环境变量类问题tmux 会话里找不到命令通常是因为会话创建时的 PATH 和当前 shell 不一致。解决办法是改完 PATH 后重新创建会话或者在 tmux 配置里显式加载 shell 配置。另一个常见问题是后台会话被系统清理可以调整 tmux 的保持策略或配合系统服务让会话常驻。5.5 我个人的几条避坑经验第一所有配置改动都记下来包括改了哪个文件、加了哪行、为什么改。出问题时这份记录比搜索引擎管用。第二先跑通云端再折腾本地云端链路短容易定位问题本地模型涉及服务、端口、格式多层放在后面处理。第三不要同时改多个变量一次只动一个验证后再动下一个。第四保留一个能用的最小配置折腾新功能时复制一份出来改别把主配置搞坏。这套装配思路我在几台机器上重复过从 Ubuntu 服务器到 macOS 笔记本核心步骤一致差异主要在安装方式和路径。把 Node.js 地基打牢、全局目录配好、两个工具分开配置、tmux 管住会话剩下的就是按需接本地模型和调参数。真正花时间的从来不是安装本身而是遇到报错时能不能快速定位到是哪一层的问题。把层次分清楚排查就有方向了。