MCPcopy Create free account
hub / github.com/CAZAMA1/Codex-app-with-deepseek-perfectly

github.com/CAZAMA1/Codex-app-with-deepseek-perfectly @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
85 symbols 199 edges 9 files 18 documented · 21% updated 3mo ago★ 1046 open issues

Browse by type

Functions 63 Types & classes 22
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Codex DeepSeek Config

一套用于在 Windows 上把 Codex 桌面端切换到 DeepSeek、本地 OpenAI 兼容代理或原生 OpenAI 登录的配置与脚本集合。

项目包含三部分:

  • config.toml:Codex 配置模板,预置本地 DeepSeek relay provider。
  • start.ps1 + model-proxy.py:一键启动 DeepSeek 本地代理链路。
  • switch-provider.ps1:在 OpenAI、DeepSeek 本地代理、ChatGPT 中转站之间切换。
  • codex-relay/:Responses API 到 Chat Completions API 的 Rust relay 实现源码。

工作原理

Codex 默认使用 OpenAI Responses API。DeepSeek 等大多数兼容服务提供的是 Chat Completions API,因此本项目使用两层本地服务做适配:

Codex Desktop
  -> model-proxy.py       http://127.0.0.1:4445/v1
  -> codex-relay          http://127.0.0.1:4446/v1
  -> DeepSeek API         https://api.deepseek.com/v1

model-proxy.py 负责把 Codex 可能发出的 OpenAI 模型名映射到 DeepSeek 模型名;codex-relay 负责把 Responses API 请求转换为 Chat Completions API 请求。

文件说明

路径 说明
README.md GitHub 项目说明文档
config.toml Codex 配置模板,可复制到 %USERPROFILE%\.codex\config.toml
start.ps1 一键启动本地 DeepSeek relay 和模型名代理
switch-provider.ps1 修改 Codex 配置,在三种模型提供商之间切换
model-proxy.py 本地 HTTP 代理,处理模型名映射并转发请求
配置指南.md 早期中文配置指南
codex-relay/ Rust relay 源码、测试、Python 包装入口

前置条件

  • Windows 10/11
  • PowerShell
  • Python 3.x
  • Rust/Cargo(仅在需要从源码编译 codex-relay 时使用)
  • DeepSeek API Key(使用 DeepSeek 本地代理模式时需要)

如果直接安装发布版 relay,可以使用:

pip install codex-relay

如果要从本项目源码构建:

cd codex-relay
cargo build --release

安装与配置

1. 设置 DeepSeek API Key

把 DeepSeek API Key 保存到用户级环境变量:

