🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

码头账号池 4sa1ary9/dockyard-dsh

DeepSeek Harness
4sa1ary926 天前有提交已提供中文文档扫描:含敏感能力

Dockyard DSH 的 Windows 分支:composer 服务商选择器,支持 Codex / Grok / Claude / Cursor / Antigravity

30.5/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/10/8 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 4sa1ary9/dockyard-dsh
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:待复验
是什么
dsh 原生插件 · model
装得上吗
曾在 dsh 0.2.0-rc.2 下真实安装成功,但当前 dsh 已更新至 0.2.1-rc.5,本站尚未在新版下复验
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 26 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包@dockyard-dsh/plugin(未发布到 npm,仅可源码安装)
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/9 17:36:58

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件读取剪贴板或密钥环境变量发起外部网络请求
查看扫描证据(共 64 处,展示前 42 条)
  • 执行外部命令来自配置/变量
    packages/dsh-plugin/dist/index.mjs:1110
    callback(value);
  • 执行外部命令来自配置/变量
    packages/dsh-plugin/dist/index.mjs:1112
    const child = spawn(SWIFT_BIN, [KEYCHAIN_HELPER], {
  • 执行外部命令来自配置/变量
    packages/dsh-plugin/dist/index.mjs:1176
    callback(value);
  • 执行外部命令固定命令
    packages/dsh-plugin/dist/index.mjs:1178
    const child = spawn("powershell.exe", [
  • 读取本地文件
    packages/dsh-plugin/dist/index.mjs:1246
    const packed = await readFile(this.#fileFor(ref));
  • 写入本地文件
    packages/dsh-plugin/dist/index.mjs:1254
    await mkdir(this.directory, { recursive: true });
  • 写入本地文件
    packages/dsh-plugin/dist/index.mjs:1256
    await writeFile(this.#fileFor(ref), packed);
  • 删除本地文件
    packages/dsh-plugin/dist/index.mjs:1260
    await rm(this.#fileFor(ref), { force: true });
  • 写入本地文件
    packages/dsh-plugin/dist/index.mjs:1311
    await mkdir2(dirname2(filePath), { recursive: true, mode: 448 });
  • 删除本地文件
    packages/dsh-plugin/dist/index.mjs:1321
    await rm2(lockPath, { force: true }).catch(() => {
  • 删除本地文件
    packages/dsh-plugin/dist/index.mjs:1331
    await rm2(lockPath, { force: true }).catch(() => {
  • 读取本地文件
    packages/dsh-plugin/dist/index.mjs:1337
    const metadata = await stat(lockPath);
  • 删除本地文件
    packages/dsh-plugin/dist/index.mjs:1339
    await rm2(lockPath, { force: true });
  • 读取本地文件
    packages/dsh-plugin/dist/index.mjs:1382
    const raw = await readFile2(this.filePath, "utf8");
  • 写入本地文件
    packages/dsh-plugin/dist/index.mjs:1393
    await rename(this.filePath, archivePath).catch(() => {
  • 写入本地文件
    packages/dsh-plugin/dist/index.mjs:1417
    await mkdir2(dirname2(this.filePath), { recursive: true, mode: 448 });
  • 写入本地文件
    packages/dsh-plugin/dist/index.mjs:1421
    await writeFile2(tempPath, `${JSON.stringify(next, null, 2)}
  • 删除本地文件
    packages/dsh-plugin/dist/index.mjs:1427
    if (!committed) await rm2(tempPath, { force: true }).catch(() => {
  • 读取本地文件
    packages/dsh-plugin/dist/index.mjs:1446
    return JSON.parse(await readFile3(path, "utf8"));
  • 删除本地文件递归
    packages/dsh-plugin/dist/index.mjs:1941
    await rm3(session.profileDir, { recursive: true, force: true }).catch(() => {
  • 读取本地文件
    packages/dsh-plugin/dist/index.mjs:1976
    raw = JSON.parse(await readFile4(join3(session.profileDir, authFileName), "utf8"));
  • 执行外部命令来自配置/变量
    packages/dsh-plugin/dist/index.mjs:2031
    const child = spawn2(cliPath, loginArgs, {
  • 执行外部命令来自配置/变量
    packages/dsh-plugin/dist/index.mjs:2748
    const child = spawn3(command, args, {
  • 读取本地文件
    packages/dsh-plugin/dist/index.mjs:3446
    const parsed = JSON.parse(readFileSync(path, "utf8"));
  • 读取密钥环境变量
    packages/dsh-plugin/dist/index.mjs:3733
    var ANTIGRAVITY_BROWSER_CLIENT_SECRET = process.env.DOCKYARD_ANTIGRAVITY_CLIENT_SECRET || "";
  • 读取密钥环境变量
    packages/dsh-plugin/dist/index.mjs:3735
    var ANTIGRAVITY_BROWSER_TOKEN_URL = process.env.DOCKYARD_ANTIGRAVITY_TOKEN_URL || "https://oauth2.googleapis.com/token";
  • 发起网络请求
    packages/dsh-plugin/dist/index.mjs:7780
    stream = session.request(cursorHeaders(url, token, requestId, context.env ?? process.env));
  • 发起网络请求
    packages/dsh-plugin/dist/index.mjs:10624
    async fetch({ providerId, profile, apiKey, signal }) {
  • 发起网络请求
    packages/dsh-plugin/dist/index.mjs:10625
    const body = await readJson2(await fetch(deepseekBalanceUrl(providerId, profile), {
  • 发起网络请求
    packages/dsh-plugin/dist/index.mjs:10690
    async fetch({ providerId, profile, apiKey, signal }) {
  • 发起网络请求
    packages/dsh-plugin/dist/index.mjs:10691
    const body = await readJson2(await fetch(openCodeGoUsageUrl(providerId, profile), {
  • 发起网络请求
    packages/dsh-plugin/dist/index.mjs:10725
    async fetch({ providerId, profile, apiKey, signal }) {
  • 读取本地文件
    packages/dsh-plugin/src/codex-transport.mjs:37
    await access(path);
  • 读取本地文件
    packages/dsh-plugin/src/codex-transport.mjs:57
    const packageJson = JSON.parse(await readFile(join(packageRoot, "package.json"), "utf8"));
  • 执行外部命令来自配置/变量
    packages/dsh-plugin/src/dockyard-service.mjs:117
    const child = spawn(command.file, command.args, { detached: true, stdio: "ignore", windowsHide: true });
  • 发起网络请求
    packages/dsh-plugin/src/native-key-pool-host.mjs:410
    ? await module.fetch({ providerId, profile: synced.profile, apiKey, signal })
  • 发起网络请求
    packages/dsh-plugin/src/native-usage.mjs:135
    async fetch({ providerId, profile, apiKey, signal }) {
  • 发起网络请求
    packages/dsh-plugin/src/native-usage.mjs:136
    const body = await readJson(await fetch(deepseekBalanceUrl(providerId, profile), {
  • 发起网络请求
    packages/dsh-plugin/src/native-usage.mjs:204
    async fetch({ providerId, profile, apiKey, signal }) {
  • 发起网络请求
    packages/dsh-plugin/src/native-usage.mjs:205
    const body = await readJson(await fetch(openCodeGoUsageUrl(providerId, profile), {
  • 发起网络请求
    packages/dsh-plugin/src/native-usage.mjs:240
    async fetch({ providerId, profile, apiKey, signal }) {
  • 发起网络请求
    packages/dsh-plugin/src/native-usage.mjs:241
    const body = await readJson(await fetch(endpoint(baseUrlFor(providerId, profile), "credits"), {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-api-remotes@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-model-selection@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/dsh-typert-protocol
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 支持多AI服务商

README

由 DeepSeek 最新模型翻译生成
Dockyard DSH 在 Windows 上把 Codex / Grok / Claude / Cursor / Antigravity / Kiro 官方订阅接入 DeepSeek Harness 的账号池插件。输入框左边会出现供应商选择条,点开后登录或导入本机官方登录态。 这不是官方插件。它从 AITabby/dockyard-dsh fork 后二次开发。上游 v0.1.1 已有 macOS DMG,Windows EXE 仍在他们自己的发布流程里。这个仓库补的是:在现有 dsh web 里用同一套输入框供应商选择,凭据和浏览器按 Windows 走。 已合入上游 v0.1.1。 本仓库与 DeepSeek AI、OpenAI、xAI、Anthropic、Cursor、Google、Amazon、Kiro 都没有从属关系。套餐、额度、模型能不能用,由各家账号决定。 相对上游改了什么 上游在非 macOS 上默认凭据库会 fail closed,浏览器打开也只调用 macOS 的 open。 这个 fork: - Windows 凭据用当前用户 DPAPI 写到 %LOCALAPPDATA%\dockyard-dsh\secrets,不再静默拒绝写入。 - 登录时用 rundll32 打开系统默认浏览器。
展开完整文档(README 剩余 1 节)
Dockyard DSH

在 Windows 上把 Codex / Grok / Claude / Cursor / Antigravity / Kiro 官方订阅接入 DeepSeek Harness 的账号池插件。输入框左边会出现供应商选择条,点开后登录或导入本机官方登录态。

这不是官方插件。它从 AITabby/dockyard-dsh fork 后二次开发。上游 v0.1.1 已有 macOS DMG,Windows EXE 仍在他们自己的发布流程里。这个仓库补的是:在现有 dsh web 里用同一套输入框供应商选择,凭据和浏览器按 Windows 走。

已合入上游 v0.1.1。

本仓库与 DeepSeek AI、OpenAI、xAI、Anthropic、Cursor、Google、Amazon、Kiro 都没有从属关系。套餐、额度、模型能不能用,由各家账号决定。

相对上游改了什么

上游在非 macOS 上默认凭据库会 fail closed,浏览器打开也只调用 macOS 的 open。

这个 fork:

- Windows 凭据用当前用户 DPAPI 写到 %LOCALAPPDATA%\dockyard-dsh\secrets,不再静默拒绝写入。
- 登录时用 rundll32 打开系统默认浏览器。
- 去掉子包 prepare 构建脚本,GitHub 直装走已提交的 dist/ 和 lib/client.js。
- DSH 仍优先走 Host 的 Credentials 服务;DPAPI 是 Windows 上的本机兜底,对应上游的 Keychain。

Linux 默认仍 fail closed,与上游一致。

环境要求

| 项 | 要求 |
| 系统 | Windows 10 / 11 |
| Node.js | ^22.19.0 或 >=24 |
| DeepSeek Harness | npx @deepseek-ai/dsh,按上游 0.1.0-rc.6 验证过 |
| pnpm | dsh plugin add 会转给 pnpm:npm install -g pnpm |

认证条件

输入框左边的 Dockyard 条里点供应商,再「登录添加账号」或先扫描再导入。没有对应套餐或本机登录态时,状态会是 unavailable / degraded,不会伪造额度或模型。

Codex

需要带 Codex 资格的 ChatGPT 套餐。默认打开官方浏览器 OAuth(loopback PKCE)。本机已经 codex login 时,可用扫描导入 %USERPROFILE%\.codex\auth.json。这不是 OpenAI Platform API Key。

Grok

需要能走 xAI 推理的 SuperGrok 或 X Premium。默认打开 xAI 官方浏览器 OAuth。也可扫描 %USERPROFILE%\.grok\auth.json。部分档位登录成功但推理 403,那是套餐门禁。

Claude

需要 Claude 订阅(Pro / Max 或 Claude Code 同一套 OAuth)。浏览器回调有时要手动粘贴带 state 的完整地址或 code#state。扫描可读本机官方会话;settings.json 里指向网关的 API Key 不是这里的认证路径。

Kiro

需要安装官方 kiro-cli;单独安装 Kiro IDE 不够,因为 IDE 的 kiro chat 只会打开图形界面。Windows 可用 irm 'https://cli.kiro.dev/install.ps1' | iex 安装,然后在 Dockyard 中扫描现有 CLI 登录态或点击登录。生成走官方 kiro-cli acp(ACP/JSON-RPC over stdio),模型目录来自官方 CLI。可用 DOCKYARD_KIRO_CLI 覆盖可执行文件路径;Kiro CLI 当前没有结构化实时额度命令,因此 Dockyard 不估算额度。

Cursor / Antigravity

Cursor:官方浏览器登录轮询,CLI 是 fallback。Antigravity:Google 官方浏览器 OAuth,需要环境变量 DOCKYARD_ANTIGRAVITY_CLIENT_ID 和 DOCKYARD_ANTIGRAVITY_CLIENT_SECRET,仓库不内置。

凭据放哪

- DSH Credentials(Host 已注入时优先)
- Windows:%LOCALAPPDATA%\dockyard-dsh\secrets(DPAPI)
- 账号池快照只有不透明引用,不写原始 token

扫描和「登录添加账号」是两件事。已有账号不会被新增操作静默重复导入。

安装

npx @deepseek-ai/dsh plugin --profile web add github:4sa1ary9/dockyard-dsh
npx @deepseek-ai/dsh web

本地开发:

npx @deepseek-ai/dsh plugin --profile web add "C:\Users\michael.li\lsz\dsh\dockyard-dsh"
npx @deepseek-ai/dsh web

打开 http://127.0.0.1:3080。输入框左侧会出现 Dockyard 供应商条。改完前端后要重启 dsh web。

命令:

/dockyard status
/dockyard scan [provider]
/dockyard add [provider] [candidateId]
/dockyard login
/dockyard models

provider 常见为 openai-codex、grok、claude、cursor、antigravity、kiro。

开发

npm install
npm test
npm run build
发布入口仍是 packages/dsh-plugin/dist/index.mjs 和 packages/dsh-plugin/lib/client.js。改 provider 或 vault 后要重新 npm run build 再提交产物。

许可证

MIT。上游版权归原作者。本仓库改动同样按 MIT 发布。
预览分享卡片长什么样 ↓4sa1ary9/dockyard-dsh
分享 · DeepSeek Harness Hub
4sa1ary9/dockyard-dsh

Dockyard DSH 的 Windows 分支:composer 服务商选择器,支持 Codex / Grok / Claude / Cursor / Antigravity

回到顶部