[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-11304":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":9,"rankLanguage":9,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":9,"pushedAt":9,"updatedAt":36,"readmeContent":37,"aiSummary":38,"trendingCount":15,"starSnapshotCount":15,"syncStatus":39,"lastSyncTime":40,"discoverSource":41},11304,"codex-app-transfer","Cmochance\u002Fcodex-app-transfer","Cmochance","Local desktop gateway that translates OpenAI Codex CLI's Responses API into Chat Completions for Kimi \u002F DeepSeek \u002F Zhipu GLM \u002F Bailian and other OpenAI-compatible providers.",null,"Rust",248,19,22,7,0,12,37,192,36,3.9,"MIT License",false,"main",true,[26,27,28,29,30,31,32,33,34,35],"api-proxy","chat-completions","claude","codex","deepseek","kimi","llm-tools","openai","responses-api","rust","2026-06-12 02:02:30","# Codex App Transfer\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"README.md\">简体中文\u003C\u002Fa> |\n  \u003Ca href=\"README.en.md\">English\u003C\u002Fa> |\n  \u003Ca href=\"docs\u002FCHANGELOG.md\">Changelog\u003C\u002Fa>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fstargazers\">\u003Cimg alt=\"GitHub stars\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002FCmochance\u002Fcodex-app-transfer?style=social\">\u003C\u002Fa>\n  \u003Ca href=\"LICENSE.txt\">\u003Cimg alt=\"License\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002FCmochance\u002Fcodex-app-transfer\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fwww.rust-lang.org\u002F\">\u003Cimg alt=\"Rust\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FRust-1.80%2B-orange?logo=rust\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fv2.tauri.app\u002F\">\u003Cimg alt=\"Tauri\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTauri-2.x-24C8DB?logo=tauri\">\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Freleases\">\u003Cimg alt=\"Downloads\" src=\"https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002FCmochance\u002Fcodex-app-transfer\u002Ftotal?label=downloads\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nCodex App Transfer 是一个面向 **OpenAI Codex CLI** 的轻量桌面配置 + 转发工具。它在本机起一个网关,把 Codex CLI 发出的 Responses API 请求(HTTP 流式 \u002F 非流式 + `\u002Fresponses` 回退)翻译成 Chat Completions \u002F Gemini Native \u002F Anthropic Messages \u002F Grok Web 等格式,转发到你选择的供应商。\n\n跟 `farion1231\u002Fcc-switch` 这类偏 Claude Code 的 Anthropic 工具不同,本项目专注 **OpenAI Codex CLI** 的接入:用桌面 UI 管理供应商、模型映射、转发端口、日志面板,让 Codex CLI 无缝使用第三方 OpenAI \u002F Gemini \u002F Claude-compatible \u002F Grok 等推理服务。\n\n启动转发后,Codex CLI 通过本机 `127.0.0.1:18080` 与本工具通信。关闭窗口会缩到系统托盘继续运行,右键托盘\"退出\"才完全退出。\n\n当前版本 **v2.1.6**(详见 [Changelog](docs\u002FCHANGELOG.md) 与 [Releases](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Freleases))。\n\n## 界面预览\n\n| 仪表盘 | 供应商 |\n|---|---|\n| ![Board](docs\u002Fimg\u002FBoard.png) | ![Providers](docs\u002Fimg\u002FProviders.png) |\n| **设置** | **日志** |\n| ![Settings](docs\u002Fimg\u002FSettings.png) | ![Logs](docs\u002Fimg\u002FLogs.png) |\n\n### Codex CLI 实际接入\n\n启用任意供应商后,Codex CLI 模型选择器会显示「\u003Cprovider> \u002F \u003Creal-model>」形式的真实模型名,对话过程中工具循环 \u002F `previous_response_id` 历史回放 \u002F thinking 模式 reasoning_content 注入全部由本地代理透明处理:\n\n![Codex CLI 实际对话](docs\u002Fimg\u002Fcodex-cli-real-chat.png)\n\n## 能做什么\n\n- 管理多套供应商,按 OpenAI 模型名(`gpt-5.5` \u002F `gpt-5.4` \u002F `gpt-5.4-mini` \u002F `gpt-5.3-codex` \u002F `gpt-5.2`)映射到供应商真实模型 ID\n- 把 Codex CLI 的 Responses API 流式 \u002F 非流式请求转换为上游协议:Chat Completions、Gemini Native(`:streamGenerateContent`)、Gemini CLI OAuth(Cloud Code Assist)、Anthropic Messages(`\u002Fv1\u002Fmessages`)、Grok Web(`\u002Frest\u002Fapp-chat\u002Fconversations\u002Fnew`)、Responses 透传等\n- 多轮工具对话上下文 + `previous_response_id` 历史回放 + autocompact 展开 + thinking \u002F reasoning_content 注入全部对齐 OpenAI Responses API 协议\n- 会话历史**两层持久化**:L1 内存 LRU + L2 sqlite 30 天 TTL(`~\u002F.codex-app-transfer\u002Fsessions.db`),`.app` 重启不丢历史\n- Codex CLI 原配置守护:apply 前自动快照 `~\u002F.codex\u002F{config.toml,auth.json}`,退出 \u002F 下次启动按 key 智能合并还原\n- 实时日志面板,2 秒自动刷新;统一 `tracing::warn!(error_id, detail)` + 稳定 token,operator 可 grep \u002F 聚合\n- 反馈弹窗附带诊断材料(环境信息、脱敏配置、最近错误快照及完整请求 \u002F 响应),减少手工补材料\n- 中文 \u002F 英文界面,浅色 \u002F 深色 \u002F 绿色 \u002F 橙色 \u002F 灰色 \u002F 白色多种主题\n- 跨平台单实例锁定(双击启动自动唤起已有窗口)+ 跨进程 file lock 防多实例同时写 config 丢更新\n- Windows \u002F macOS \u002F Linux 系统托盘\n\n## 下载\n\n最新版:`https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Freleases\u002Flatest`\n\n推荐资产命名:\n\n```text\nCodex-App-Transfer-v\u003C版本>-Windows-x64-Setup.exe       Windows NSIS 安装版(推荐)\nCodex-App-Transfer-v\u003C版本>-Windows-x64.msi             Windows MSI(企业 MDM \u002F GPO)\nCodex-App-Transfer-v\u003C版本>-macOS-arm64.dmg             macOS Apple Silicon\nCodex-App-Transfer-v\u003C版本>-macOS-x64.dmg               macOS Intel x64(v2.1.0+,close #61)\nCodex-App-Transfer-v\u003C版本>-Linux-x86_64.deb            Debian \u002F Ubuntu\nCodex-App-Transfer-v\u003C版本>-Linux-x86_64.AppImage       通用 Linux x86_64,`chmod +x` 直接跑\n```\n\n每个二进制都附带 `.sha256` 与 `.sig`(RSA-3072 PKCS#1 v1.5 + SHA-256 签名);公钥 `Codex-App-Transfer-release-public.pem` 跟随每个 Release 一起发布,直接从 [Releases](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Freleases) 下载即可验签。\n\nWindows 暂未做 Authenticode 代码签名,系统可能提示未知发布者,可用 `.sha256` \u002F `.sig` 校验下载完整性。\n\n## 快速开始\n\n1. 启动 Codex App Transfer,弹出桌面窗口\n2. 在仪表盘点右上角加号 → 选择 preset 或自定义供应商,填入 API Base URL、API Key、模型映射\n3. 在\"转发\"页面点\"启动转发\",本机 `18080` 端口开始监听\n4. 在 Codex CLI 配置文件(`~\u002F.codex\u002Fconfig.toml`)里把 `base_url` 指向 `http:\u002F\u002F127.0.0.1:18080`,把 API Key 设为本工具显示的 Gateway API Key\n5. 重新打开 Codex CLI,模型选项就会自动列出当前供应商的模型映射\n6. ⚠️ **必须把 Codex CLI 切到 Full access**(`\u002Fapprovals` → \"Full access\"):第三方 provider 在 Codex CLI 默认 `auto` 审批模式下,工具调用会卡审批弹窗;Full access 直接放行工具调用,这是接入第三方 provider 的**事实必要前提**\n\n桌面窗口无法打开时(罕见,通常是 Tauri webview 初始化失败 \u002F 系统 webview 缺失),先尝试重启;若仍异常,从 [Releases](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Freleases) 重新下载并查看 `~\u002F.codex-app-transfer\u002Flogs\u002Fproxy-*.log`,或开 [Issue](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fissues) 反馈。v2 架构无独立 HTTP admin UI(管理面板走 Tauri 同进程 `cas:\u002F\u002F`,**不再监听 18081 端口**)。\n\n## 供应商兼容矩阵\n\n| Provider | 多轮历史 | autocompact | tool_call_repair | 备注 |\n|---|---|---|---|---|\n| Kimi(Moonshot Platform \u002F Kimi For Coding) | ✅ | ✅ | ✅ | thinking 三层防御 |\n| DeepSeek V4(含 Max 思维) | ✅ | ✅ | ✅ | 视觉输入剥离避免 400 |\n| Xiaomi MiMo(Token Plan \u002F Pay for Token) | ✅ | ✅ | ✅ | 纯图请求兜底空格 text part |\n| MiniMax M2.x \u002F Text-01 | ✅ | ✅ | ✅ | `role=system` 转 user 防 400(v2.1.6) |\n| Google AI Studio(`gemini_native`) | ✅ | ✅ | ✅ | Gemini 3 `\u002Fv1alpha` + Gemini 2.x `\u002Fv1beta` 自动选 |\n| Google Gemini CLI OAuth | ✅ | ✅ | ✅ | 浏览器登录 Google 一次,免 API key |\n| Anthropic Messages(custom Claude-compatible) | ✅(PR #153) | ✅(PR #153) | ✅(PR #153) | `apiFormat=anthropic_messages`,Claude preset 待真实验证后开放 |\n| Grok Web(SuperGrok \u002F X Premium+) | ✅ | ✅ | ✅(v2.1.6 加 tool_calls flatten) | 实验性,TOS 灰色,仅本机个人使用 |\n| Google Antigravity OAuth | ✅ | ✅ | ✅ | 后端就绪,UI 待 PR |\n| 智谱 GLM \u002F 阿里云百炼 | ⚠️ 实验兼容 | — | — | OpenAI Chat 兼容反代 |\n| Responses 协议透传(custom) | — | — | — | 直连上游不经代理(适合 OpenAI 官方 \u002F 原生 Responses 反代);⚠️ Plugins\u002FMCP `namespace` 工具包不展平,部分上游会静默丢工具 |\n\n## 模型映射\n\nCodex CLI 按 OpenAI 模型名提示;第三方 provider 用 `deepseek-v4-pro` \u002F `kimi-k2.6` \u002F `glm-5.1` \u002F `gemini-3-pro` 等真实 ID。\n\n本工具用 `provider.models[slot]`(`gpt-5.5` → `deepseek-v4-pro` 等)做槽位映射,Codex CLI 模型选择器看到 `\u003Cprovider> \u002F \u003Creal-model>` 形式真实模型名;上游 `chatcmpl-...` 应答 ID 自动重写为 Codex CLI 校验通过的 `resp_\u003Cbase64>`,保留 deployment affinity 编码,`previous_response_id` 跨轮一致。\n\n## 本地开发(v2 \u002F Rust)\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer.git\ncd codex-app-transfer\ncargo tauri dev          # 启动桌面窗口,代码改动自动重编译\ncargo test --workspace --lib   # 跑单元测试\nmake mac-app             # macOS 本地打包到 dist\u002Fmac\u002F\n```\n\nFixture 反向 diff(契约测试):\n\n```bash\ncargo run --bin xtask -- gen-fixtures\n```\n\n打包(参考 `.github\u002Fworkflows\u002Frelease.yml`):\n\n```bash\ncargo tauri build --bundles app,dmg          # macOS arm64\ncargo tauri build --bundles nsis,msi         # Windows x64\ncargo tauri build --bundles deb,appimage     # Linux x86_64\n```\n\n### 想改 UI 样式怎么改\n\n`frontend\u002Fcss\u002F` 走\"组件库\"形式拆开,不需要全文 grep `style.css`:\n\n| 想改什么 | 改哪个文件 |\n|---|---|\n| 主题色 \u002F 圆角 \u002F 阴影 \u002F 间距等 design tokens | `frontend\u002Fcss\u002Ftokens.css`(129 vars + 6 套主题) |\n| 全局 reset \u002F body 字体 \u002F focus 描边 | `frontend\u002Fcss\u002Fbase.css` |\n| 按钮 \u002F 卡片 \u002F 表单 \u002F 徽章 \u002F 模态等组件 | `frontend\u002Fcss\u002Fcomponents\u002F\u003Cname>.css` |\n| 仪表盘 \u002F 提供商 \u002F 转发 \u002F 设置 \u002F 引导某一页专属样式 | `frontend\u002Fcss\u002Fpages\u002F\u003Croute>.css` |\n| 响应式断点 \u002F 1100px \u002F 720px | `frontend\u002Fcss\u002Fresponsive.css` |\n\n预览所有组件 + 各状态 + 主题切换:\n\n```bash\n# 浏览器直接打开(不需 dev server)\nopen frontend\u002Fgallery.html        # macOS\nxdg-open frontend\u002Fgallery.html    # Linux\nstart frontend\u002Fgallery.html       # Windows\n```\n\n`gallery.html` 顶部有主题切换 + 深浅色按钮,改 component css 后刷新即看。`frontend\u002Findex.html` 主入口 `\u003Clink href=\"css\u002Fstyle.css\">` 不需要改 — `style.css` 只是 @import 入口聚合所有子文件。\n\n加新组件: 在 `components\u002F` 建 `\u003Cname>.css` + 在 `style.css` 加一行 `@import url(\"components\u002F\u003Cname>.css\");` + 在 `gallery.html` 加 section。\n\n## 常见问题\n\n### Codex CLI 提示 `404 Not Found url: http:\u002F\u002F127.0.0.1:18080\u002Fresponses`\n\n老版本只有 `\u002Fv1\u002Fresponses`,Codex CLI 0.126 起回退到 `\u002Fresponses`(不带 `\u002Fv1\u002F`)。本工具已加路由别名,更新到 v1.0.1+ 即可。\n\n### Codex CLI 提示 `stream disconnected before completion`\n\n通常是 `response.id` \u002F `response.model` 没按 Codex CLI 期望填回。本工具把上游 `chatcmpl-...` 重写成 `resp_\u003Cbase64>` 并保留请求模型名,请确认转发日志确实看到 `resp_...` 而不是 `chatcmpl-...`。\n\n### 上游 400:`thinking is enabled but reasoning_content is missing`\n\nKimi \u002F DeepSeek 开启 thinking 后强制要求历史中带 tool_call 的 assistant 消息提供 `reasoning_content`。v1.0.1+ 已自动补默认空字符串,并把 Responses 输入里的 reasoning items 映射到对应 assistant 消息。\n\n### 上游 400:`'reasoning_effort' does not support 'xhigh'`\n\nCodex 用户配置里若把 `model_reasoning_effort` 设成 `xhigh` \u002F `max`,本工具自动降级到 `high`。`auto` \u002F `none` 等 Chat 端不接受的值会被丢弃。\n\n### MiniMax 400:`invalid message role: system (2013)`\n\nv2.1.5 及之前的版本未把 `role=system` 转 `role=user`,导致 MiniMax `\u002Fv1\u002Fchat\u002Fcompletions` 整请求 400。v2.1.6+ 已修(close #139),所有 `role=system` 消息转 `role=user` + content 前置 `[System]\\n` marker。\n\n### 端口冲突\n\nv2 默认监听 `18080`(转发);管理界面走 Tauri 同进程 `cas:\u002F\u002F`,不再占用 18081。`netstat -ano | findstr :18080` 查占用,或在 设置 → 端口 改成空闲端口后重启转发。\n\n### Windows 提示未知发布者\n\n当前 Windows 构建未做 Authenticode 代码签名。Release 页提供 `.sha256` 与 `.sig`,可用于校验安装包未被替换。\n\n### 自定义 Update URL \u002F Self-host 自签\n\nv2.1.12+ 的客户端 **强制** RSA-3072 PKCS#1-v1.5-SHA256 验签 `latest.json` 跟 installer:升级流程会主动拉 `\u003Curl>.sig` + 用 build-time 嵌入的官方公钥 (`release\u002FCodex-App-Transfer-release-public.pem`) 验,失败硬 fail 不 fallback 到 SHA256-only。\n\n**自定义 update URL 必须自签才能用**:\n\n1. fork 仓库,把 `release\u002FCodex-App-Transfer-release-public.pem` 换成你自己的公钥\n2. 用对应私钥跑 `cargo run -p xtask --release -- release-bundle` 签 `latest.json` + 每个 installer\n3. 重 build 客户端,公钥嵌进二进制\n4. 用户在 设置 → Update URL 填你的 `latest.json` 地址\n\n设计意图: 客户端只信\"build-time 嵌入的公钥\"产生的签名,运行时不可替换公钥,防 MITM 改 `latest.json` 推任意 installer (公钥 PEM 已在 release\u002F 目录,但若让客户端动态从 update URL 旁边拉公钥就破坏 trust anchor)。\n\n### 日志去哪了\n\n- 应用界面:转发页面下方实时面板,2 秒自动刷新\n- 磁盘文件:`~\u002F.codex-app-transfer\u002Flogs\u002Fproxy-YYYY-MM-DD.log`,点\"查看日志\"按钮直接打开\n- 清除日志:把当前日志移到 `logs\u002Fbackup\u002F` 并加时间戳后缀,不直接删除\n\n## 技术栈\n\n- **后端 \u002F 转发**:Rust 1.80+ · axum 0.8 · reqwest 0.12(rustls-tls)· tokio\n- **协议适配**:`crates\u002Fadapters\u002F` — Responses ↔ Chat \u002F Gemini Native \u002F Gemini CLI OAuth \u002F Anthropic Messages \u002F Grok Web 互转(请求 body + 流式响应状态机 + reasoning_content + tool_calls)\n- **前端**:HTML + CSS + 原生 JavaScript + Bootstrap 5.3.3(本地化,无 CDN 依赖)\n- **桌面壳**:Tauri 2 + tray-icon 0.23,通过 `cas:\u002F\u002F` URI scheme 把 frontend\u002F 与 axum 同进程串起来,无 TCP loopback\n- **存储**:`~\u002F.codex-app-transfer\u002Fconfig.json`(配置,与 v1.x 互通)、`~\u002F.codex-app-transfer\u002Fsessions.db`(L2 sqlite 会话持久化)、`~\u002F.codex\u002F{config.toml,auth.json}`(Codex CLI 集成)\n- **打包**:`cargo tauri build` 单命令出 dmg\u002FAppImage\u002Fdeb\u002Fexe\u002Fmsi;`xtask release-bundle` 收口出 sha256 + RSA-3072 sig + latest.json + draft GitHub release\n\n## 免责声明\n\n本项目专注 **OpenAI Codex CLI** 接入,**不是** OpenAI \u002F Anthropic \u002F Google \u002F xAI 的官方项目,也不复用其商标 \u002F Logo \u002F 发布身份。\n\n上游 API key \u002F OAuth token 仅保存在本机 `~\u002F.codex-app-transfer\u002F`(Unix 0600 + atomic write);转发服务只监听 `127.0.0.1`,不接管系统代理。\n\n部分实验性 provider(Grok Web \u002F Gemini CLI OAuth \u002F Antigravity OAuth)涉及上游 TOS 灰色地带 — Grok Web 反代 grok.com Web 后端协议、Gemini CLI OAuth 借用 `cloudcode-pa.googleapis.com\u002Fv1internal` 内部端点 — 严格限定**个人使用**,**不应**作为对外服务发布,**用户自担风险**。\n\n## 致谢\n\n> 以下列表为概览(每条一句话)。**完整借鉴形式 \u002F 借鉴清单 \u002F 本项目对应 file:line** 见 [ACKNOWLEDGEMENTS.md](.\u002FACKNOWLEDGEMENTS.md)。\n\n- [`farion1231\u002Fcc-switch`](https:\u002F\u002Fgithub.com\u002Ffarion1231\u002Fcc-switch) — provider 切换形态启发\n- [`lonr-6\u002Fcc-desktop-switch`](https:\u002F\u002Fgithub.com\u002Flonr-6\u002Fcc-desktop-switch) — v1.x 桌面壳骨架 + README 结构参考\n- [`BerriAI\u002Flitellm`](https:\u002F\u002Fgithub.com\u002FBerriAI\u002Flitellm) — 协议双向转换思路\n- [`tauri-apps\u002Ftauri`](https:\u002F\u002Ftauri.app\u002F) — v2 + `cas:\u002F\u002F` 架构基座\n- [`Piebald-AI\u002Fclaude-code-system-prompts`](https:\u002F\u002Fgithub.com\u002FPiebald-AI\u002Fclaude-code-system-prompts) — autocompact prompt 蓝本\n- [`7as0nch\u002Fmimo2codex`](https:\u002F\u002Fgithub.com\u002F7as0nch\u002Fmimo2codex) — MiMo 协议借鉴\n- [`router-for-me\u002FCLIProxyAPI`](https:\u002F\u002Fgithub.com\u002Frouter-for-me\u002FCLIProxyAPI) — Gemini OAuth wire 参考\n- [`chenyme\u002Fgrok2api`](https:\u002F\u002Fgithub.com\u002Fchenyme\u002Fgrok2api) — Grok Web 反向工程参考 + dynamic statsig 算法 + tool_calls flatten 模式\n- [`galaxywk223\u002Fcodex-plugin-unlocker`](https:\u002F\u002Fgithub.com\u002Fgalaxywk223\u002Fcodex-plugin-unlocker) — Codex Desktop Plugins 解锁注入脚本(React Context-value 反查 + DOM enable + MutationObserver,MIT)\n- [`QwenLM\u002Fqwen-code`](https:\u002F\u002Fgithub.com\u002FQwenLM\u002Fqwen-code) — 阿里官方 Qwen CLI,百炼 Token Plan (`*.maas.aliyuncs.com`) 模型清单硬编码模式(`packages\u002Fcli\u002Fsrc\u002Fauth\u002Fproviders\u002Falibaba\u002FtokenPlan.ts` 的 `TOKEN_PLAN_MODELS`,Apache-2.0)\n- [`BigPizzaV3\u002FCodexPlusPlus`](https:\u002F\u002Fgithub.com\u002FBigPizzaV3\u002FCodexPlusPlus) — Windows MSIX Codex Desktop CDP 注入路径(`IApplicationActivationManager` COM + AUMID 自动解析 + cmdline 序列化,`codex_session_delete\u002Flauncher.py`,MIT)\n\n### 社区贡献者\n\n通过 PR 直接改进过本项目的贡献者(按首次提交时间倒序;完整列表见 [Contributors](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fgraphs\u002Fcontributors)):\n\n- [@lukegood](https:\u002F\u002Fgithub.com\u002Flukegood) — MiniMax M2.x 兼容性([#47](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fpull\u002F47))\n- [@cw881014](https:\u002F\u002Fgithub.com\u002Fcw881014) — 早期协议层 3 PR([#1](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fpull\u002F1) \u002F [#7](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fpull\u002F7) \u002F [#12](https:\u002F\u002Fgithub.com\u002FCmochance\u002Fcodex-app-transfer\u002Fpull\u002F12))\n\n如果提交过 PR 想改名 \u002F 补链接 \u002F 移除,开 issue 跟我说一声。\n\n## 许可证\n\nMIT License。完整文本见 [LICENSE.txt](LICENSE.txt)。\n","Codex App Transfer 是一个本地桌面网关工具，用于将 OpenAI Codex CLI 的 Responses API 请求转换为 Chat Completions 格式，并转发给 Kimi、DeepSeek、Zhipu GLM 等兼容 OpenAI 的服务提供商。其核心功能包括通过桌面 UI 管理供应商和模型映射，支持流式与非流式请求的透明处理，以及提供会话历史持久化存储。该工具采用 Rust 语言开发，具有跨平台特性，适用于需要无缝集成第三方 AI 推理服务到本地 Codex CLI 开发环境中的场景。",2,"2026-06-11 03:31:34","CREATED_QUERY"]