dsh-codex-subscription
Verified@lyogvce/dsh-codex-subscription · v0.2.11 · MIT · Web UI
复用本机 ~/.codex 订阅凭证与 models_cache.json 模型缓存,在 DSH 中通过 SSE 直连调用 Codex 模型。
Install
dsh plugin add @lyogvce/dsh-codex-subscription Confirm the layer applied with dsh --profile default --dump-config — see the install guide.
Source
Published to npm without a public repository. Inspect the package contents before installing.
Tags
Readme
dsh-codex-subscription
为 DeepSeek Harness 桌面版(DSH Desktop 0.2.1+)提供极简、零后台进程的 Codex 订阅直连能力。自用。
直接读取本机 ~/.codex/auth.json 与 ~/.codex/models_cache.json,在进程内通过 SSE 直连调用 ChatGPT Codex 订阅模型,彻底替代外部网关进程(如 Magpie)。
核心特性
- 与本机 Codex CLI / Desktop 100% 共享登录态
- 直接读取
$CODEX_HOME/auth.json(默认~/.codex/auth.json)。 - 每次请求前检查
access_token的 JWTexp:距离过期不足 5 分钟时自动通过单飞锁(Single-flight)向https://auth.openai.com/oauth/token刷新,并通过realpathSync+ 临时文件rename原子写回auth.json,保证与 Codex CLI 永不互踢下线。
- 直接读取
- 零网络轮询的本地模型目录发现、防降级保护与可观测性日志
- 直接读取
~/.codex/models_cache.json(每次按文件mtime与大小做微秒级stat校验,仅在文件变化时重读解析),提取visibility === "list"的模型及其context_window、supported_reasoning_levels(自动将ultra映射为 DSH 的max档位)与default_verbosity。 - 防旧版客户端降级污染:自动将高版本
models_cache.json备份至~/.codex/cache/dsh-codex-subscription/models-cache-backup.json;当外部旧版进程(如dsh-subagent-codex内置的0.153.4)将models_cache.json降级覆写为不含新模型的旧缓存时,自动拦截降级并保留高版本模型目录。 - 可观测性日志:自动在
~/.codex/cache/dsh-codex-subscription/plugin.log(带 512KB 自动滚动截断,忽略纯fetched_at心跳刷新)记录目录加载(catalog.load/catalog.snapshot)、降级拦截(catalog.downgrade_rejected)、备份恢复(catalog.backup_restored)与凭证续期(auth.refreshed/auth.refresh_failed)事件。
- 直接读取
- 支持按配置屏蔽模型(
disabledModels)、自定义上下文窗口(contextWindows)与原生重试策略(retryPolicy)- 在插件配置中通过
disabledModels屏蔽指定模型slug,保持模型选择器干净清爽。 - 通过
contextWindows按模型slug自定义向 DSH 会话与自动压缩器暴露的预算窗口(例如设为400000);未配置时默认使用模型物理上限max_context_window(872000)。同时底层PiCodexModel.contextWindow始终保持物理上限872000,彻底防止dsh-llm-pi-ai在预算窗口与物理上限之间误判CONTEXT_WINDOW_EXCEEDED。 - 通过
retryPolicy暴露 DSH 原生RetryPolicySchema(支持normal/always模式、maxRetries、retryableCodes与backoff,并随registration.replace热更新生效)。未配置时保持宿主默认策略(mode: "normal"、maxRetries: 5、默认 5 类错误码EMPTY_RESPONSE / RATE_LIMIT / SERVER / TIMEOUT / TRANSPORT及500ms..10000ms退避)。注意:retryableCodes为完整覆盖集合而非追加列表,显式配置时需同时列出默认错误码与新增错误码。
- 在插件配置中通过
- 原生多轮思考链回放与工具调用
- 底层复用 DSH 内置的
PiAiAdapter与@earendil-works/pi-ai的openaiCodexProvider(),固定使用sse传输(含zstd请求体压缩、规范化纯 UUIDsession-id/x-client-request-id缓存头、reasoning.encrypted_content签名回放与图片自动缩放卸载)。
- 底层复用 DSH 内置的
- Codex 订阅限额内联展示与 ⚡ Fast 极速模式一键切换(
conversation.input.right)- 当会话选中
openai-codex模型时,在输入框右下角紧邻模型选择器左侧展示限额胶囊(根据wham/usage返回的limit_window_seconds自适应展示 Plus 的5h X% · 7d Y%双窗口或 Pro 的7d X%单窗口,内置 60 秒缓存、单飞合并与每轮回复结束自动刷新),点击可展开查看对应窗口进度条、重置倒计时与手动刷新按钮;切换至其他 Provider 模型时自动隐藏。 - ⚡ 会话树级 Fast 极速模式(
service_tier: "priority",最高 2x 推理速度,主会话与 Subagent / 智能体团队同开同关):每个主会话可在限额弹窗底部独立开关 Fast 模式(不同主会话互不影响,新会话默认继承插件设置中的fastMode,未配置时默认false关闭),该主会话派生的所有subagent、subagent_fork、workflow子任务以及智能体团队成员(spawn_teammate)均自动绑定至同一主会话开关,实时联动、同开同关;状态自动持久化至~/.codex/cache/dsh-codex-subscription/runtime-state.json。开启后胶囊显示闪电标识⚡,并在请求体中自动注入"service_tier": "priority"。
- 当会话选中
安装与配置
1. 安装到本地 Profile
在 DSH 中通过插件管理器安装本地目录 /Users/lijiechengbj/projects/AI-agents/dsh-codex-subscription,或执行:
dsh plugin --profile desktop add @lyogvce/dsh-codex-subscription
2. 配置屏蔽模型(disabledModels)、上下文窗口(contextWindows)与重试策略(retryPolicy)
默认配置(见 cordis.patch.yml)已屏蔽旧模型与备用模型,仅保留主力模型(如 gpt-6.1-sol、gpt-6-astra)。未配置 contextWindows 时,模型默认使用 872000 上下文窗口;未配置 retryPolicy 时默认使用宿主 normal 重试策略(最多额外重试 5 次,覆盖 EMPTY_RESPONSE、RATE_LIMIT、SERVER、TIMEOUT、TRANSPORT)。
若希望自定义上下文预算窗口或扩展可重试错误码白名单(注意:retryableCodes 是完整集合而非追加列表,显式填写时需同时保留默认 5 类错误码),可在 Profile 的 cordis.patch.yml 中配置:
- id: codex-subscription
name: "@lyogvce/dsh-codex-subscription"
config:
disabledModels:
- gpt-6-sol
- gpt-6-luna
- gpt-5.6-sol
- gpt-5.6-terra
- gpt-5.6-luna
contextWindows:
gpt-6.1-sol: 400000
gpt-6-astra: 400000
retryPolicy:
mode: normal
maxRetries: 5
retryableCodes: [ EMPTY_RESPONSE, RATE_LIMIT, SERVER, TIMEOUT, TRANSPORT, QUOTA, ACCOUNT_QUOTA, AUTH, INVALID_REQUEST, PI_AI_ERROR, STREAM_CLOSED, MALFORMED_RESPONSE ]
可在 DSH 的 设置 → 插件 → Codex 订阅直连 页面或 cordis.patch.yml 中随时修改 disabledModels、contextWindows 与 retryPolicy,实时热更新生效无需重启。
开发与验证
pnpm install
pnpm verify # 依次执行 tsc --noEmit、tsdown 构建、node --test 单测与产物卫生守卫、隔离脚本检查