把 Codex、Antigravity、Grok、Claude、Cursor 五个官方 OAuth 接入 DSH,统一账号池与实时额度。
$ dsh plugin --profile web add github:AITabby/dockyard-dshRun the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial
dockyard-dsh 是 DeepSeek Harness 的官方 OAuth 账号池插件,把 Codex、Antigravity、Grok、Claude、Cursor 五个官方浏览器授权、本机会话和原生请求链路整合到同一个共享 runtime,让 DSH 用户在聊天时按账号选择策略使用这些官方账号。
/dockyard 命令管理账号、查询实时额度、设置选择策略、手动切换默认账号.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 校验)DockyardRuntime,通过 cordis.patch.yml 把自身 bundle 注入 DSH,再注入 llm/commands/credentials/settings 四个服务面;同时通过 DshInjectionBridge 把每个 provider 注册成 DSH routepackages/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.6 | bundle 内 DSH 包固定到 ^0.1.0-rc.6;安装命令要求 --profile web |
| Node.js | ^22.19.0 或 >=24.0.0 | engines.node 直接声明;DSH 上游同步要求 |
| DSH profile | web | 必须装到 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_ID 和 DOCKYARD_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 即可上手。
@deepseek-ai/dsh@0.1.0-rc.6unknown/null,不会伪造UnavailableSecretStore 在写入时会显式抛错,不会静默退回不安全存储(若不接宿主 DSH Credentials,token 不能保存)pty 模块套一个伪终端;该路径要求 Python3 + pty 模块可用,可通过 DOCKYARD_ANTIGRAVITY_PTY_PYTHON 指定其他 Python