dockyard-dsh

73Star7Fork1Issue0Watching

把 Codex、Antigravity、Grok、Claude、Cursor 五个官方 OAuth 接入 DSH,统一账号池与实时额度。

机审证据安装命令仓库已核验dsh-plugin Topic许可证READMEAI 百科
语言
JavaScript
License
MIT
分支
main
account-pooldeepseek-harnessdsh-pluginmacosoauth

安装

$ dsh plugin --profile web add github:AITabby/dockyard-dsh

在终端中运行以上命令,通过 dsh CLI 安装此插件。可在右上角切换 Profile。 第一次用 dsh?看这篇新手教程

对话式安装

帮我安装 DeepSeek Harness 插件 AITabby/dockyard-dsh:先查看仓库 https://github.com/AITabby/dockyard-dsh.git 确认安全性,然后执行安装命令并验证插件加载成功。

把这段指令粘贴给 DSH Web GUI 里的助手,由它代你完成安装与验证。

一句话定位

dockyard-dsh 是 DeepSeek Harness 的官方 OAuth 账号池插件,把 Codex、Antigravity、Grok、Claude、Cursor 五个官方浏览器授权、本机会话和原生请求链路整合到同一个共享 runtime,让 DSH 用户在聊天时按账号选择策略使用这些官方账号。

核心能力

  • 接入 Codex、Antigravity、Grok、Claude、Cursor 五个官方 provider,提供统一的账号发现、登录和授权
  • 通过 /dockyard 命令管理账号、查询实时额度、设置选择策略、手动切换默认账号
  • 支持账号池策略:manual / sticky_session / round_robin / failover,跨账号轮换和故障转移
  • 读取每个 provider 官方的实时模型目录、推理档位、订阅/额度和到期时间
  • 提供 provider-native 请求链路(原生 Responses、Gemini SSE、Grok streaming 等),不走 DSH 之外的代理网关
  • 提供本地 DMG 应用形态,在 macOS 双击即可启动内嵌的 DSH web profile

技术实现

  • 语言: JavaScript (ESM .mjs) + TypeScript 风格 JSDoc;含一份 Python PTY 辅助脚本(给 Antigravity CLI 套一个伪 TTY)
  • 关键依赖: @deepseek-ai/dsh-llm-pi-ai (Codex 走 pi-ai 适配) / @deepseek-ai/dsh-api-remotes / @deepseek-ai/dsh-typert-protocol / @earendil-works/pi-ai / zod(运行时 Schema 校验)
  • 架构模式: Cordis plugin + 自有 DockyardRuntime,通过 cordis.patch.yml 把自身 bundle 注入 DSH,再注入 llm/commands/credentials/settings 四个服务面;同时通过 DshInjectionBridge 把每个 provider 注册成 DSH route
  • 入口文件: packages/dsh-plugin/src/index.mjs(开发源);packages/dsh-plugin/dist/index.mjs(运行时构建产物);同时输出浏览器侧 lib/client.js

适用场景

普通 DSH 用户经常要在多个官方 AI 服务之间切换,而每个服务都有自己的登录态、额度和模型目录。dockyard-dsh 把这些账号统一纳入 DSH 的同一个账号池,让你在一个对话里按账号策略自动选择可用账号,直接看每个账号的实时剩余额度和订阅状态,而不必为每个 provider 各开一个客户端。

前置依赖与兼容性

依赖最低版本说明
DeepSeek Harness (DSH)0.1.0-rc.6bundle 内 DSH 包固定到 ^0.1.0-rc.6;安装命令要求 --profile web
Node.js^22.19.0 或 >=24.0.0engines.node 直接声明;DSH 上游同步要求
DSH profileweb必须装到 DSH 自带的 web profile 才会有 GUI
macOS 凭据macOS(完整功能)凭据默认走 macOS Keychain + Swift helper;非 macOS 默认凭据存储 fail closed
Python3 + pty可选仅 Antigravity CLI fallback 路径使用,可由 DOCKYARD_ANTIGRAVITY_PTY_PYTHON 覆盖

安装方式

dsh plugin --profile web add github:AITabby/dockyard-dsh

配置项

