1. 从马桶上修 Bug 说起:Codex App 接微信到底解决什么问题
先说清楚这套东西是什么。Codex App 是跑在你本机上的编码智能体,能读写项目文件、跑命令、改代码;微信是你手机里 24 小时不离手的消息入口。把两者接起来之后,你在微信里发一句自然语言,本机的 Codex 就会真的去动你的项目,改完把结果回给你。它适合谁?适合那种「人不在电脑前,但脑子里突然冒出一个改动点」的开发者,比如通勤路上、排队时、或者标题里说的马桶上。
我自己的触发场景很具体:周末在家改一个静态博客项目,改到一半被叫去吃饭,脑子里还挂着「那个分页组件的边界条件没处理」。以前的做法是掏出手机记备忘录,等回到电脑前再弄,中间隔一两个小时,思路早凉了。现在直接在微信里发一句「帮我看下 D:\project2026\fuwari 的分页组件,边界条件是不是漏了」,本机 Codex 就开始干活,我吃完饭回来结果已经躺在聊天记录里。
这里的关键不是「远程控制电脑」这种老概念,而是消息通道 + 本机智能体的组合。Codex 本身有完整的项目上下文和工具调用能力,微信只负责当传话筒。所以它不需要你把代码传到什么云端,所有文件操作都发生在你自己机器上,这也是为什么后面要强调「电脑必须在线」。
搜索「Codex 微信 远程改代码」「Codex App 消息通知」这类词的人,多半卡在同一个地方:知道要桥接,但不知道 endpoint 怎么填、auth.json 怎么写、报错了怎么查。这篇就按「能直接复制粘贴跑通」的标准来写,配置片段全部给全,报错对照真实日志。
需要提前说明的是,桥接服务本身跑在本机,它调用 Codex 的那一层需要一个稳定的 API 通道。我这边用的是 TaoToken 的统一 Key,好处是模型 ID、Base URL、鉴权格式三样东西一次配好,后面换模型不用改桥接脚本。下面第二节先把这块前置讲清楚,第三节再上可复制的配置。
2. TaoToken 前置准备:统一 Key 与 API 通道怎么配
在动 CodexBridge 之前,先把「Codex 调用模型」这条链路理顺。很多人桥接装完了,微信也能收到消息,但 Codex 一直不返回结果,最后发现是模型通道没配好。所以这一步不能跳。
TaoToken 在这里扮演的角色是统一入口:你拿到一个 Key,配一个 Base URL,就能在 Codex、Cline、Claude Code 这些工具里复用同一套鉴权。官网在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 根地址是 https://taotoken.net/api ,注意 API 地址后面不加任何查询参数,直接就是根路径。
具体要准备三样东西,我列个表对照,这三样在后面所有配置文件里都会出现,缺一不可:
| 配置项 | 值 | 说明 |
|---|---|---|
| Base URL | https://taotoken.net/api | 所有请求的根地址,不要带斜杠结尾 |
| API Key | 在控制台生成 | 形如 sk- 开头的一串,只显示一次,记得存好 |
| Model ID | 按需选择 | 编码任务建议用带代码能力的模型 ID,控制台有列表 |
Key 的生成入口在控制台的 API Keys 页面,路径是 https://taotoken.net/console/api-keys ,登录后点新建,复制出来存到本地一个安全的地方。这里有个坑我踩过:Key 只在创建时完整显示一次,关掉弹窗就再也看不到全量了,只能重新建一个。所以复制完先粘到记事本确认长度对,再关。
模型 ID 这块,如果你不确定选哪个,可以先在模型对话页面 https://taotoken.net/models 里试跑一句,确认这个模型 ID 能正常返回,再写进配置文件。这一步看着多余,但能帮你排除掉「Key 没问题、模型 ID 写错了」这种最难查的错。
配好之后,建议先用一条 curl 验证通道本身是通的,别等桥接装完再回头查。命令如下,把 $TAOTOKEN_KEY 换成你自己的 Key:
curl https://taotoken.net/api/v1/chat/completions \ -H "Authorization: Bearer $TAOTOKEN_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "你的模型ID", "messages": [{"role": "user", "content": "回复两个字:通了"}] }'如果返回的 JSON 里 choices 数组有内容,说明 Key、Base URL、模型 ID 三件套没问题,可以进入下一步。如果返回 401,先别怀疑桥接,就是 Key 或 Authorization 头的问题,对照第五节的排查表处理。
这一步做完,你手里就有了一个可用的模型通道。CodexBridge 后面调用 Codex 时,Codex 自己会读它自己的配置,所以你要确保 Codex 的配置里也指向了这套通道。Codex 的配置文件通常在用户目录下的 .codex 文件夹里,Windows 是 C:\Users\你的用户名.codex\auth.json,macOS 和 Linux 是 ~/.codex/auth.json。这个文件长这样:
{ "OPENAI_API_KEY": "sk-你的TaoTokenKey", "OPENAI_BASE_URL": "https://taotoken.net/api/v1", "model": "你的模型ID" }注意 Base URL 这里带上了 /v1,因为 Codex 走的是 OpenAI 兼容协议,根地址后面要补版本路径。这一点和第二节 curl 里写的 /api/v1/chat/completions 是对应的,别写成两个不一样的地址。auth.json 改完保存,Codex 下次启动就会读新的配置。
到这里前置就齐了:一个能用的 Key、一个确认过的模型 ID、一份指向 TaoToken 的 auth.json。接下来才是桥接本身。
3. 可复制配置:CodexBridge 安装与微信通道对接
这一节是全文最实操的部分,我给的全是可以直接复制的片段。CodexBridge 这个项目的作用是在本机起一个服务,一头连着微信协议,一头调用本机 Codex。你不需要理解它内部怎么实现的,照着配就行。
最省事的接入方式,如果你已经装好 Codex App,直接把这句话发给 Codex:
https://github.com/Gan-Xing/CodexBridge 帮我对接个人微信Codex 会自动处理后面的流程:克隆项目、装依赖、检查环境、生成二维码、等你扫码、启动桥接服务。这一步是它比较聪明的地方,你不用手动 git clone 再 npm install。但自动流程偶尔会在依赖那步卡住,卡住了就手动来,命令如下:
git clone https://github.com/Gan-Xing/CodexBridge.git cd CodexBridge npm install依赖装完启动服务,它会给你一个二维码。用个人微信扫一下,手机上确认登录。这里提醒一句:二维码有效期比较短,看到就马上扫。如果提示「二维码已过期」,让 Codex 重新生成一张再扫,不用纠结,这是正常现象。
扫码成功后,本机会生成微信账号凭证,路径在:
C:\Users\你的用户名\.codexbridge\weixin\accounts\Windows 上还可以注册成计划任务,任务名一般是 CodexBridge-Weixin,这样以后登录 Windows 它会自动启动。计划任务的创建命令:
schtasks /create /tn "CodexBridge-Weixin" /tr "node D:\CodexBridge\index.js" /sc onlogon路径换成你本机 CodexBridge 的实际位置。这一步做完,桥接服务就常驻了。
接下来是重点:桥接脚本里调用 Codex 的那部分配置。项目自带的 .cmd 文件里可能写着作者自己的电脑路径,需要改成你本机的 Codex 路径和工作目录。比如原文件里可能是:
D:\software\Codex\app\resources\codex.exe D:\zed-workspace你要改成自己机器上的实际路径。如果你是让 Codex 自动接入的,它一般会自己检查并替你改掉,但手动装的话一定要核对。改完的 .cmd 大概长这样:
@echo off set CODEX_PATH=D:\software\Codex\app\resources\codex.exe set WORK_DIR=D:\project2026\fuwari "%CODEX_PATH%" --workdir "%WORK_DIR%" %*这里 CODEX_PATH 指向你本机 Codex 的可执行文件,WORK_DIR 是默认工作目录。桥接服务收到微信消息后,会把消息内容作为任务交给这个 Codex 进程执行。
还有一个容易漏的点:桥接服务本身要能读到 Codex 的 auth.json。如果你的 Codex 是用系统账号装的,auth.json 在用户目录下,桥接服务用同一个账号跑就没问题。但如果你把桥接注册成了系统级计划任务,跑在另一个账号下,就读不到你的 auth.json,表现就是微信能收到消息但 Codex 一直不返回。这种情况要么把计划任务改成当前用户触发,要么把 auth.json 复制一份到桥接服务能访问的路径并在启动脚本里指定。
配置全部改完,重启一次桥接服务,让新配置生效。重启命令:
# 先停掉旧进程 taskkill /f /im node.exe # 再重新启动 node D:\CodexBridge\index.js到这一步,配置层面就齐了。下一节验证整条链路。
4. 验证请求:从微信发一句话到 Codex 返回修复建议
配置写完不验证等于没写。这一节给一个完整的验证动作,从微信发消息开始,到 Codex 返回结果结束,中间每一步的预期现象我都写清楚。
第一步,确认桥接服务在跑。打开微信,找到桥接会话,发:
/h或者:
/status如果能收到回复,说明链路已经通了。收不到就回到第三节检查服务是否启动、二维码是否扫成功。
第二步,发一个真实任务。我用的测试任务是:
帮我看一下 D:\project2026\fuwari 这个项目最近有哪些改动,整理成一段提交说明。预期现象是:微信里先收到一个「任务已接收」之类的回执,然后过几十秒到几分钟(取决于项目大小和模型速度),收到一段整理好的提交说明。如果只收到回执没有后续,说明 Codex 那一步没跑通,去查 auth.json 和模型通道。
第三步,验证 Codex 真的动了项目。这一步很多人忽略,但很重要。你可以在微信里发一个会改文件的指令,比如:
把 D:\project2026\fuwari\src\components\Pagination.astro 里的边界条件补上,处理 total 为 0 的情况。然后回到电脑前,打开这个文件,看是不是真的被改了。如果改了,说明整条链路是通的,Codex 不只是「回复了你」,而是真的执行了文件操作。
常用命令我整理成表,日常远程使用先记住这几个就够了:
| 命令 | 作用 |
|---|---|
| /h | 查看帮助 |
| /status | 查看当前桥接状态 |
| /new 路径 | 切换到新的项目目录 |
| /threads | 查看历史线程 |
| /open 2 | 打开某个历史线程 |
| /stop | 停止当前正在跑的任务 |
| /retry | 重试上一条请求 |
验证通过之后,你就可以真正开始「在微信里派活」了。我的习惯是:电脑端适合认真操作,微信端适合随手派活。比如在外面突然想到一个需求、一段文案、一个代码修改点,直接发给微信里的 Codex,只要电脑在线,它就能在背后继续干活。
这里补一句关于模型通道的观察:因为 Codex 每次任务都要调模型,如果模型通道不稳定,表现就是任务时快时慢甚至超时。用 TaoToken 统一 Key 的好处是通道和 Key 是同一套,你在 Codex 里验证过的模型 ID,桥接这边直接复用,不用再单独配一遍。如果你打算长期高频用,可以考虑 Coding Plan,路径在 https://taotoken.net/coding-plan ,适合那种每天都要跑不少编码任务的场景。
5. 常见报错排查:401、local proxy failed、reading choices 怎么处理
这一节按真实报错来,每个报错给现象、原因、处理三步。这些错我自己都遇到过,不是编的。
报错一:401 Unauthorized
现象:微信发消息后,Codex 返回一段包含 401 的错误,或者桥接日志里出现 401。
原因:Key 不对、Key 过期、或者 Authorization 头格式写错。
处理:先确认 auth.json 里的 OPENAI_API_KEY 是完整的 sk- 开头字符串,没有多余空格或换行。然后确认 OPENAI_BASE_URL 写的是 https://taotoken.net/api/v1 ,注意结尾的 /v1 不能少。最后用第二节的 curl 命令单独测一次 Key,curl 通了说明 Key 没问题,问题在 Codex 配置读取上,检查 auth.json 路径对不对。
报错二:local proxy failed
现象:桥接日志里出现 local proxy failed 或类似字样,微信收不到任何回复。
原因:桥接服务尝试连接本机 Codex 进程失败,通常是 Codex 路径写错,或者 Codex 没启动。
处理:检查 .cmd 里的 CODEX_PATH 是否指向真实存在的可执行文件,手动在命令行跑一次这个路径看能不能启动。如果路径对但还报错,检查桥接服务和 Codex 是不是在同一个用户账号下运行,跨账号会导致进程通信失败。
报错三:reading choices 相关错误
现象:返回的 JSON 解析失败,日志里出现 reading 'choices' 或 cannot read property of undefined。
原因:模型返回的内容不是预期的 OpenAI 格式,通常是 Base URL 写错导致请求打到了错误的端点,或者模型 ID 不存在。
处理:确认 Base URL 是 https://taotoken.net/api/v1 ,模型 ID 和控制台里列出的完全一致。用 curl 直接打一次 chat/completions,看返回结构里有没有 choices 数组。如果没有,就是端点或模型 ID 的问题。
报错四:OAuth 相关错误
现象:日志里出现 OAuth、token refresh 之类的字样。
原因:Codex 尝试走它自己的登录流程,而不是用 auth.json 里的 Key。
处理:确认 auth.json 里的字段名是 OPENAI_API_KEY 和 OPENAI_BASE_URL,有些版本对字段名敏感。如果 Codex 仍然走 OAuth,检查是不是有环境变量覆盖了配置,比如系统里设了 OPENAI_API_KEY 但值是旧的。清掉环境变量再试。
报错五:二维码过期
现象:扫码时提示二维码已过期。
原因:二维码有效期短,生成后没及时扫。
处理:让 Codex 重新生成一张,马上扫。这个不算故障,是正常机制。
排查的时候有个通用思路:先分层,再定位。链路是「微信 → 桥接服务 → Codex → 模型通道」,哪一层断了就在哪一层查。微信收不到回执,问题在桥接服务;收到回执没结果,问题在 Codex 或模型通道;有结果但内容不对,问题在模型 ID 或提示词。按这个顺序查,比盲目改配置快得多。
如果你在排查过程中需要重新生成 Key 或查看模型列表,入口分别是 API Keys 页面 https://taotoken.net/console/api-keys 和接入文档 https://taotoken.net/doc ,文档里有各工具的配置示例,对照着改比自己猜快。
6. 长期使用建议与入口选择
跑通之后,怎么用得舒服是另一回事。我用了这段时间,有几个实际体会。
第一,电脑保持在线是硬要求。这个桥接不是云服务,CodexBridge 跑在你本机上,所以电脑关机、睡眠、断网,微信就收不到回复。如果打算长期使用,建议关闭自动睡眠,并用 Windows 计划任务保持服务常驻。笔记本的话,插电状态下设置「接通电源时不睡眠」就行。
第二,权限边界要守住。微信消息最后会变成 Codex 在你电脑上的任务,所以不要随便开放给别人用。建议只处理私聊,群聊默认关闭,或者只允许指定用户。这一点不是技术问题,是使用习惯问题,但很重要。
第三,任务描述尽量具体。微信端适合派「明确的小活」,比如「改这个文件的这个函数」「整理这段改动成提交说明」。太模糊的指令,Codex 在电脑端都要来回确认,在微信端就更低效。我的经验是:微信端派活,电脑端收尾,两者配合最顺。
第四,模型通道选稳定的。因为所有任务都走这一条通道,通道抖一下,你所有远程任务都受影响。TaoToken 的统一 Key 在这里的价值是「一次配好,多处复用」,Codex、桥接、其他工具共用一套,省得每个工具单独维护 Key。如果你只是偶尔用,模型对话页面 https://taotoken.net/models 先试跑确认模型可用就够了;如果每天都跑不少任务,Coding Plan 更划算,路径在 https://taotoken.net/coding-plan 。
最后回到标题那个场景。它不是为了替代 Codex App,而是给 Codex 多开了一个入口。电脑端适合认真操作,微信端适合随手派活。真正好用的状态是:你在任何地方想到一个改动点,发出去,本机 Codex 接着干,你该干嘛干嘛。等回到电脑前,结果已经在了。这种「把碎片时间接进工作流」的感觉,比单纯省几步操作有价值得多。