把 WorkBuddy 国内版和国际版的免费/付费模型接进 DeepSeek Harness —— 无需下载…
39.1/100
综合分
5
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查有告警:npm 同名包「dsh-workbuddy」归属 dushaobindoudou/dsh-plugin,装到的可能不是本插件。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Faide-cyber/dsh-workbuddy该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · model
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 1 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
⚠︎ 实装验证未通过(dependency_conflict · 2026/10/23) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意npm 同名包「dsh-workbuddy」归属 dushaobindoudou/dsh-plugin,装到的可能不是本插件
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-workbuddy @ 0.0.1
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/30 15:54:44
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 47 处,展示前 36 条)
- 读取本地文件lib/index.js:784
if (!existsSync(path)) return void 0; - 读取本地文件lib/index.js:787
parsed = JSON.parse(readFileSync(path, "utf8")); - 读取本地文件lib/index.js:894
if (!existsSync(directory)) mkdirSync(directory, { recursive: true }); - 写入本地文件lib/index.js:894
if (!existsSync(directory)) mkdirSync(directory, { recursive: true }); - 写入本地文件lib/index.js:900
writeFileSync(temporary, `${JSON.stringify(document, null, 2)}\n`, { mode: 384 }); - 写入本地文件lib/index.js:901
renameSync(temporary, this.path); - 读取本地文件lib/index.js:1913
if (!existsSync(path)) return {}; - 读取本地文件lib/index.js:1914
const parsed = JSON.parse(readFileSync(path, "utf8")); - 读取本地文件lib/index.js:1928
if (!existsSync(directory)) mkdirSync(directory, { recursive: true }); - 写入本地文件lib/index.js:1928
if (!existsSync(directory)) mkdirSync(directory, { recursive: true }); - 写入本地文件lib/index.js:1930
writeFileSync(temporary, `${JSON.stringify(values, null, 2)}\n`, { mode: 384 }); - 写入本地文件lib/index.js:1931
renameSync(temporary, path); - 发起网络请求lib/client.js:542
const response = await fetch(WORKBUDDY_CONTROL_PATH, { - 发起网络请求lib/client.js:657
const response = await fetch(forceCredits ? `${WORKBUDDY_STATUS_PATH}?refresh=1` : WORKBUDDY_STATUS_PATH, { headers: { "Accept": "application/json" } - 删除本地文件lib/host-heartbeat-5FMuACd6.js:388
await rm(this.ownPath, { force: true }); - 删除本地文件lib/host-heartbeat-5FMuACd6.js:389
await rm(`${this.ownPath}.lock`, { force: true }); - 读取本地文件lib/host-heartbeat-5FMuACd6.js:443
return parseWorkBuddyAuth(await readFile(desktopPath, "utf8")); - 读取本地文件lib/host-heartbeat-5FMuACd6.js:450
return parseOwnDocument(await readFile(this.ownPath, "utf8")); - 读取本地文件lib/host-heartbeat-5FMuACd6.js:459
if ((await stat(desktopPath)).isFile()) return true; - 读取本地文件lib/host-heartbeat-5FMuACd6.js:565
const parsed = JSON.parse(await readFile(this.accountsPath, "utf8")); - 读取本地文件lib/host-heartbeat-5FMuACd6.js:629
const parsed = parseStoredCredential(JSON.parse(await readFile(this.accountOwnPath, "utf8"))["credential"]); - 读取本地文件lib/host-heartbeat-5FMuACd6.js:637
const parsed = parseWorkBuddyAuth(await readFile(path, "utf8")); - 删除本地文件lib/host-heartbeat-5FMuACd6.js:654
await rm(this.accountOwnPath, { force: true }); - 删除本地文件lib/host-heartbeat-5FMuACd6.js:655
await rm(this.accountsPath, { force: true }); - 删除本地文件lib/host-heartbeat-5FMuACd6.js:865
await rm(this.accountOwnPath, { force: true }); - 删除本地文件lib/host-heartbeat-5FMuACd6.js:866
await rm(this.accountsPath, { force: true }); - 发起网络请求lib/host-heartbeat-5FMuACd6.js:1710
response = await fetch(`${chatBase(credential)}/v2/chat/completions`, { - 发起网络请求lib/host-heartbeat-5FMuACd6.js:1741
const response = await fetch(`${chatBase(credential)}/v2/plugin/auth/token/refresh`, { - 发起网络请求lib/host-heartbeat-5FMuACd6.js:1759
const response = await fetch(`${region === "global" ? GLOBAL_BASE : CN_CHAT_BASE}/v2/plugin/auth/state?platform=CLI&nonce=${encodeURIComponent(nonce)} - 发起网络请求lib/host-heartbeat-5FMuACd6.js:1780
const response = await fetch(`${region === "global" ? GLOBAL_BASE : CN_CHAT_BASE}/v2/plugin/auth/token?state=${encodeURIComponent(state)}`, { - 发起网络请求lib/host-heartbeat-5FMuACd6.js:1810
const response = await fetch(`${chatBase(credential)}${path}`, { - 发起网络请求lib/host-heartbeat-5FMuACd6.js:1859
const response = await fetch(`${billingBase(credential)}/console/accounts`, { - 执行外部命令来自配置/变量lib/host-heartbeat-5FMuACd6.js:2456
spawn(command, args, { - 写入本地文件lib/host-heartbeat-5FMuACd6.js:2555
await writeFile(workBuddyHostHeartbeatPath(), JSON.stringify(document), "utf8"); - 执行外部命令固定命令lib/host-heartbeat-5FMuACd6.js:2599
const m = execFileSync("wmic", [ - 执行外部命令固定命令lib/host-heartbeat-5FMuACd6.js:2614
const out = execFileSync("ps", [
扫描于 2026/10/31(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-atomic-write@deepseek-ai/dsh-attachment@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver@deepseek-ai/dsh-llm@deepseek-ai/dsh-llm-pi-ai@deepseek-ai/dsh-settings@deepseek-ai/schemastery给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 接入免费及付费模型
- 无需下载桌面端
将 WorkBuddy 的免费及付费模型接入 DeepSeek Harness —— 无需下载 WorkBuddy 桌面端
README
由 DeepSeek 最新模型翻译生成DSH WorkBuddy
把 WorkBuddy 国内版和国际版的免费/付费模型接进 DeepSeek Harness —— 无需下载 WorkBuddy 桌面端。
English · 中文
- 登录:按区域使用浏览器 OAuth,免桌面端登录;已装桌面 App 的凭据也可只读导入
- 账号:区域隔离的多账号列表、显式切换、余额显示与预警;提供账号备注功能;已支持接入教育公益版;插件副本与桌面 auth 文件分离
- 一键签到:支持的个人账号可一键收取每日签到、猫猫旅行、成长中心全部任务(签到 / 猫猫旅行);提供自动签到,默认关闭
- 设备隔离:各自的凭据、模型目录、余额相互隔离;切换账号不影响在途请求
- 开箱即用:安装并启用插件后,在 DSH 中直接使用,无需额外配置;现已支持 0.2.x 桌面端
快速开始
1. Node 22+,已安装 DSH。
2. 安装插件并启动:
dsh plugin --profile web add github:Faide-cyber/dsh-workbuddy
dsh web
3. 打开 设置 → 插件 → DSH WorkBuddy,点 连接,在弹出的 WorkBuddy 网站里登录。
4. 模型选择器里选一个 WorkBuddy 模型 —— 默认「仅免费模型」范围下,列表就是该区域目录当前标的 x0.00 的那些。
展开完整文档(README 剩余 1 节)
DSH WorkBuddy 把 WorkBuddy 国内版和国际版的免费/付费模型接进 DeepSeek Harness —— 无需下载 WorkBuddy 桌面端。 English · 中文 - 登录:按区域使用浏览器 OAuth,免桌面端登录;已装桌面 App 的凭据也可只读导入 - 账号:区域隔离的多账号列表、显式切换、余额显示与预警;提供账号备注功能;已支持接入教育公益版;插件副本与桌面 auth 文件分离 - 一键签到:支持的个人账号可一键收取每日签到、猫猫旅行、成长中心全部任务(签到 / 猫猫旅行);提供自动签到,默认关闭 - 设备隔离:各自的凭据、模型目录、余额相互隔离;切换账号不影响在途请求 - 开箱即用:安装并启用插件后,在 DSH 中直接使用,无需额外配置;现已支持 0.2.x 桌面端 快速开始 1. Node 22+,已安装 DSH。 2. 安装插件并启动: dsh plugin --profile web add github:Faide-cyber/dsh-workbuddy dsh web 3. 打开 设置 → 插件 → DSH WorkBuddy,点 连接,在弹出的 WorkBuddy 网站里登录。 4. 模型选择器里选一个 WorkBuddy 模型 —— 默认「仅免费模型」范围下,列表就是该区域目录当前标的 x0.00 的那些。 也可以在终端登录: dsh plugin --profile web exec dsh-workbuddy login 安装、更新或登录后必须重启 dsh web。刷新浏览器不够,Node 模块常驻内存。 默认模型可以写在 ~/.dsh/settings.yaml: agent-default-model: provider: workbuddy-ai model: hy3 reasoningEffort: high 请填该区域当前确实列出的 id:模型列表就是该区域实时目录返回的内容,写死的默认模型可能过时。hy3 在撰写时两区都免费。 登录怎么工作 每个区域独立走官方 CLI 登录接口: 1. POST /v2/plugin/auth/state?platform=CLI&nonce=(国际 www.workbuddy.ai,国内 copilot.tencent.com) 2. 打开返回的 authUrl 3. 轮询 GET /v2/plugin/auth/token?state=(还在等时上游返回 11217) 4. Token 写入区域专属的插件副本:国际 $DSH_HOME/.workbuddy-ai-auth.json,国内 $DSH_HOME/.workbuddy-cn-auth.json 桌面 App 的 workbuddy-desktop-ai.info(国际)与 workbuddy-desktop.info(国内)只读、不写;插件只保存自己通过 OAuth 获得的区域凭据副本。 设置卡片会显示所有已导入账号。切换只影响后续请求,在途请求继续使用原账号;批量余额/签到不会改变当前选择。 断开 / logout 只删对应区域插件自己的凭据,不影响桌面 App。 配置 设置 → 插件 → DSH WorkBuddy: - 连接 / 断开:按区域浏览器登录,或删掉该区域插件凭据 - 国内/国际账号列表、官方版型徽标、显式切换、剩余积分和连通性测试 - 国内个人账号可勾选自动签到(默认关闭);教育公益版不显示签到控件 - 当前账号默认每 15 分钟、其他账号默认每 60 分钟只读刷新,可自定义 - 仅免费模型(默认)/ 全部模型 也可以在 profile 的 cordis.patch.yml 里写: - id: llm-workbuddy config: modelScope: free # 国际版:或 all cnModelScope: free # 国内版:或 all probeConsent: false # 真实模型探测默认关闭 autoCheckin: false # 国内自动签到默认关闭 refreshActiveMinutes: 15 refreshInactiveMinutes: 60 局域网打开 DSH Web 时写访问用的 Host(不要写进 LOOPBACK) allowedHosts: ["192.168.1.10"] authFile / cnAuthFile: 一般不用;仅在桌面凭据不在默认位置时写绝对路径 环境变量: | 变量 | 作用 | | DSH_WORKBUDDY_AUTH_FILE | 覆盖国际桌面凭据路径(OAuth 凭据仍写插件自己的文件) | | DSH_WORKBUDDY_CN_AUTH_FILE | 覆盖国内桌面凭据路径 | 命令行 dsh plugin --profile web exec dsh-workbuddy login dsh plugin --profile web exec dsh-workbuddy status dsh plugin --profile web exec dsh-workbuddy doctor dsh plugin --profile web exec dsh-workbuddy logout status / doctor 可加 --json。logout 只删 $DSH_HOME/.workbuddy-ai-auth.json。 故障排查 | 现象 | 处理 | | 设置里没有这张卡片 / 模型列表没有 WorkBuddy | 重启 dsh web,不要只刷新浏览器 | | 点连接后 dsh web 进程退出 | 无头 Linux 没有 xdg-open 时请更新到含 spawn error 处理的版本;用卡片上的登录链接 | | 局域网 IP 打开卡片 403 request-not-trusted | 在 allowedHosts 里写该 IP/主机名,不要把它加进回环名单 | | 登录成功但没有模型 | 该区域目录请求失败或返回为空——检查网络与 token 是否仍有效;此时列表保持为空,不会借用另一区域的模型 | | doctor 显示 signed-out | 先 login,或确认国际版桌面 App 已登录 | | 想用付费模型 | 设置卡片把范围改成「全部模型」,注意会扣积分 | | 国内版每个请求都 400 code 11128 | 国内网关按字面连续子串匹配 DSH 自己提示词里的原文:最初是身份横幅 DeepSeek Harness,2026-10-27 起扩大到其他段落,实测最小触发串是 112 字符、顺序敏感、确定性的 Tokens prefixed with @ are paths the user explicitly referenced. Relative paths resolve to the workspace root(出自 @deepseek-ai/dsh-file-reference)。插件转发前做两层处理,都无需设置:语义层把已登记的原文改写成同义句(国际/国内两个区都生效;无命中时逐字节不动,不破坏前缀缓存);结构层两个区都跑,把过长的连续片段用换行打断——空格处换成换行,中文段落则在词句边界插入换行且不在行首留标点。这样长度 ≥40 的含空格片段不再存在;无空格的长 ASCII 串(URL、base64、a/b/c 这类斜杠串)打不断,属已知上限。网关只扫 system 与 assistant,不扫 user/tool,所以这两类不做改动。若你绕过插件,或上游再收紧,可在 cordis.patch.yml 给 @deepseek-ai/dsh-system-prompt 设 includeHarnessIdentity: false | | 国际版每个请求都 400 code 11128 | 两种成因,看 msg:request illegal 是缺 X-Conversation-ID、X-Conversation-Request-ID、X-Conversation-Message-ID(1.0.15 起自动补齐);Illegal API invocation from an unapproved channel 是内容级字面指纹(2026-10-30 起国际网关也启用),1.0.23 起与国内走同一套两层处理,无需设置。 | | DSH 升级后插件不加载 / 提示 incompatible-version | 声明支持 DSH >=0.2.0-rc.2 <0.2.1-0 \|\| >=0.2.1-rc.1 <0.3.0-0(1.0.20 起写在 engines.dsh);更旧的插件版本需要 dsh plugin --profile desktop allow-version dsh-workbuddy@<版本> --dsh-version <当前版本> --accept-risk | dsh plugin --profile web exec dsh-workbuddy doctor 免责声明 仅供个人学习和研究,只驱动你自己的 WorkBuddy 账号在本机调用。请遵守 WorkBuddy 服务条款。本项目与腾讯、WorkBuddy、DeepSeek 均无关联。 许可证 MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
Faide-cyber/dsh-workbuddy
把 WorkBuddy 国内版和国际版的免费/付费模型接进 DeepSeek Harness —— 无需下载…
相关插件 · 模型接入
API 中继安全审计toby-bridges/api-relay-audit
面向 AI API 中转与 LLM 代理的本地安全审计。
★ 897已汉化DSH
69.4
免费搜索插件DDDMUC/dsh-free-search
DeepSeek Harness 免费搜索插件 —— 无需 API key,零成本,多引擎可切换。 一个给…
★ 761已汉化DSH
68.7
免费联网搜索liustack/modsearch
在官方 App 里模型能联网,切到 API 就不能了。ModSearch 把联网补回来:网页搜索、X…
★ 863已汉化DSH
68.5
OpenCode 免费模型FishBottle7/opencode2dsh
在 DSHDeepSeek Harness里原生使用 OpenCode Zen 的免费匿名模型。
★ 379已汉化DSH
67.8
AI 模型网关tingly-dev/tingly-box
Tingly Box Web UI 演示
★ 373已汉化DSH
67.4
WorkBuddy 账号池XDTrees/dsh-xdpool
把你能白嫖的模型额度接进 DSH 同一个池:WorkBuddy 多账号自动容错、十三家扫码登录、76…
★ 359已汉化DSH
67.1