DeepSeek Harness 插件

dsh-codex-provider-plugin

OpenAI Codex OAuth provider and native settings UI for DeepSeek Harness(英文原文)

跳到安装方式

来源信息

GitHub 仓库
DamonBao/dsh-codex-provider-plugin
最近更新
2026年8月21日
分类
模型与服务商
GitHub stars
3
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/DamonBao/dsh-codex-provider-plugin
插件名:dsh-codex-provider-plugin
作者:DamonBao

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

DSH Codex Suite

![CI](https://github.com/DamonBao/dsh-codex-suite/actions/workflows/ci.yml) ![License: MIT](LICENSE) ![Node](#开发) ![pnpm](#开发)

English | 简体中文

DeepSeek Harness(DSH)打造的插件套件:把 ChatGPT / OpenAI Codex 模型Codex 风格的对话体验带进 DSH Web UI。

本仓库是 pnpm monorepo,包含两个相互独立的运行时插件和一个纯组合包:

类型功能
[@jcy2387/dsh-codex-provider](packages/codex-provider)运行时插件注册 openai-codex Provider:ChatGPT OAuth 登录、主动令牌刷新、用量面板、代理感知网络和原生设置页。
[@jcy2387/dsh-conversation-ui](packages/conversation-ui)运行时插件将 Web 对话重绘为 Codex 风格事件流:Turn 折叠、语义化 Tool 活动、流式揭示、产物卡片和平滑视口跟随。
[@jcy2387/dsh-suite](packages/all)纯组合包不含运行时代码,仅通过一个 profile patch 一次装齐两个插件。

两个插件完全解耦:Conversation UI 可服务任意模型,Codex Provider 也可搭配原生对话界面使用。

---

为什么需要这套件

Codex Provider —— 无需 API Key 的可靠 ChatGPT 接入

  • 双流程 ChatGPT OAuth。 浏览器登录 + 设备码兜底。登录失败会被归类为无敏感信息的本地化原因(区域受限、回调端口冲突、令牌交换错误、网络问题……),而不是裸报错堆栈。
  • IPv6 回环回调桥。 pi-ai 的 OAuth 监听只绑 IPv4;在 IPv6 优先的主机上,套件会透明转发回环回调,登录依然可用。
  • 主动令牌刷新。 访问令牌在过期前约 5 分钟轮换,失败按退避重试;刷新令牌失效会被精确识别并提示「需要重新连接」,而不是在流式中途崩掉。
  • 用量面板。 从 ChatGPT 账号级接口获取套餐类型、Credits、主/次限额窗口的用量百分比条和重置时间。
  • 代理感知网络。 自动探测环境变量与系统代理(macOS / Windows / Linux),仅让 OpenAI 流量走代理、回环保持直连,并提供显式代理模式(auto / environment / off)。
  • 可靠性优先的默认值。 默认 SSE 传输(避免 WebSocket 后期失败导致部分输出重复)、5 分钟流空闲超时、可配置重试策略。
  • 原生设置页 位于 *设置 → OpenAI Codex*,中英文界面、实时状态,RPC 仅限 loopback 权限——凭据绝不离开 Host。

Conversation UI —— 像 Codex CLI 一样渲染对话

  • 单一有序事件流。 过程答复、思考、工具调用、重试、工作流、压缩和命令按自然顺序在各自 Turn 内呈现。
  • Turn 折叠。 Turn 开始即显示计时与思考占位;最终答复落地后过程区自动折叠(可展开,并提供持久化的「自动展开思考」偏好)。
  • 语义化工具图标。 搜索、文件读写、Shell、数据库、网页、技能、Agent 等工具各有专属图标,活动一眼可扫。
  • 两种揭示模式。 teleprompter(默认):即时快照向上平滑滑动;typewriter:按字素渐进揭示。三档平滑预设(realtime / balanced / silky)调节节奏。
  • 智能视口跟随。 新内容在限速范围内平滑跟随;用户上滑阅读即释放跟随,回到底部自动恢复。尊重 prefers-reduced-motion,低帧率下优雅降级。
  • 产物卡片。 每个完成的 Turn 列出生成的文件与站点,并附带增删行数。

---

安装

前置条件:装有 web profile 的 DeepSeek Harness(dsh)、Node.js ^22.19 || >=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 | 视口跟随最低速度。 | | maxScrollSpeedPxPerSec | 1–2000 | 1000 | 跟随速度上限;防止大滞后后瞬移。 |

若想临时禁用 Conversation UI 而不卸载,应用包内自带的 [conversation-ui-off.yml](packages/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__)把校验后的插件配置带给浏览器;loopback 权限 RPC 把设置读写带回 Host。机密信息(令牌、代理地址)绝不跨越 RPC 边界。

各包详细文档:[codex-provider](packages/codex-provider/README.zh.md) · [conversation-ui](packages/conversation-ui/README.md) · [suite](packages/all/README.md)

开发

要求: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,共 13 个套件,覆盖 OAuth 状态机、令牌刷新、网络/代理探测、用量解析、设置控制器和流式客户端视图。CI 还会在固定版本上检出 DSH 源码树供测试解析,校验发布 tag 与三个包版本一致,并审计发布 tarball 的内容。

仓库结构

.
├─ packages/
│  ├─ codex-provider/     # @jcy2387/dsh-codex-provider
│  │  ├─ src/             # Host 半:OAuth、刷新、网络、用量、LLM 适配器
│  │  ├─ src/client/      # Web 半:设置分区 UI
│  │  ├─ tests/           # 10 个 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
├─ pnpm-workspace.yaml
└─ README.md / README.zh.md

故障排查

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

许可证

[MIT](LICENSE) © jcy2387