DeepSeek Harness Hub
← 返回列表

Codex 对话套件DamonBao/dsh-codex-suite

DeepSeek Harnessspec-screened在 GitHub 查看 ↗
需源码安装

接入 ChatGPT 账号,在网页端畅聊 Codex 模型

暂不能直接安装(需源码编译或环境不满足):缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。 · 最近上游提交 2026/9/14 · 已提供中文文档

为DeepSeek Harness提供的OpenAI Codex提供商,支持ChatGPT OAuth、原生设置和账户用量。

综合分
36.4
GitHub 分
36.4
用户评分
★ Stars
5
周下载量
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add DamonBao/dsh-codex-suite
缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装,改用 GitHub 源安装
数据截至 2026/9/16(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
安装兼容性检查需源码安装

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

npm 包dsh-codex-suite-workspace(未发布到 npm,仅可源码安装)
Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
dsh CLI 依赖未声明 dsh 版本约束
入口文件缺少入口声明

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

验证方式:npm registry 存在性 + package.json 静态校验 · 最后验证 2026/9/17 18:24:11

用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

DSH Codex Suite

CI
License: MIT
Node
pnpm

为 DeepSeek Harness(DSH)打造的插件套件:把 ChatGPT / OpenAI Codex 模型和 Codex 风格的对话体验带进 DSH Web UI。基于 DSH 0.1.5-alpha.1 构建(peer 范围 >=0.1.5-alpha.1 =0.1.5-alpha.1 =24、pnpm 11。

安装整套 Suite(推荐):

dsh plugin --profile web add @jcy2387/dsh-suite
dsh web

或单独安装插件:

dsh plugin --profile web add @jcy2387/dsh-codex-provider
dsh plugin --profile web add @jcy2387/dsh-conversation-ui
dsh web

本地开发 —— 用工作区内的包替代发布版:

dsh plugin --profile web add link:$PWD/packages/codex-provider
dsh plugin --profile web add link:$PWD/packages/conversation-ui
dsh web

在同一个 profile 里,整套 Suite 和单独插件二选一安装,不要让同一插件的两份来源共存。共存不会崩溃(Suite 通过嵌套加载组挂载插件,避免了重复 loader entry id),但直接安装的行与 Suite 的子行会共享同一个加载条目:在运行中的 dsh 进程里移除任意一侧,对应插件会静默停止,直到下次重启才恢复。变更 bundle 列表后请重启 dsh。

快速开始

1. 安装套件(见上)并打开 Web UI(dsh web)。
2. 进入 设置 → OpenAI Codex,点击连接,选择浏览器登录(无头/远程机器可用设备码登录),完成 ChatGPT 授权。
3. 回到对话,在模型选择器中挑选 openai-codex 模型即可开聊。
4. 可选:在同一设置页查看用量面板,并在 设置 → 插件 → 插件配置 中调节对话流参数。

配置

两个插件都通过 profile 的 cordis.patch.yml overlay 配置;用户级偏好保存在设置界面并跨重启持久化。

Codex Provider(profile patch ID:codex-provider)

| 选项 | 取值 | 默认 | 说明 |
| --- | --- | --- | --- |
| transport | sse \| websocket \| websocket-cached \| auto | sse | SSE 可避免流后期失败时部分输出被重复。 |
| streamIdleTimeoutMs | 正整数 | 300000 | 读取单个响应流的最大空闲间隔。 |
| timeoutMs / websocketConnectTimeoutMs | 正整数 | — | 可选的请求级超时。 |
| retryPolicy | 重试策略对象 | 内置 | 请求重试行为。 |
| credentialRef | 凭据引用 | OPENAI_CODEX_OAUTH | 保存 OAuth 状态的 Harness 凭据槽。 |
| ipv6CallbackBridge | 布尔 | true | 为 IPv6 主机转发 OAuth 回环回调。 |
| proactiveRefresh | 布尔 | true | 在过期前主动刷新令牌。 |
| proxyMode | auto \| environment \| off | auto | 重启后生效;也可在设置页修改。 |

Conversation UI(profile patch ID:conversation-ui)

| 选项 | 取值 | 默认 | 说明 |
| --- | --- | --- | --- |
| mode | teleprompter \| typewriter | teleprompter | 助手内容的揭示风格。 |
| preset | realtime \| balanced \| silky | balanced | 平滑节奏档位。 |
| revealCharsPerSec | 5–200 | 80 | 打字机揭示速度。 |
| scrollSpeedPxPerSec | 1–200 | 48 | 已弃用的兼容字段;滚动由 DSH 管理。 |
| maxScrollSpeedPxPerSec | 1–2000 | 1000 | 已弃用的兼容字段;滚动由 DSH 管理。 |

若想临时禁用 Conversation UI 而不卸载,应用包内自带的 conversation-ui-off.yml overlay:

- id: conversation-ui
disabled: true

设置入口

| 位置 | 可控内容 |
| --- | --- |
| 设置 → OpenAI Codex | 连接/断开账号、登录方式、用量面板、重置次数查看与兑换、代理模式。 |
| 设置 → 插件 → 插件配置 | 自动展开思考(实时生效)、插件版本、npm 安装一键更新。 |

架构

每个运行时插件都由两半组成:

- Host 半(Node)—— Cordis 插件:Provider 注册、OAuth 生命周期、网络与设置持久化,从包根加载。
- Web 半(浏览器)—— 通过 dsh.client manifest 发现的 React 视图。Codex Provider 提供设置分区;Conversation UI 替换助手节点视图并包装工具行。

两半之间只通过两条窄通道通信:注入到 HTML 的启动配置全局变量(window.__DSH_CONVERSATION_UI_CONFIG__)把校验后的插件配置带给浏览器;经鉴权的 Connection RPC 把设置读写带回 Host。机密信息(令牌、代理地址)绝不跨越 RPC 边界。

各包详细文档:codex-provider · conversation-ui · suite

开发

要求:Node.js ^22.19.0 || >=24.0.0,pnpm 11.7。

pnpm install
pnpm run check        # typecheck + test + build + pack dry-run,与 CI 一致

单包命令:

pnpm --filter @jcy2387/dsh-codex-provider check      # typecheck + test + build + publint
pnpm --filter @jcy2387/dsh-conversation-ui typecheck
pnpm --filter @jcy2387/dsh-conversation-ui test
pnpm --filter @jcy2387/dsh-conversation-ui build
pnpm --dir packages/all pack --dry-run

测试基于 vitest,共 15 个套件,覆盖 OAuth 状态机、令牌刷新、网络/代理探测、用量与重置次数解析、设置控制器和流式客户端视图。客户端测试直接解析已安装的 DSH 发布包(用一个小型 module-table 替身实例化其浏览器 factory bundle)。CI 会校验发布 tag 与三个包版本一致、审计发布 tarball 的内容,并跑一个消费方冒烟测试:把打包出的 tarball 装进一个全新工程(用真实 registry 解析已发布的 peer 依赖区间),再导入全部 Node 侧入口。

发布

发布由 Release 工作流(.github/workflows/release.yml)自动完成:只要发布一个 GitHub Release 就会触发。它要求 release tag 与三个包的共同版本一致(允许可选的 v 前缀),重跑全部质量门禁,打包三个 tarball,校验 suite 组合包不再携带 workspace: 区间,然后按依赖顺序(provider → conversation-ui → suite)发布到 npm,自带 provenance 溯源,采用 OIDC Trusted Publishing 认证 —— 不需要任何长期有效的 NPM_TOKEN secret。

一次性配置:在 npmjs.com 上为 @jcy2387/dsh-codex-provider、@jcy2387/dsh-conversation-ui、@jcy2387/dsh-suite 分别配置 Trusted Publishing,授权仓库 DamonBao/dsh-codex-suite、工作流 release.yml(environment 留空)。

dist-tag 跟随 GitHub Release 的 pre-release 勾选:正式 Release(不勾 pre-release)一律发 latest(包括 rc 版本);勾了 pre-release 则按版本通道打 tag(0.1.2-alpha.4 → alpha,0.1.2-rc.1 → rc)。工作流具备幂等性 —— 某个包的版本若已存在于 npm 则跳过,因此部分失败后重跑只会补发缺失的包。

一次典型的发布:

先在三个 packages/*/package.json 里统一升版本号,然后:
pnpm run check
VERSION="$(node -p "require('./packages/codex-provider/package.json').version")"
git commit -am "release: $VERSION"
git tag "$VERSION"
git push origin main --tags

随后为该 tag 创建并发布一个 GitHub Release 即可。Dependabot 每周检查 GitHub Actions 依赖。刻意未启用 Dependabot 的 npm 依赖更新:它重新生成 pnpm-lock.yaml 时不带 workspace overrides,PR 无法通过 pnpm install --frozen-lockfile —— 依赖升级请用 pnpm update 手动处理。

仓库结构

.
├─ packages/
│  ├─ codex-provider/     # @jcy2387/dsh-codex-provider
│  │  ├─ src/             # Host 半:OAuth、刷新、网络、用量、重置次数、LLM 适配器
│  │  ├─ src/client/      # Web 半:设置分区 UI
│  │  ├─ tests/           # 12 个 vitest 套件
│  │  └─ cordis.patch.yml
│  ├─ conversation-ui/    # @jcy2387/dsh-conversation-ui
│  │  ├─ src/             # Host 半:配置桥、设置 RPC
│  │  ├─ src/client/      # Web 半:流式视图、卡片、原生滚动桥接
│  │  ├─ tests/           # 3 个 vitest 套件
│  │  └─ cordis.patch.yml
│  └─ all/                # @jcy2387/dsh-suite(纯组合包,无运行时代码)
├─ .github/workflows/ci.yml       # 校验 + tarball 审计 + 消费方冒烟
├─ .github/workflows/release.yml  # GitHub Release 触发 npm 发布
├─ pnpm-workspace.yaml
└─ README.md / README.zh.md

故障排查

- 浏览器登录迟迟不完成 —— 回调桥监听 127.0.0.1:1455;请确认端口空闲且浏览器可达回环地址。设置页会给出具体失败类别(端口冲突、超时、state 不匹配……)。
- 区域不受支持 —— OpenAI 拒绝受限区域登录;设置页会以独立原因提示。可通过代理模式(proxyMode)改变出口线路(需重启生效)。
- 一段时间后提示「需要重新连接」 —— 刷新令牌已过期或被吊销(如改密)。在设置页重新连接一次即可。

许可证

MIT © jcy2387

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入 DPharness 群聊

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

点击加入 QQ 群
DPharness 群聊二维码,手机 QQ 扫码进群
扫码进群