开了多个 Codex CLI 实例,如何给每个窗口配置独立模型?
最近在折腾开发环境的时候,有个小需求其实挺普遍的:为了处理不同的任务,我习惯同时开四五个 Codex CLI 的终端窗口。比如一个在写前端代码,一个在写脚本,还有一个在调试旧项目。
但问题随之而来:默认情况下,打开的这些 CLI 窗口往往共用一套模型配置。这就导致我想在这个窗口用 GPT-4 跑逻辑,那个窗口用 GPT-3.5 快速补全代码时,得频繁切换配置,非常折腾。有没有办法让不同的 CLI 实例拥有各自独立的模型设置呢?经过一番摸索,答案当然是肯定的。
为什么会“打架”?
大多数 CLI 工具在启动时,都会去读取用户目录下的默认配置文件(比如 ~/.config 或者项目根目录下的配置文件)。当你打开多个进程时,它们读取的是同一个文件源头,自然就共享了模型参数(API Key、模型名称、温度 Top-P 等)。
要解决这个问题,核心思路就是打破这种共享机制,让每个实例读取不同的配置源。
方案一:环境变量大法(最推荐)
这是最通用也最优雅的方法,不需要你改动任何系统全局配置文件,也不会污染其他项目的设置。
在启动新的 CLI 实例前,直接在当前的 Shell 会话中临摹环境变量。Codex CLI 通常支持通过环境变量来覆盖配置文件中的设置。
假设你想启动一个使用 o1-preview 模型的专用窗口,操作流程如下:
- 打开一个新的终端窗口。
- 输入以下命令(具体变量名请参照你使用的 CLI 工具文档,通常类似
MODEL_NAME或AI_MODEL):export AI_MODEL=o1-preview export AI_TEMPERATURE=0.7 - 正常启动你的 CLI 工具:
codex start
通过设置环境变量来指定该终端实例使用的模型
此时,这个窗口内的进程就会优先读取刚才设置的环境变量,而忽略全局配置。你可以再开一个窗口,这次设为 gpt-4o-mini,两边互不干扰。
进阶技巧: 如果你经常这么做,可以写几个简单的 Shell 函数或者 alias。比如写一个 dev-pro 自动加载高端模型,写一个 dev-mini 自动加载轻量模型,一键切换,效率起飞。
方案二:带参数启动
看看你手头的 Codex CLI 工具是否支持在启动命令后直接加参数。
很多优秀的工具都支持诸如:
codex start --model=gpt-4 --max_tokens=2000
如果支持,那恭喜你,这是最简单的方式。直接给每个启动命令创建不同的桌面快捷方式或者 Shell 脚本即可。
方案三:工作区级配置
项目目录下的配置文件结构示意
如果你是在不同的项目文件夹下工作,最好的办法是将配置文件下沉到项目中。
检查一下 CLI 工具是否支持读取当前工作目录下的配置文件(例如 .codexrc 或 codex.config.json)。工具通常会遵循“当前目录优先级高于全局目录”的原则。
操作方法:
- 进入项目 A 的目录。
- 创建配置文件,写入需要的模型 ID。
- 进入项目 B 的目录。
- 创建另一个配置文件,写入不同的模型 ID。
这样,只要你在哪个目录下启动 CLI,它就会自动加载该目录专属的配置,完全不需要手动干预。【划重点:记得把配置文件加入到 .gitignore 里,防止把 API Key 传到 GitHub 上去!】
方案四:多用户或多配置文件路径(高阶)
如果以上方法都不行,或者你想彻底隔离,可以使用“配置文件路径”参数。
有些 CLI 允许你指定配置文件的位置:
codex start --config ~/.codex_pro_config
你可以在家里准备两套配置文件,一套是日常用的,一套是重型任务用的,每次启动时指定路径。
总结
多开窗口本来是为了并行工作,配置冲突反而成了累赘。其实解决这个问题并不难,最简单的先用环境变量试试,如果不行就看看有没有启动参数支持,最后再考虑项目级配置。
折腾好了,左边窗口用 o1 深度思考,右边窗口用 4o-mini 快速生成 Boilerplate 代码,这才是多屏开发的正确姿势。希望这些小技巧能帮到同样在纠结这事的你!

评论已关闭