配置类型说明默认值
DOCKYARD_DSH_HOME环境变量覆盖状态文件目录,默认 ~/.dockyard-dsh未设置
DOCKYARD_DSH_REFRESH_INTERVAL_MS环境变量后台定时刷新额度的间隔(毫秒)300000(5 分钟)
DOCKYARD_DSH_REFRESH_TIMEOUT_MS环境变量单次账号刷新的超时阈值(毫秒)15000(15 秒)
DOCKYARD_DSH_CLI_PATH环境变量覆盖 provider 通用 CLI 路径未设置
DOCKYARD_ANTIGRAVITY_CLIENT_ID / DOCKYARD_ANTIGRAVITY_CLIENT_SECRET环境变量Antigravity Google loopback OAuth 凭据;不提供则浏览器授权无法启动未设置
DOCKYARD_ANTIGRAVITY_CLI / DOCKYARD_ANTIGRAVITY_PTY_PYTHON / DOCKYARD_ANTIGRAVITY_PROJECT / DOCKYARD_ANTIGRAVITY_ENDPOINT / DOCKYARD_ANTIGRAVITY_QUOTA_ENDPOINT / DOCKYARD_ANTIGRAVITY_USER_AGENT / DOCKYARD_ANTIGRAVITY_CATALOG_TTL_MS / DOCKYARD_ANTIGRAVITY_OAUTH_SCOPE环境变量Antigravity provider 内部 endpoint、UA、目录缓存 TTL、CLI 与 PTY Python 路径各 provider 内部默认值
DOCKYARD_GROK_CLI / DOCKYARD_GROK_ENDPOINT / DOCKYARD_GROK_USER_AGENT / DOCKYARD_GROK_CATALOG_TTL_MS环境变量Grok provider 内部 endpoint、UA、目录缓存 TTL、CLI 路径各 provider 内部默认值
DOCKYARD_CURSOR_CLI / DOCKYARD_CURSOR_ENDPOINT / CURSOR_API_BASE_URL环境变量Cursor provider 内部 endpoint、CLI 路径、API base各 provider 内部默认值

常见问题

Q: dockyard-dsh 是给 DSH 加新模型 API 还是给 DSH 加账号池?

A: 加账号池。它把多个官方 OAuth 官方客户端会话接到同一个共享 runtime,在 DSH 内部按账号选择策略请求,不会替换 DSH 自带的核心。

Q: 安装到哪个 DSH profile 才会有 GUI?

A: 安装到 DSH 自带的 web profile 才能看到 Dockyard 提供的账号/额度界面;新建空 profile 不会启动 Web GUI。

Q: Antigravity 浏览器授权为什么报缺 client 信息?

A: Antigravity 用的是 Google loopback OAuth,需要 DOCKYARD_ANTIGRAVITY_CLIENT_IDDOCKYARD_ANTIGRAVITY_CLIENT_SECRET,这两个变量不在仓库里,需在启动 DSH 的 shell 里自己设置,不要提交。

Q: macOS 以外的平台能用吗?

A: DSH 本身是 web host,跨平台;但凭据默认存 macOS Keychain,在非 macOS 上默认凭据存储会 fail closed,需要宿主 DSH Credentials 服务接管,否则 token 无法持久化。Windows EXE 已经在构建但仓库自述中尚未验证发布资产。

Q: 数据保存在哪里,卸载是否干净?

A: 账号策略与账号元数据写到 ~/.dockyard-dsh/state.json(可用 DOCKYARD_DSH_HOME 改路径),OAuth token 写在 macOS Keychain 服务 com.dockyard-dsh.credentials 或宿主 DSH Credentials。卸载后删除 state.json 与 Keychain 中该服务的条目即可彻底清理。

Q: 怎么添加新账号?

A: 在 DSH web 里用 /dockyard login <provider> 启动官方浏览器授权页;如果想导入本机已有的官方客户端登录态,先 /dockyard scan <provider>/dockyard add <provider>,两者是独立操作,已有账号不会被 Add 静默重复导入。

Q: 用哪种策略比较好?

A: 单人单账号用 manual;多账号轮流用 round_robin;希望失败自动切换用 failover;同一会话里持续走同一个账号用 sticky_session。可用 /dockyard policy <provider> <policy> 在线切换。

上手难度

入门 — 安装一行命令就能用,默认就提供账号池、实时额度和模型目录;只有 Antigravity OAuth 这一个 provider 需要自己准备凭据,其余 provider 直接 /dockyard login 即可上手。

已知问题与限制

  • DSH 上游目前仍是 developer preview,版本升级可能引入 breaking change,bundle 已锁到 @deepseek-ai/dsh@0.1.0-rc.6
  • 各个 provider 的官方 CLI、客户端路径、OAuth 返回字段、额度接口都可能变化,字段缺失时 dockyard-dsh 会保持 unknown/null,不会伪造
  • Windows EXE 在 README 中标注"已完成构建但仍在上传/验证中",未验证前不要用于生产
  • macOS 是完整凭据持久化平台;非 macOS 上默认的 UnavailableSecretStore 在写入时会显式抛错,不会静默退回不安全存储(若不接宿主 DSH Credentials,token 不能保存)
  • Antigravity 的官方 CLI 检测需要真实 TTY,内部会通过 Python pty 模块套一个伪终端;该路径要求 Python3 + pty 模块可用,可通过 DOCKYARD_ANTIGRAVITY_PTY_PYTHON 指定其他 Python

收录徽章

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/AITabby/dockyard-dsh)

把这段 markdown 粘贴到你的 GitHub README,链接回本插件详情页。徽章只声明已被本站收录,不代表安全认证。

返回插件目录