pwrdrvr/openclaw-codex-app-server
一个通过 Codex App Server 协议,把 Codex 接到 Telegram 和 Discord 的 OpenClaw 插件。· GitHub
这个项目没有产品名,它只是一个 OpenClaw 插件,负责把 OpenClaw 连接到 Codex App Server 协议,这样你就能通过 Telegram 和 Discord 对话,和自己在 Codex Desktop、Codex TUI 里的现有线程互动。
这里提到 Codex,只是为了描述这个插件连接的协议和工具链。这个仓库是独立项目,不是官方项目,也没有得到 OpenAI 或 Codex 的提供、赞助、背书或关联。
如果 Codex 已经能在运行 OpenClaw 的那台机器上工作,这个插件也应该能工作。它使用同样的本地 Codex CLI 和共享登录状态,正常使用时不需要额外的插件登录。
-
把插件安装到 OpenClaw 里。
-
在你想绑定桥接的 Telegram 或 Discord 对话中开始。
-
运行 /cas_resume。
-
选择最近的线程,点 New 新建一个,或者直接搜索。
-
绑定完成后,这个对话里的普通文本会路由到选中的 Codex 线程。
界面会提供项目和线程选择、模型切换,以及技能快捷入口。如果筛选条件有歧义,插件会给出选择器,而不是瞎猜。
以下是面向 OpenClaw 2026.3.22 及更新版本的推荐安装命令,这些版本包含此包所需的绑定和插件接口。
安装:
openclaw plugins install openclaw-codex-app-server
卸载:
openclaw plugins uninstall openclaw-codex-app-server
OpenClaw 2026.3.22 及更新版本已经包含所需的绑定和插件接口变更。如果你在这个版本发布前测试,请使用本文档底部的本地开发流程。
预发布包会发布到对应的 npm dist-tag,而不是 latest。比如 v0.3.0-beta.1 这种标签会发布到 openclaw-codex-app-server@beta,所以 npm install openclaw-codex-app-server@latest 仍然会保持在最新稳定版。
-
使用你现有的本地 Codex CLI 配置,而不是单独托管的桥接服务。
-
在聊天里很自然,绑定一次 /cas_resume,之后直接说话就行。
-
/cas_status、/cas_plan、/cas_review 等常用控制项都放得很近。
-
适合你想绑定到真实 Codex 线程的 Telegram 和 Discord 对话。
-
在你想绑定的对话里运行 /cas_resume。
-
使用选择器按钮、点击 New,或者传入类似 /cas_resume release-fix、/cas_resume --projects、/cas_resume --new openclaw 这样的筛选条件。
-
绑定时也可以顺手设置模型、快速模式或权限,例如 /cas_resume --model gpt-5.4 --fast --yolo。
-
线程绑定后,正常发送聊天消息即可。
-
用 /cas_status 直接查看或调整当前绑定,包括模型、推理、快速模式、权限、压缩和停止控制。
-
如果你通过正常的 Implement this plan 按钮离开 plan 模式,就不需要 /cas_plan off。只有你想手动退出规划时,才用 /cas_plan off。
| 命令 | 作用 | 说明 / 示例 |
|---|---|---|
| /cas_resume | 把当前对话绑定到一个 Codex 线程。 | 不带参数时,会打开当前工作区最近线程的选择器,并带一个 New 按钮。 |
| /cas_resume --projects | 先浏览项目。 | 先打开项目选择器,再打开线程选择器。 |
| /cas_resume --new | 在某个项目里新建一个 Codex 线程。 | 打开项目选择器,而不是线程选择器。 |
| /cas_resume --new openclaw | 直接在匹配的项目里新建一个 Codex 线程。 | 如果匹配到多个工作区,会给你按钮选择。 |
| /cas_resume --all | 跨项目搜索最近线程。 | 当线程不在当前工作区时很有用。 |
| /cas_resume --cwd ~/github/openclaw | 把浏览和搜索限制在一个工作区里。 | --cwd 可以接受绝对路径或 ~/... 。 |
| /cas_resume --sync | 恢复绑定,并尝试把聊天或话题名称同步到 Codex 线程。 | 可以和其他参数一起用。 |
| /cas_resume --model gpt-5.4 | 以首选模型恢复或创建线程。 | 这个偏好会保存在绑定上,后续轮次复用。 |
| /cas_resume --fast, /cas_resume --no-fast | 在绑定或创建线程时设置快速模式。 | 快速模式只在受支持的模型上可用,比如 GPT-5.4+。 |
| /cas_resume --yolo, /cas_resume --no-yolo | 在绑定或创建线程时设置权限模式。 | --yolo 代表 Full Access。 |
| /cas_resume release-fix | 按标题或 id 恢复匹配的线程。 | 如果匹配到多个线程,会提供按钮供你选择。 |
| /cas_status | 显示当前绑定、线程状态和交互控制。 | 包含模型、推理、快速模式、权限以及停止按钮。 |
| /cas_status --model gpt-5.4 | 修改首选模型并刷新状态卡。 | 对当前绑定生效。 |
| /cas_status --fast, /cas_status --no-fast | 修改快速模式并刷新状态卡。 | 快速模式只在受支持的模型上可用,比如 GPT-5.4+。 |
| /cas_status --yolo, /cas_status --no-yolo | 修改权限模式并刷新状态卡。 | --yolo 代表 Full Access。 |
| /cas_detach | 解除当前对话与 Codex 的绑定。 | 停止把这个对话里的纯文本路由到绑定线程。 |
| /cas_stop | 中断当前正在运行的 Codex 任务。 | 只在当前轮次还在进行时有效。 |
| /cas_steer |
向正在运行的任务发送后续 steering 文本。 | 示例:/cas_steer 先专注修失败的测试 |
| /cas_plan |
让 Codex 先规划,而不是直接执行。 | 插件会把规划问题和最终计划回传到聊天里。 |
| /cas_plan off | 退出这个对话的 plan 模式。 | 当你想手动退出规划,而不是通过正常的 Implement this plan 按钮退出时使用。 |
| /cas_review | 审查绑定工作区里当前未提交的改动。 | 需要已经存在绑定。 |
| /cas_review |
带自定义指令进行审查。 | 示例:/cas_review focus on thread selection regressions |
| /cas_compact | 压缩绑定的 Codex 线程。 | 插件会发进度和最终上下文占用情况。 |
| /cas_skills | 列出当前工作区可用的 Codex 技能。 | 最多会添加 8 个技能快捷按钮。 |
| /cas_skills review | 过滤技能列表。 | 可按技能名、描述或 cwd 匹配。 |
| /cas_experimental | 列出 Codex 报告的实验性功能。 | 只读。 |
| /cas_mcp | 列出已配置的 MCP 服务器。 | 显示认证状态,以及工具、资源、模板的数量。 |
| /cas_mcp github | 过滤 MCP 服务器。 | 按名称和认证状态匹配。 |
| /cas_fast | 切换绑定线程的快速模式。 | 这是 /cas_status 上同一项控制的便捷命令。 |
| /cas_fast on, /cas_fast off, /cas_fast status | 显式设置或查看快速模式。 | 示例:/cas_fast status |
| /cas_model | 在对话已绑定时列出模型并显示模型选择按钮。 | 如果没有绑定,只会列出模型。 |
| /cas_model gpt-5.4 | 为绑定线程设置模型。 | 同时也会更新保存的首选模型,供后续轮次使用。 |
| /cas_permissions | 显示账户、速率限制和当前权限状态。 | 要修改权限,请用 /cas_status --yolo 或状态卡。 |
| /cas_init ... | 把 /init 转发给 Codex。 | 直接把这个别名透传给 App Server。 |
| /cas_diff ... | 把 /diff 转发给 Codex。 | 直接把这个别名透传给 App Server。 |
| /cas_rename |
重命名已绑定的 Codex 线程。 | 示例:/cas_rename approval flow cleanup |
| /cas_rename --sync |
重命名线程,并尝试同步对话或话题名称。 | 需要已经存在绑定。 |
| /cas_rename --sync | 显示推荐命名风格,并把选中的名字同步到对话。 | 当你想用自动生成的线程或项目命名,又懒得手打时很有用。 |
The status card is the main control surface once a conversation is bound. It shows the current binding state and provides buttons for:
- model selection
- reasoning selection
- fast mode toggle when the current model supports it
- permissions toggle between Default and Full Access
- compaction
- stopping the active run
The plugin schema in openclaw.plugin.json supports:
- transport: stdio or websocket
- command and args: the Codex executable and CLI args for stdio
- url, authToken, headers: connection settings for websocket
- defaultWorkspaceDir: fallback workspace for unbound actions
- defaultModel: model used when a new thread starts without an explicit selection
- defaultServiceTier: default service tier for new turns
Use this path when you are testing a local checkout of this repository against a local OpenClaw build before the required plugin interface is available in a released OpenClaw version.
This plugin originally targeted openclaw/openclaw#45318. Use that branch if it is still unmerged, or use main once the change has landed there.
git clone https://github.com/openclaw/openclaw.git
cd openclaw
gh pr checkout 45318
pnpm install
If you are not using gh, fetch the PR directly:
git fetch origin pull/45318/head:pr-45318
git checkout pr-45318
pnpm install
From the OpenClaw repository:
pnpm openclaw plugins install --link "/absolute/path/to/openclaw-codex-app-server"
Remove the linked local checkout:
pnpm openclaw plugins uninstall openclaw-codex-app-server
From the OpenClaw checkout:
pnpm gateway:watch
This repository no longer commits a machine-local openclaw dev dependency, so CI stays portable. If you want this plugin checkout to resolve openclaw from your own local OpenClaw source tree, add a local-only override in your working copy:
pnpm add -D openclaw@file:/absolute/path/to/openclaw
pnpm install
That override is for local development only. Do not commit the resulting package.json or pnpm-lock.yaml changes.
pnpm test
pnpm typecheck