dsh-subscriptions:使用 Claude 和 ChatGPT/Codex 订阅作为模型提供者

前言

DeepSeek Harness(DSH)采用插件化架构,允许社区扩展其功能。当开发者希望复用已有的 Claude Code 或 Codex CLI 订阅,而无需通过 API Key 方式接入时,dsh-subscriptions 插件提供了直接的解决方案。它通过 OAuth 登录流程,将用户本地的订阅转化为 DSH 可识别的模型提供者。

插件介绍

名称:dsh-subscriptions
作者:DevViking-Persike
类别:模型推理
许可证:MIT

该插件解决的核心问题是:在 DSH 生态中直接调用用户已购买的 Claude 和 ChatGPT/Codex 订阅服务,实现免 API Key 的模型推理。

核心功能

  • OAuth 登录:通过 OAuth 流程获取凭证,无需手动配置 API Key。
  • 双路由支持:提供 /claude 和 /codex 两条路由,分别对应不同的模型提供商。
  • 安全存储:凭证原子写入本地文件,文件权限设置为 0600,并通过跨进程写锁防止冲突。
  • 模型支持:内置支持 GPT-6 Astra 和 Claude Fable 5.1 模型。
  • 安全设计:Token 不会出现在错误信息、日志或状态接口中,上游错误体在返回前会被脱敏。

安装与启用

首先执行安装命令,安装过程会自动处理依赖和补丁应用:

dsh plugin --profile web add github:DevViking-Persike/dsh-subscriptions

安装完成后,重启 dsh 进程以加载插件。

访问以下地址进行 OAuth 登录:
* Claude 路由:http://127.0.0.1:1458/claude/start
* Codex 路由:http://127.0.0.1:1458/codex/start

浏览器会跳转至各厂商的官方登录页,登录成功后,凭证会自动存储在 ~/.dsh/ 目录下。

配置与使用

安装并重启后,插件会默认监听 127.0.0.1:1458。你可以在 DSH 的配置文件中调整以下参数:

基本配置项:

字段 默认值 说明
routes ['claude', 'codex'] 需要启用的路由列表
controlPort 1458 本地监听端口
streamIdleTimeoutMs 300000 传输层空闲超时时间

YAML 配置示例:

- id: dsh-subscriptions
  name: 'dsh-subscriptions'
  config:
    routes: ['claude']
    controlPort: 1458

接口使用:

  • 查看状态:GET /<route>/status(返回连接状态及 Token 过期时间)
  • 登出:POST /<route>/logout(清除本地凭证)

注意事项与限制

  1. 版本兼容性:插件对 Harness 版本敏感,需确保与当前 DSH 版本兼容。加载时会校验分块词汇表,不匹配时拒绝挂载。
  2. 回调地址绑定:OAuth 回调地址固定绑定 127.0.0.1。如果你的主机将 localhost 解析为 ::1(IPv6),浏览器回调将无法到达,导致登录失败。
  3. 静态模型目录:模型列表为静态配置,不支持自动发现。如果你的订阅包含未在目录中列出的模型,需在配置中显式指定名称。
  4. 图片输入依赖:图片输入功能依赖于 Harness 的附件服务(ctx.attachments)。未启动该服务时,图片请求会被拒绝。
  5. Codex 限制:通过 /codex 路由不支持设置 stop sequences。
  6. 凭证管理:若凭证刷新失败,插件不会删除本地存储的凭证,需手动通过 POST /logout 清理。

总结

dsh-subscriptions 插件为 DeepSeek Harness 用户提供了直接复用现有 Claude 和 ChatGPT/Codex 订阅的能力。通过 OAuth 方式,它简化了 API Key 的管理流程,并注重凭证存储的安全性。

  • GitHub 仓库:https://github.com/DevViking-Persike/dsh-subscriptions
  • 插件目录:https://www.skillhub.cn/plugins/DevViking-Persike/dsh-subscriptions
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