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