手机远程连着 Codex 写代码本来很顺手的一件事。结果你只是按网上的教程加了[model_providers.codex]配置再回到手机侧边栏点进 Codex发现之前的对话记录全不见了明明上午刚讨论过的重构方案还在会话里现在打开却是空白对话框。这不是你的数据丢了而是 provider 的身份变了Codex 把这个新配置当成了另一个会话源。TaoToken 作为统一 API 通道正好可以帮你把这条路理清楚在 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 创建一把 Key再把 config.toml 里的 provider 各项对齐手机远程连接时记录就能续上。下文按「看清楚原因 → 拿 Key → 清理旧认证 → 改配置 → 手机连接 → 排障」的顺序把每一步落到具体文件里。1. 对话记录丢失先别急着重装 Codex1.1 记录是跟着 provider 身份走的Codex 的历史对话并不是都塞在你手机里的它存储在服务端客户端只是通过一个「会话源」的标识把它们拉回来。这个标识就是 config.toml 里[model_providers.codex]这一整段配置的组合provider 名字、base_url、wire_api、requires_openai_auth、experimental_bearer_token。只要这些字段的取值和之前注册会话时的一致Codex 就能找到旧记录任何一个字段变了它都会认为这是一个从来没见过的 provider于是给你开一个全新的会话。这就是「配置改完记录消失」的最常见原因。为了让你更直观地理解可以把 provider 看作快递地址同样的楼栋但只要门牌号写错一位快递员就不会把包裹投到你家。Codex 也一样它会用这组字段拼出一个「地址」然后拿着这个地址去服务端取历史对话。你改 base_url 或 name等于把地址换了旧包裹自然查不到。1.2 手机上连接的其实是同一个 provider手机端从侧边栏进入 Codex 时它并不是独立存在的一个版本而是通过局域网或配对通道连到电脑上的 Codex 进程。真正向服务端发起请求、拉取历史记录的还是电脑端配置里的那个 provider。所以手机端能不能看到旧对话取决于电脑端 config.toml 里的 provider 是否正确。很多人把注意力放在手机重装、清缓存结果手机里什么都没有问题其实在电脑端这一份 toml 文件里。只要电脑端 provider 的各项认证信息没漂移手机侧边栏连接后会直接沿用电脑端的会话历史。这意味着对话记录能否续上与手机端 App 的账号状态关系不大决定性因素是电脑端这份配置的一致性。很多配置教程反复强调「provider 必须和原来保持一致」原因就在这里。2. 在 TaoToken 官网拿一把专属于你的 Key2.1 注册并创建 API Key这一步对应你在别的配置教程里看到的「登录账号」。区别在于这里不需要用 ChatGPT 账号去解锁什么权限而是在 TaoToken 上注册并创建一把 API Key。打开官网后用邮箱注册并按提示验证进入控制台左侧的 API Keys 页面点击创建系统会生成一串密钥。这把 Key 就是之后 config.toml 里experimental_bearer_token的值也是 Codex 每次请求向 TaoToken 证明「你是谁」的凭证。创建后 Key 只完整显示一次记得先复制到本地临时文件里。如果关掉页面再回来只能重新生成新 Key旧的会立即失效。这个设计是为了防止 Key 泄露也意味着你不需要在手机端重复输入它——手机连接电脑后所有请求都走电脑端的这份配置。2.2 Key 只需要填进 config不要写进代码有些开发者会顺手把 Key 写进项目根目录的环境变量文件甚至提交到 Git 仓库这是比较危险的做法。TaoToken 的 Key 是你的账户凭证写入公开仓库后别人可以直接拿去调用并按量扣费。正确做法是只把 Key 填到 config.toml 的experimental_bearer_token字段或者必要时设置为你 shell 里不对外暴露的环境变量。本文以配置文件为主所以 Key 只出现在 config.toml 里。3. 清理 auth.json避免认证信息新旧打架3.1 auth.json 为什么会干扰 providerCodex 客户端在首次登录时会生成一个 auth.json 文件里面存放的是登录过的账号凭证。如果你之前用 ChatGPT 账号登录过 Codexauth.json 里已经有了一套 OpenAI 的 token。此时 config.toml 里又加了 TaoToken 的experimental_bearer_token同一个客户端里就存在两套认证。不同版本的 Codex 对这种情况的处理并不一致有些会优先读 auth.json结果请求被发到 OpenAI 而不是 TaoToken导致 401还有些会在手机远程连接时反复要求重新登录干扰对话记录的同步。所以把 provider 指向 TaoToken 之前最好先把旧的登录态摘掉不给客户端留二选一的机会。3.2 安全又省事备份后清空旧记录auth.json 的位置在用户目录下的 .codex 文件夹里例如 Linux 和 macOS 上是~/.codex/auth.jsonWindows 可以在用户目录下搜索.codex文件夹。稳妥的做法是先关闭 Codex把这个文件整体复制到别的目录备份然后直接删除原文件。由于我们要用 TaoToken 的 Keyauth.json 里的 OpenAI 登录凭证已经不再需要留着反而可能让客户端优先读它导致请求打错地址。删除后重启 Codex客户端会依靠 config.toml 里的认证配置继续工作并自动生成一份干净的 auth.json。注意备份文件不要放在项目目录或任何会被 Git 追踪的地方放到系统临时目录或你的私人文件夹里即可。4. 把 config.toml 的 model_providers 对齐 TaoToken4.1 完整配置示例找到 Codex 的 config.toml同样在 .codex 文件夹下先备份再打开编辑。确保文件里有下面这一段model YOUR_MODEL_ID [model_providers.codex] name codex base_url https://taotoken.net/api wire_api responses requires_openai_auth true experimental_bearer_token YOUR_API_KEYYOUR_MODEL_ID需要你打开 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 的模型广场复制一个当前可用的模型 ID 再填不要凭记忆写。YOUR_API_KEY替换成第 2 章创建的那把 Key。保存后退出编辑器。4.2 每个参数都别动错地方base_url必须写成https://taotoken.net/api末尾不要带/v1。TaoToken 的接口地址就是这样设计的加上/v1会导致 404。wire_api保持responses不要动。这是 Codex 用来与服务端对话的协议方式改成chat会让对话记录对不上甚至直接报错。requires_openai_auth保持true。它告诉 Codex 使用 OpenAI 兼容的认证头来携带experimental_bearer_token。experimental_bearer_token填你的 TaoToken Key。这个字段名里带experimental但实际是稳定可用的只是 Codex 官方保留了改名的可能。model字段放在文件顶层用于指定默认模型。手机远程连接时Codex 会用这个模型 ID 去匹配服务端的真实模型所以一定要以模型广场列表为准。如果你之前已经有一个[model_providers.codex]段不要直接覆盖整个文件而是逐行比对新旧差异。重点看name、wire_api、requires_openai_auth这三个值是不是被顺手改掉了。很多人为了换成 TaoToken把name改成了别的英文名导致手机端认为这是一个全新 provider历史记录自然不出现。5. 手机侧边栏连接 Codex验证对话记录续上5.1 连接步骤手机打开 ChatGPT 客户端先用自己的 OpenAI 账号登录这一步是为了拿到 Codex 入口不影响后续的 API 请求地址再从侧边栏点进 Codex。此时手机会扫描局域网内正在运行的 Codex 进程并提示「发现一台电脑」。确认电脑端 Codex 保持运行状态点击连接即可。连接时手机会和电脑端协商同一个 provider 身份所以你在电脑上看到的会话列表会在手机端同步出现。如果你在手机端没有看到 Codex 入口先检查手机客户端版本是否过旧或者把电脑端 Codex 退掉重新启动再回到手机侧边栏刷新一次。配对成功后手机端显示的会话历史应该和电脑端完全一致。5.2 两种快速验证方式第一种在电脑端 Codex 里新开一个对话输入一句话比如「记住这个会话现在开始同步」然后马上拿起手机打开侧边栏 Codex 的同一个会话应该能看到这句话。第二种反过来在手机上发一条消息回到电脑端刷新同样能出现。只有双向都能看到才说明 provider 身份真的对齐了。如果手机端能看到对话框却没有历史记录多半是第 4 章里某个字段被改动了。回到 config.toml把 provider 的name、wire_api、requires_openai_auth和改动前的值逐一对比确认没有偏差。此时不要急着在手机端新建会话那个新会话会被记录为另一个 provider 的历史让问题更难排查。6. 远程配好了仍报错对照这几个原因排查6.1 401认证冲突或 Key 填错401 是最常见的情况。第一反应先看 auth.json 是不是又回填了旧 token如果你没有删干净Codex 可能优先读它导致带过去的认证与 TaoToken 不匹配。重新检查 auth.json 是否为空config.toml 里的experimental_bearer_token是否复制完整包括首尾是否多了空格。如果都正常回 TaoToken 控制台看这把 Key 是否被禁用必要时重新创建一把再替换。6.2 404 或连接超时Base URL 多了 /v1一旦base_url写成了https://taotoken.net/api/v1请求就会打到不存在的路径上出现 404 或连接超时。TaoToken 的接口地址是https://taotoken.net/api没有/v1这一级。也不要把它和官网落地页混淆官网 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_end 用于创建 Key 和查看用量填进客户端的地址永远是https://taotoken.net/api。6.3 记录依旧不同步provider 字段被改动手机能连接说明网络和认证都没问题但历史记录还是看不见。最可能的原因就是[model_providers.codex]里的name、wire_api或requires_openai_auth与旧配置不一致。回顾一下你改动前用的 provider 是什么逐项对齐。如果你是从其他 API 服务商迁到 TaoToken 的旧 provider 的wire_api可能是chat换成responses后记录不继承是正常的只能接受新会话从零开始。7. 跑通后回控制台对一下这次调用配置保存后先在 TaoToken 模型对话 里用同一把 Key 发一条测试消息确认模型 ID 和 Base URL 没填错再回到手机侧边栏测试一次远程同步。若要长期写代码可以打开 Coding Plan 看套餐是否覆盖日常用量还没创建 Key 的话到 控制台 API Keys 创建一个。Claude Code 的环境变量写法可参考 接入文档但本文场景只需要改 Codex 的 config.toml。
