Codex 接入本地模型 最省事的方法是:装好 Ollama 后直接运行 ollama launch codex;想手动控制就用 codex --oss,并在 ~/.codex/config.toml 里写 oss_provider = "ollama"。另外记得把 Ollama 上下文调到 64k 以上,否则 Codex 很难正常干活。

本文按 OpenAI 官方 Advanced Configuration 文档和 Ollama 官方 Codex 集成文档整理,适合想离线跑代码助手、或者不想消耗 ChatGPT / API 额度的读者。Codex 本身的安装可参考 Codex CLI Windows 安装与接入 API 教程。
准备工作
- Codex CLI:用
npm install -g @openai/codex安装,装完运行codex --version确认。 - Ollama:到 ollama.com 下载对应系统的版本,建议用最新版。默认监听
http://localhost:11434。 - 一个支持工具调用的模型:Ollama 文档示例用的是
gpt-oss:120b。显存不够可以换小一点的模型,模型名以ollama list显示的为准。

方法一:ollama launch codex 一键启动
这是 Ollama 官方推荐的快速方式:
ollama launch codex
通过它启动时,Ollama 会刷新模型目录,并给这次会话使用专门的 Codex 配置。进入 Codex 后输入 /model,可以在已安装、支持工具调用的 Ollama 模型之间切换,不用重启。想把更多模型放进列表,先 ollama pull 模型名 再启动。斜杠命令的用法见 Codex CLI 斜杠命令大全。
另外两个相关命令:
# 只写配置、不启动
ollama launch codex --config
# 删除 Ollama 生成的 launch 配置和模型目录
ollama launch codex --restore
方法二:codex --oss 手动接入
第 1 步:拉取模型
ollama pull gpt-oss:120b
ollama list
第 2 步:用 --oss 启动
# 用默认本地模型
codex --oss
# 指定模型
codex --oss -m gpt-oss:120b
# 本次指定用 Ollama(另一个可选值是 lmstudio)codex --oss --local-provider ollama
带 -cloud 后缀的模型(如 gpt-oss:120b-cloud)是 Ollama 的云端模型,不占本机显存。
第 3 步:写进 config.toml,免得每次选
官方文档说明:如果既没传 --local-provider,也没设 oss_provider,交互式 CLI 会让你选,而 codex exec 会直接报错退出。所以建议在 ~/.codex/config.toml 里加一行:
# --oss 默认使用的本地提供方
oss_provider = "ollama" # 或 "lmstudio"

方法三:用 profile 长期保存本地模型配置
不想影响平时用的 OpenAI 模型,可以单独建一个 profile。官方规则是:传 --profile 名字 时,Codex 先读 ~/.codex/config.toml,再叠加 ~/.codex/ 名字.config.toml;profile 文件里直接写顶层键,不要再套 [profiles.xxx]。
新建 ~/.codex/ollama-launch.config.toml(Ollama 文档示例):
model = "gpt-oss:120b"
model_provider = "ollama-launch"
[model_providers.ollama-launch]
name = "Ollama"
base_url = "http://localhost:11434/v1/"
wire_api = "responses"
然后运行:
codex --profile ollama-launch
注意:openai、ollama、lmstudio 等是 Codex 内置提供方的保留 ID,自定义提供方要换个名字。
连接局域网里另一台机器的 Ollama
把 base_url 改成那台机器的地址,例如 http://192.168.1.20:11434/v1。那台机器上的 Ollama 默认只监听本机,需要设置环境变量 OLLAMA_HOST=0.0.0.0:11434 后重启。Linux 用 systemd 安装的,按官方 FAQ 执行 systemctl edit ollama.service,在 [Service] 下加 Environment="OLLAMA_HOST=0.0.0.0:11434",再 systemctl daemon-reload 和 systemctl restart ollama。
关键一步:把上下文调到 64k
Ollama 官方 Codex 页面要求上下文至少 64k tokens,而 Ollama FAQ 写明默认上下文只有 4096。不改的话,Codex 的系统提示和工具说明会被截断,表现为答非所问、不调用工具。启动服务时这样设置:
OLLAMA_CONTEXT_LENGTH=64000 ollama serve
Windows 在“编辑账户的环境变量”里新建 OLLAMA_CONTEXT_LENGTH,退出并重新打开 Ollama 生效。之后用 ollama ps 看 PROCESSOR 列:100% GPU 最快,出现 CPU/GPU 混合说明显存不够,速度会明显下降。
常见报错与解决
codex exec --oss 直接报错退出
没有指定本地提供方。加 --local-provider ollama,或在 config.toml 写 oss_provider = "ollama"。
连接失败,提示连不上 localhost:11434
Ollama 没在运行。先执行 ollama serve 或打开 Ollama 应用,再用 ollama list 确认服务正常。远程机器还要检查 OLLAMA_HOST 和防火墙端口。
模型答非所问、不会改文件
多半是上下文太小,按上一节调到 64k;其次是模型本身不支持工具调用,换一个支持的模型。
/model 列表里看不到刚下载的模型
列表只显示已安装、支持工具调用的模型。确认 ollama pull 完成后,重新运行 ollama launch codex。
写在项目里的 model_provider 不生效
Codex 不读取项目级 .codex/config.toml 里的 model_provider 和 model_providers,要写在用户目录的 ~/.codex/config.toml 或 profile 文件里。更多排查思路见 Codex 配置不生效的 7 个常见原因。
FAQ
问:本地模型能完全替代 GPT 官方模型吗?
答:取决于模型大小和显卡。小模型适合简单改动和离线场景,复杂任务效果会差一些。
问:LM Studio 也能用吗?
答:可以。官方 OSS 模式支持 Ollama 和 LM Studio,把 oss_provider 或 --local-provider 设成 lmstudio 即可。
问:本地模式下还能联网搜索吗?
答:Ollama 文档说明,经 Ollama profile 发出的搜索请求由 Ollama 执行,需要先 ollama signin;不想用可加 -c 'web_search="disabled"'。