[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY", "你的DeepSeek-API-Key", "User")

设置后建议重启 PowerShell 或重新登录系统,让环境变量生效。

2. 安装 relay

推荐直接安装:

pip install codex-relay

安装完成后确认命令可用:

codex-relay --help

3. 准备 Codex 配置

将根目录的 config.toml 复制到:

%USERPROFILE%\.codex\config.toml

该模板默认启用 deepseek-relay

model_provider = "deepseek-relay"
model = "deepseek-v4-pro"
review_model = "deepseek-v4-flash"

[model_providers.deepseek-relay]
name = "DeepSeek"
base_url = "http://127.0.0.1:4445/v1"
env_key = "DEEPSEEK_API_KEY"

使用方法

启动 DeepSeek 本地代理

在项目根目录运行:

.\start.ps1

脚本会启动两个后台任务:

  • codex-relay:监听 127.0.0.1:4446
  • model-proxy.py:监听 127.0.0.1:4445

看到“全部就绪”后,打开或重启 Codex 桌面端即可使用。

切换模型提供商

运行:

.\switch-provider.ps1

可选择:

选项 模式 说明
1 OpenAI 账号登录 使用 Codex 内置 OpenAI 登录
2 DeepSeek 本地代理 使用 start.ps1 启动的本地代理链路
3 ChatGPT 中转站 使用 OpenAI 兼容中转地址,需要 OPENAI_API_KEY

切换后需要重启 Codex 桌面端。

插件兼容性提示

实测发现:如果一开始直接使用 ChatGPT 中转站 API,Codex 中的插件功能可能不可用;但先切换到 OpenAI 账号登录模式,让 Codex 完成账号态初始化后,再通过 switch-provider.ps1 切换到 ChatGPT 中转站模式,插件功能可以继续正常使用。

推荐顺序:

1. 运行 switch-provider.ps1,选择 [1] OpenAI 账号登录
2. 重启 Codex,并确认插件功能可用
3. 再次运行 switch-provider.ps1,选择 [3] ChatGPT 中转站
4. 重启 Codex,继续使用中转站 API 和插件功能

这个现象可能与 Codex 的账号登录态、插件权限初始化或本地缓存有关。脚本本身只修改模型 provider 配置,不会写入 API Key,也不会修改插件配置。

模型名映射

model-proxy.py 会自动处理以下模型名映射:

Codex 请求模型 转发给 DeepSeek 的模型
gpt-5.4-mini deepseek-v4-flash
gpt-5.4 deepseek-v4-flash
gpt-5.5 deepseek-v4-pro
gpt-5 deepseek-v4-pro

如果请求中的模型名已经是 DeepSeek 模型名,则会原样转发。

安全说明

  • 不要把真实 API Key 写进 config.toml 或脚本。
  • 本项目通过 DEEPSEEK_API_KEY / OPENAI_API_KEY 环境变量读取密钥。
  • .gitignore 已排除 .env、本机 .claude/settings.local.json、日志和构建产物。
  • 发布到公开仓库前,建议再次搜索 sk-api_keytoken 等敏感词。

常见问题

PowerShell 无法运行脚本

首次运行可能需要允许当前用户执行本地脚本:

Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy RemoteSigned

提示找不到 DEEPSEEK_API_KEY

说明用户环境变量未设置或当前终端还没读取到新变量。重新设置后,重启 PowerShell:

[Environment]::SetEnvironmentVariable("DEEPSEEK_API_KEY", "你的DeepSeek-API-Key", "User")

出现 401 Unauthorized

检查 API Key 是否正确、账户余额是否充足,以及 Codex 当前是否切换到了预期的 provider。

出现模型名不支持

确认 start.ps1 已经运行,且 model-proxy.py 正在监听 127.0.0.1:4445。Codex 应该访问 4445,而不是直接访问 4446

使用中转站 API 时插件不可用

可以先切到 OpenAI 账号登录模式并重启 Codex,确认插件可以正常加载;然后再用 switch-provider.ps1 切回 ChatGPT 中转站模式并重启 Codex。这个流程通常可以保留插件能力,同时让模型请求走中转站 API。

端口被占用

默认端口:

  • 4445:模型名代理
  • 4446:codex-relay

如果端口被占用,请关闭旧进程,或同步修改 start.ps1model-proxy.pyconfig.toml 中的端口。

开发与测试

运行 Rust 测试:

cd codex-relay
cargo test

本地调试 relay:

$env:CODEX_RELAY_UPSTREAM = "https://api.deepseek.com/v1"
$env:CODEX_RELAY_API_KEY = $env:DEEPSEEK_API_KEY
$env:CODEX_RELAY_PORT = "4446"
codex-relay

另开一个 PowerShell 启动模型代理:

python .\model-proxy.py

License

根目录脚本按项目用途发布;codex-relay/ 子目录保留其原始 MIT License。

🤝 Sponsors

Doloffer

A handy tool to help users easily manage and organize different subscription services. Check out their GitHub Guide.

Core symbols most depended-on inside this repo

browse all functions →

Shape

Function 50
Class 21
Method 13
Enum 1

Languages

Rust93%
Python7%

Modules by API surface

codex-relay/src/session.rs20 symbols
codex-relay/src/main.rs18 symbols
codex-relay/src/types.rs16 symbols
codex-relay/src/translate.rs14 symbols
codex-relay/tests/compat_deepseek_v4_pro.rs8 symbols
model-proxy.py4 symbols
codex-relay/src/stream.rs3 symbols
codex-relay/codex_relay/__init__.py2 symbols

For agents

$ claude mcp add Codex-app-with-deepseek-perfectly \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page