openrig环境编排实战:Claude Code与Codex的Node.js和tmux配置指南 1. 从零认识 openrig它到底解决什么问题第一次看到 openrig 这个名字很多人会以为是某个硬件支架或者开源机械臂项目。实际上结合它周边的关键词——Claude Code、Codex、Node.js、tmux——可以判断出openrig 是一套面向 AI 编程助手尤其是 Claude Code 和 Codex 这类 CLI 工具的运行环境编排方案。它的核心价值在于把散落在各处的命令行 AI 工具、本地模型服务、终端会话管理整合成一套可复用、可切换、可远程保持的工作台。我自己在折腾 Claude Code 和 Codex 的过程中最头疼的从来不是工具本身好不好用而是环境问题。Node.js 版本不对、终端一关会话就断、本地模型和云端模型切换要改一堆配置、不同项目要用不同的 API 端点……这些琐事加起来消耗的精力比写代码还多。openrig 这类方案要解决的正是这些“脏活累活”。它适合谁三类人最需要一是刚接触 Claude Code 或 Codex、被安装配置卡住的新手二是同时使用多个 AI 编程工具、需要频繁切换模型和端点的进阶用户三是在服务器或远程环境里跑 AI 助手、希望会话能持久保持的开发者。哪怕你只是想在本地把 Claude Code 接上 LM Studio 的本地模型openrig 的思路也能帮你理清整个链路。需要说明的是openrig 目前并不是一个官方标准化的产品更多是一种“环境编排实践”的统称。所以下面我会结合 Claude Code、Codex、Node.js、tmux 这几个核心组件把一套可落地的方案完整拆开讲。你完全可以照着搭一套属于自己的 openrig。2. 环境底座Node.js 安装与版本管理的关键决策2.1 为什么 Node.js 版本是第一个坑Claude Code 和 Codex 的 CLI 版本基本都是基于 Node.js 生态分发的这意味着 Node.js 的版本直接决定了工具能不能装、能不能跑。热搜词里出现“error installing 24.21.0: node.js v24.21.0 is not yet released”这种报错本质上是版本号写错了或者源里还没有这个版本。Node.js 的版本发布有严格的节奏奇数版本是过渡版偶数版本才是长期支持版LTS。生产环境或者日常开发认准 LTS 就对了。我个人的建议很明确不要用系统自带的 Node.js。Ubuntu 的 apt 源里的 Node.js 往往版本偏旧装 Claude Code 时经常提示引擎不兼容。正确做法是用版本管理工具或者至少从官方渠道装一个较新的 LTS。2.2 Ubuntu 下安装 Node.js 20 的稳妥路径在 Ubuntu 上我试过三种方式各有适用场景第一种是 NodeSource 源安装适合想要系统级全局 Node.js 的场景。命令大致是这样curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash - sudo apt-get install -y nodejs装完用node -v确认版本。这种方式的好处是全局可用坏处是切换版本麻烦。第二种是 nvmNode Version Manager我个人最推荐。它把 Node.js 装在用户目录下切换版本一条命令搞定curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash source ~/.bashrc nvm install 20 nvm use 20 nvm alias default 20第三种是直接下载官方二进制包解压适合没有网络包管理权限的环境。从 Node.js 官网下载 LTS 的 Linux 二进制压缩包解压后把 bin 目录加到 PATH 里即可。注意无论哪种方式装完后一定要确认node -v和npm -v都能正常输出。很多“安装 Claude Code 失败”的问题根源就是 npm 全局路径没配好。2.3 npm 全局目录与权限处理用 npm 装全局 CLI 工具时最常见的报错是 EACCES 权限错误。原因是 npm 默认往系统目录写普通用户没权限。解决办法有两种一是用 nvm 管理 Node.js全局包会装在用户目录下天然没这个问题二是手动改 npm 的全局前缀mkdir -p ~/.npm-global npm config set prefix ~/.npm-global echo export PATH~/.npm-global/bin:$PATH ~/.bashrc source ~/.bashrc这一步做完后面装 Claude Code、Codex 都会顺畅很多。我踩过的坑是改完 prefix 后忘了把 bin 目录加进 PATH结果装完了命令找不到白白排查半天。3. Claude Code 与 Codex 的安装配置实战3.1 Claude Code 安装与首次配置Claude Code 的安装本身不复杂通过 npm 全局安装即可npm install -g anthropic-ai/claude-code装完后在项目目录里运行claude就能启动。首次使用需要完成认证按照提示走即可。这里有个细节Claude Code 会读取当前目录作为工作上下文所以最好在具体项目根目录下启动而不是在用户主目录里乱跑。在 VS Code 里使用 Claude Code可以装对应的扩展然后在集成终端里调用。热搜词里“vscode配置claude code”和“vscode接入claude code”问的人很多核心就是两步装扩展、在终端里确保claude命令可用。如果 VS Code 的终端找不到命令多半是 PATH 没继承重启 VS Code 或者检查 shell 配置即可。3.2 Codex 安装与登录问题排查Codex 的安装同样走 npm 路线具体包名以官方文档为准。安装后运行登录命令常见问题集中在“codex登录不上”和“codex无法加载组织设置”。前者通常是网络或认证回调问题后者多半是账号权限或组织策略限制。热搜里还有一条“codex is ignoring 1 unrecognized configuration setting”这是配置文件里有拼写错误或者不支持的字段。Codex 的配置文件一般是 JSON 或 TOML 格式改的时候要严格对照官方文档的字段名。我的经验是改配置前先备份改完用工具自带的校验命令过一遍别直接上生产。3.3 两个工具共存时的路径与版本隔离Claude Code 和 Codex 同时装最容易冲突的地方是全局命令名和配置目录。好在它们的命令名不同一般不会直接打架。但如果你用 nvm 切换了 Node.js 版本之前装的全局包在新版本下就不可见了需要重新安装。这是 nvm 的特性不是 bug。我的做法是固定一个 Node.js LTS 版本作为 AI 工具专用版本用nvm alias default设好所有全局 CLI 都装在这个版本下。这样切换项目时不会因为 Node.js 版本变化导致工具消失。4. tmux让 AI 编程会话永不掉线的核心4.1 为什么 AI 编程助手特别需要 tmuxClaude Code 和 Codex 都是交互式 CLI一次会话可能持续几十分钟甚至更久。如果你在 SSH 远程服务器上跑网络一抖或者终端一关会话就没了之前积累的上下文全部丢失。tmux 的作用就是创建一个持久化的终端会话即使你断开连接会话里的进程依然在跑重新连上后tmux attach就能回到原来的界面。这跟 openrig 的理念高度契合把 AI 助手当成一个长期运行的服务来管理而不是一次性的命令行调用。4.2 tmux 基础操作与常用配置tmux 的核心概念是会话session、窗口window、面板pane。最常用的命令tmux new -s ai # 新建名为 ai 的会话 tmux ls # 列出所有会话 tmux attach -t ai # 重新接入 ai 会话 tmux kill-session -t ai # 结束会话在会话内部默认前缀键是Ctrlb然后按d可以脱离detach按c新建窗口按%垂直分屏按水平分屏。我建议改一下配置把前缀键换成Ctrla更顺手。在~/.tmux.conf里加set -g prefix C-a unbind C-b bind C-a send-prefix set -g mouse on开启鼠标支持后切换面板、调整大小都能用鼠标操作对新手友好很多。4.3 用 tmux 编排 Claude Code 与 Codex 的工作流我的实际用法是这样的开一个 tmux 会话叫ai里面分三个窗口。窗口 1 跑 Claude Code窗口 2 跑 Codex窗口 3 用来跑本地模型服务或者看日志。这样我在一个终端里就能管理所有 AI 工具切换用Ctrla加数字键。更进一步可以在 tmux 里做面板分屏左边跑 Claude Code 做代码生成右边跑一个 shell 用来执行生成的命令和验证结果。这种“左生成右验证”的布局效率比来回切换终端高得多。提示tmux 会话里的环境变量继承自创建会话时的 shell。如果你在创建会话后才改了 PATH 或 API 相关的环境变量会话里是看不到的。要么重新创建会话要么在会话内手动 export。5. 模型接入本地模型与第三方 API 的切换策略5.1 Claude Code 调用 LM Studio 本地模型的链路热搜词里“claude code 调用lmstudio的本地模型”是一个高频需求。核心思路是LM Studio 在本地起一个兼容 OpenAI 接口的服务然后通过配置让 Claude Code 把请求指向这个本地端点。LM Studio 启动本地服务器后默认监听一个本地端口提供/v1/chat/completions这类接口。Claude Code 本身对端点的支持需要通过环境变量或配置文件指定。具体来说需要设置 API base URL 指向本地地址API key 随便填一个非空值本地服务通常不校验。这里的关键难点是接口兼容性。Claude Code 期望的请求格式和 OpenAI 格式可能有差异所以有时候需要中间加一层转换。如果直接接不通可以先用 curl 测试本地端点是否正常响应再排查格式问题。5.2 用 cc switch 类方案切换 DeepSeek、Qwen、GLM热搜里“使用cc switch 接入 deepseek v4, qwen, glm等模型”反映了一个真实痛点不同任务想用不同模型但每次改配置太麻烦。cc switch 这类工具的思路是维护多套配置一键切换。实现方式通常有两种一是维护多个配置文件切换时软链接或者复制到生效位置二是用环境变量控制启动前 export 不同的 base URL 和 key。我倾向于第二种写几个 shell 函数放在.bashrc里use_deepseek() { export AI_BASE_URLhttps://api.deepseek.com export AI_API_KEY你的key } use_qwen() { export AI_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1 export AI_API_KEY你的key }这样在 tmux 会话里切换模型一条命令搞定。注意不同厂商的接口路径和参数名可能有细微差别接入前先看官方文档的兼容性说明。5.3 端点报错与配置校验的通用方法热搜里“cc switch local proxy failed while handling codex endpoint /responses”这类报错本质是代理层在转发请求时目标端点不认这个路径或者请求体格式不对。排查顺序建议是确认目标端点是否真的支持该路径。有些服务只支持/v1/chat/completions不支持/responses。用 curl 直接打目标端点排除代理层干扰。检查请求头里的认证字段名是否正确不同厂商可能是Authorization或api-key。看代理日志确认转发出去的请求体长什么样。我踩过的坑是本地代理配置了路径重写但重写规则写错了导致所有请求都打到 404。后来养成习惯代理层改动后先用一个最简单的请求验证链路通不通再上复杂配置。6. 常见问题速查与避坑经验6.1 安装类问题速查表问题现象可能原因解决方向error installing 24.21.0版本号不存在或源未同步改用 LTS 版本号如 20.x安装 Claude Code 报引擎不兼容Node.js 版本过低升级到 Node.js 20npm 全局安装 EACCES全局目录无写权限改 prefix 或用 nvm命令装完找不到PATH 未包含全局 bin检查并导出 PATHVS Code 终端找不到 claude终端未继承 shell 配置重启 VS Code 或检查 shell6.2 登录与认证类问题Codex 登录不上先确认网络能正常访问认证服务再检查系统时间是否准确——时间偏差过大会导致认证令牌校验失败。Claude Code 如果提示组织禁用了订阅访问那是账号层面的策略限制需要从账号设置侧解决不是本地环境问题。6.3 模型调用类问题“the gpt-5.6-sol model is not supported”这类报错说明配置里写的模型名不被当前端点支持。解决方法是查目标端点的模型列表用实际存在的模型名。模型名是大小写敏感且经常带版本后缀的别凭记忆写。6.4 会话管理类问题tmux 会话里跑 Claude Code如果发现输出卡住不动先检查是不是面板处于 copy mode按q退出。另外tmux 里的终端类型可能影响某些 CLI 的彩色输出和交互必要时在.tmux.conf里设置set -g default-terminal screen-256color。7. 我搭建 openrig 工作流的几点体会整套环境搭下来我最大的感受是AI 编程工具的效率瓶颈往往不在模型本身而在环境编排。一个稳定的 Node.js 底座、一个持久化的 tmux 会话、一套清晰的模型切换机制这三样东西带来的体验提升比换一个更强的模型还明显。我现在的日常是这样的服务器上常驻一个 tmux 会话里面 Claude Code 和 Codex 各占一个窗口本地模型服务在第三个窗口跑着。需要切换模型时在对应窗口里执行预定义的 shell 函数。所有配置和脚本都放在一个 git 仓库里管理换机器时 clone 下来跑个初始化脚本就能恢复整套环境。这套东西没有什么高深技术但胜在稳定、可复现、不折腾。如果你刚开始搭建议先把 Node.js 和 tmux 这两块弄扎实再往上叠 Claude Code 和 Codex。顺序反了的话后面排查问题会非常痛苦。另外所有涉及 API key 的配置都不要硬编码在脚本里用环境变量或者独立的密钥文件并且确保这些文件不会被提交到公开仓库。这个习惯早晚会救你一次。