本文介绍Codex++工具,解决API Key用户无法使用Codex插件的问题,并支持会话删除、Markdown导出等增强功能。
API Key用户的痛点
Codex Chrome Extension推出后,使用API Key登录的用户发现插件入口被锁定,提示需要登录ChatGPT账号。对于使用第三方API Key的用户来说,插件功能完全无法使用。

尝试通过修改Codex安装文件来绕过限制,但涉及资源校验、签名、拦截等问题,实现难度较大。
Codex++是什么
Codex++是一个外部增强启动器,不修改Codex的任何原始文件。通过外部launcher启动Codex的同时,将增强功能直接注入进去。
GitHub:https://github.com/BigPizzaV3/CodexPlusPlus
安装后,左侧出现"插件-已解锁",Codex顶部也注入了一个"Codex++"配置面板按钮。

支持的功能
- 插件选项解锁:API Key模式下正常使用插件
- 特殊插件强制安装:解除前端"App unavailable"限制
- 会话删除:悬停显示删除按钮,支持撤销(Codex原生没有)
- Markdown导出:导出带时间戳的对话记录
- 会话项目移动:把对话移到其他项目


安装步骤
前提:Python 3.11+,已安装Codex App。
先克隆仓库并安装依赖:
git clone https://github.com/BigPizzaV3/CodexPlusPlus.git
cd CodexPlusPlus
python -m pip install -e .
macOS
python -m codex_session_delete setup
执行后自动生成/Applications/Codex++.app,以后从这个app启动(启动台),不要再开原版Codex。
卸载:
python -m codex_session_delete remove
Windows
双击项目目录里的setup.bat,按菜单选Install,桌面生成Codex++.lnk快捷方式。

或命令行:
python -m codex_session_delete setup
注意:必须从Codex++快捷方式启动。直接开原版Codex,注入不会生效。
工作原理
Codex的桌面App底层使用Electron框架,界面本质上是一个跑在壳子里的网页。类似VS Code、Slack、Notion等软件。
因为内核是浏览器,Chrome官方有一套专门给开发者调试网页用的协议,叫CDP(Chrome DevTools Protocol)。它允许外部工具连进浏览器,检查代码、修改页面、注入脚本。
验证脚本
通过以下步骤验证CDP注入的可行性:
第一步:用调试模式启动Codex
/Applications/Codex.app/Contents/MacOS/Codex \\
--remote-debugging-port=9229 \\
--remote-allow-origins=http://127.0.0.1:9229 \\
> /tmp/codex-debug.log 2>&1 &
Codex启动后,本地9229端口可以接受外部连接。
第二步:用Python连接并注入JavaScript
import json
import urllib.request
import websocket
print("正在连接 CDP...")
targets = json.loads(urllib.request.urlopen('http://127.0.0.1:9229/json').read())
page = [t for t in targets if t['type'] == 'page'][0]
print(f"找到页面: {page['title']}")
ws = websocket.create_connection(page['webSocketDebuggerUrl'], timeout=10)
print("WebSocket 已连接")
print("正在注入代码...")
script = """
(function() {
const box = document.createElement('div');
box.innerHTML = '成功!这是你注入的代码!';
box.style.cssText = `
position: fixed; top: 50%; left: 50%;
transform: translate(-50%, -50%);
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: white; padding: 30px; border-radius: 15px;
font-size: 20px; font-weight: bold;
box-shadow: 0 20px 60px rgba(0,0,0,0.4); z-index: 999;
`;
document.body.appendChild(box);
setTimeout(() => box.remove(), 5000);
return '注入成功!';
})();
"""
payload = {
"id": 1,
"method": "Runtime.evaluate",
"params": {
"expression": script,
"returnByValue": True,
"allowUnsafeEvalBlockedByCSP": True
}
}
ws.send(json.dumps(payload))
response = json.loads(ws.recv())
print(f"注入结果: {response['result']['result']['value']}")
ws.close()

脚本运行后,Codex窗口中央弹出注入的通知框,证明外部程序确实可以直接控制Codex的前端页面。

Codex++的实现方式
Codex++本质上不是"修改Codex",而是在运行中的Codex页面里,动态注入一层新能力。类似于在浏览器中按F12打开控制台、手动粘贴一段JS。Codex++把这件事自动化了,每次启动Codex时自动执行。
意义与展望
这件事真正有意思的地方,不是插件解锁本身,而是:
Codex发布没多久,社区已经开始给它做运行时增强层了。不改文件,不破解,用官方协议。
这很像当年的浏览器插件生态。只是这一次,被"增强"的对象,变成了AI客户端。AI IDE的下一阶段,可能不只是模型竞争,而是谁先形成真正的增强生态。