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

WorkBuddy 网关面板 functy23/dsh-workbuddy-panel

DeepSeek Harnessv0.5.0
functy232 天前有提交已提供中文文档扫描:含敏感能力

优化版 WorkBuddy2API 网关 + DSH 原生面板:UA、头族与设备指纹对齐官方 WorkBuddy…

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-workbuddy-panel
npm 源 · dsh-workbuddy-panel 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · desktop
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 2 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包dsh-workbuddy-panel @ 0.5.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/28 02:53:05

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

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

读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 61 处,展示前 37 条)
  • 发起网络请求
    lib/index.js:395
    response = await fetch(url, {
  • 发起网络请求
    lib/index.js:430
    const body = await this.request("/overview", { timeoutMs: 3e3 });
  • 发起网络请求
    lib/index.js:453
    const body = await this.request("/models", { timeoutMs: CATALOG_TIMEOUT_MS });
  • 发起网络请求
    lib/index.js:462
    const body = await this.request("/config");
  • 发起网络请求
    lib/index.js:473
    const body = await this.request("/config", {
  • 发起网络请求
    lib/index.js:498
    const body = await this.request("/login/start", {
  • 读取本地文件
    lib/index.js:1039
    parsed = JSON.parse(readFileSync(path, "utf8"));
  • 读取本地文件
    lib/index.js:2404
    const manifest = JSON.parse(readFileSync(join(dir, "package.json"), "utf8"));
  • 读取本地文件
    lib/index.js:2441
    const manifest = JSON.parse(readFileSync(join(dir, "node_modules", PI_AI, "package.json"), "utf8"));
  • 读取本地文件
    lib/gateway.js:178
    const parsed = JSON.parse(readFileSync(path, "utf8"));
  • 写入本地文件
    lib/gateway.js:277
    mkdirSync(this.options.workdir(), { recursive: true });
  • 写入本地文件
    lib/gateway.js:285
    mkdirSync(join(this.options.workdir(), "data"), { recursive: true });
  • 写入本地文件
    lib/gateway.js:286
    writeFileSync(path, JSON.stringify(document, null, 2) + String.fromCharCode(10), "utf8");
  • 写入本地文件
    lib/gateway.js:299
    mkdirSync(this.options.workdir(), { recursive: true });
  • 写入本地文件
    lib/gateway.js:300
    writeFileSync(path, JSON.stringify({
  • 读取本地文件
    lib/gateway.js:824
    const stat = statSync(binary);
  • 读取本地文件
    lib/gateway.js:866
    const stat = statSync(binary);
  • 写入本地文件
    lib/gateway.js:898
    mkdirSync(this.versionDir(), {
  • 读取本地文件
    lib/gateway.js:950
    if (existsSync(target)) unlinkSync(target);
  • 删除本地文件
    lib/gateway.js:950
    if (existsSync(target)) unlinkSync(target);
  • 读取本地文件
    lib/gateway.js:963
    const stat = statSync(target);
  • 读取本地文件
    lib/gateway.js:1001
    if (existsSync(temp)) unlinkSync(temp);
  • 删除本地文件
    lib/gateway.js:1001
    if (existsSync(temp)) unlinkSync(temp);
  • 删除本地文件
    lib/gateway.js:1055
    if (existsSync(path)) unlinkSync(path);
  • 删除本地文件
    lib/gateway.js:1079
    unlinkSync(path);
  • 删除本地文件
    lib/gateway.js:1091
    unlinkSync(this.lockPath());
  • 删除本地文件
    lib/gateway.js:1101
    if (Date.now() - statSync(path).mtimeMs > 864e5) unlinkSync(path);
  • 写入剪贴板
    lib/client.js:2265
    navigator.clipboard?.writeText(activeLogin.url);
  • 发起网络请求
    lib/client.js:3617
    response = await fetch(STATUS_PATH, { headers: { Accept: "application/json" } });
  • 发起网络请求
    lib/client.js:3636
    const response = await fetch(ACTION_PATH, {
  • 发起网络请求
    lib/client.js:4441
    fetch("/plugins/workbuddy2api-gateway/client-hello", { headers: { Accept: "application/json" } }).catch(NOOP_DISPOSER);
  • 读取本地文件
    lib/server-release-CZtoo327.js:118
    if (!existsSync(path)) return void 0;
  • 读取本地文件
    lib/server-release-CZtoo327.js:120
    const document = parseJsonObject(readFileSync(path, "utf8"));
  • 写入本地文件
    lib/server-release-CZtoo327.js:129
    mkdirSync(dirname(path), { recursive: true });
  • 写入本地文件
    lib/server-release-CZtoo327.js:131
    writeFileSync(temporary, `${JSON.stringify(document, null, 2)}\n`, {
  • 写入本地文件
    lib/server-release-CZtoo327.js:135
    renameSync(temporary, path);
  • 读取本地文件
    lib/server-release-CZtoo327.js:164
    const text = readFileSync(new URL("../server.json", import.meta.url), "utf8");
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-model-selection@deepseek-ai/dsh-client-ui-primitives@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-sidebar@deepseek-ai/dsh-client-ui-slots@deepseek-ai/dsh-home-paths@deepseek-ai/dsh-host-webserver
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
展开完整介绍(79 字)↓

优化版 WorkBuddy2API 网关 + DSH 原生面板:UA、头族与设备指纹对齐官方 WorkBuddy Desktop 5.9.2,内核可独立更新。

v0.5.02026-10-26
内核可独立更新,面板不必跟着发版。 · 新增「内核更新」卡(网关进程分区):当前内核 / 通道最新 / 上次检查 / 自动检查(每小时 / 永不)/ 检查更新 / 安装内核 · 远端清单:从 GitHub Release 的 server.json 资产发现新版本(API 列出 server-v*,取最高版本;可配 upstream.manifest_url 指定自定义通道) · 安装仍走完整校验:gzip → 大小 → SHA-256 → 原子 rename;装好的版本写入 server/manifest.json,重启继续用,直到包内 pin 追上来 · host row 新增 checkUpdates(默认 hourly)/ manifestUrl 配置;契约版本 1 → 2 · 服务端 Release 现在同时携带 server.json 资产;server:build 会把它写进 dist/
v0.4.12026-10-26
仅更新内核 pin:server 1.13.0-panel → 1.14.0-panel,面板代码零改动。 · server.json 换新版本与 5 个平台的 SHA-256(darwin-arm64/x64、linux-x64/arm64、win32-x64) · 内核行为变更见 server-v1.14.0-panel 的说明(UA/头族/设备指纹对齐 WorkBuddy 5.9.2) · 顺带修掉 server:build 的 win32 GOOS 错误,Windows 资产首次可正常产出
server-v1.14.0-panel2026-10-26
对齐 WorkBuddy Desktop 5.9.2 的客户端指纹(此前按 5.8.3 建模)。 · UA:WorkBuddy/5.9.2 WorkBuddy/5.9.2 CLI/2.165.0(渲染进程 UA 同步到 5.9.2) · chat 头族:X-Agent-Type=main、新增 X-Agent-Runtime=other、X-Agent-Purpose=conversation、 X-Private-Data 按账号类型(个人 false / 企业 true)、Accept 用 axios 默认串、 去掉 Accept-Encoding: identity 与 X-CodeBuddy-Request · 身份族:补 X-Id-Source / X-Department-Info,X-Userinfo 补 id_source · 模型目录:/console 端点补 X-Requested-With + 浏览器 Accept · 设备指纹:reportDelay=0、machineId 改大写 UUID(IOPlatformUUID 形态)、sessionId 改进程级、 os/arch/osVersion/cpuModel/cpuCores/memorySize 改真机值(darwin/arm64/23.6.0/Apple M2/8/16)、 commit/releaseDate 换 5.9.2 product.json、qimei36 可配(缺省不发) · 新增 upstream.desktop_* 与 upstream.qimei36 配置(装配期生效,需重启) · 修复 Windows 资产构建:GOOS 应为 windows(原写 win32,go build 直接报 unsupported pair)
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
dsh-workbuddy-panel WorkBuddy2API × DeepSeek Harness 把 workbuddy2api 网关接进 DSH 的模型选择器:面板与内核分离,网关本体按 server.json 单独下载、校验,再由宿主 ctx.subprocess 托管;账号池、模型目录、思考档位与额度都在 DSH 设置页里管理,不用再打开网关的网页面板。内核基于 workbuddy2api-panel 构建,出站指纹对齐官方 WorkBuddy Desktop 5.9.2。 特点 面板 · DSH 集成 - 面板 / 内核分离:面板包约 0.1MB,只带 UI、目录、路由、pi-ai provider 和 server.json 清单,不含网关二进制;网关本体是独立的 GitHub Release 资产(gzip ≈4MB,安装 ≈10MB),按清单里的 SHA-256 校验后落盘。 - 内核独立更新:设置页「网关进程 → 内核更新」向 Release 通道查新版本(每小时 / 永不),点「安装内核」即下载、校验、落盘,下次启动接管,不必等面板发版。 - 宿主托管进程:host gateway row 通过 ctx.subprocess 启动 / 停止 / 重启,崩溃退避重启、日志可见;面板行重载不影响网关,外部已启动的网关照常接管(停止需回原启动处)。
展开完整文档(README 剩余 1 节)
dsh-workbuddy-panel

WorkBuddy2API × DeepSeek Harness

把 workbuddy2api 网关接进 DSH 的模型选择器:面板与内核分离,网关本体按 server.json 单独下载、校验,再由宿主 ctx.subprocess 托管;账号池、模型目录、思考档位与额度都在 DSH 设置页里管理,不用再打开网关的网页面板。内核基于 workbuddy2api-panel 构建,出站指纹对齐官方 WorkBuddy Desktop 5.9.2。

特点

面板 · DSH 集成

- 面板 / 内核分离:面板包约 0.1MB,只带 UI、目录、路由、pi-ai provider 和 server.json 清单,不含网关二进制;网关本体是独立的 GitHub Release 资产(gzip ≈4MB,安装 ≈10MB),按清单里的 SHA-256 校验后落盘。
- 内核独立更新:设置页「网关进程 → 内核更新」向 Release 通道查新版本(每小时 / 永不),点「安装内核」即下载、校验、落盘,下次启动接管,不必等面板发版。
- 宿主托管进程:host gateway row 通过 ctx.subprocess 启动 / 停止 / 重启,崩溃退避重启、日志可见;面板行重载不影响网关,外部已启动的网关照常接管(停止需回原启动处)。
- 模型目录自动发现:轮询时与上一份 diff(新增 / 移除 / 变更),新模型自动进入选择器,思考档位一并带入;读取失败保留上一份目录。
- 国内 / 国际双分组:按 cn: / global: 前缀拆成 WorkBuddy2API · CN 与 WorkBuddy2API · Global 两个 provider,各自只列本域模型,模型名不带前缀。
- 稳定排序:网关目录来自 Go map 遍历,插件按域、再按 id 排序,列表不跳动。
- 账号池:身份 / 状态 / 积分进度 / 成功·连败 / 请求·Token / 操作;备注里带冷却原因、限流模型数与凭证到期。
- 登录:国内扫码(内置 QR 编码器,无第三方依赖)、国际浏览器授权、两域粘贴令牌或账号 JSON;账号落地后弹窗自动关闭。
- 模型页:思考档位只读展示,支持「仅已勾选」过滤、全部启用 / 停用、同步隐藏到面板。
- 用量与额度:概览页请求数 / Token / 剩余积分 / 活跃天数 / 高峰时段 / 最常用模型与热力图;composer 按当前模型所属域显示账号池总积分。
- 图片输入:provider 接了 durable attachment 钩子,带图对话不会报 UNSUPPORTED_CONTENT。

内核 · 本仓库对上游的改动

以下改动来自本仓库对上游快照的本地修改;服务端 Release 由这棵树构建。

- UA / 版本更新:WorkBuddy/5.9.2 … CLI/2.165.0,X-IDE-Version 同源;upstream.client_version / cli_version 可覆盖。
- 设备指纹:/v2/report 的 reportDelay 恒 0;machineId 改为 UUID 形态(大写、带横线,同一账号稳定);sessionId 进程级随机;OS / CPU / 内存用真机样本缺省值且可配;commit / releaseDate 对齐 5.9.2;qimei36 可注入,缺省不发。
- Chat 头族:X-Agent-Type: main、X-Agent-Runtime: other、X-Agent-Purpose: conversation、X-Private-Data 按个人 / 企业号取值、Accept 用 axios 默认串;去掉 Accept-Encoding: identity 与 X-CodeBuddy-Request。
- 身份族:补 X-Id-Source / X-Department-Info / X-Userinfo.id_source,只在 CLI 链路发。
- 模型目录端点:/console/ 补 X-Requested-With 与浏览器 Accept,对齐主进程里唯一显式设置这两头的调用。
- 请求体去品牌化:prompt_cache_key 改 32 位 hex,不再带 wb2a-<uid8> 前缀。
- 三档头族分层:主进程基线 / CLI 文本会话 / 渲染进程 Web,各端点只带该发出者真会发的头;X-Device-Token 仅签到注入。

内核 · 继承自上游:账号池轮转、熔断与冷却、会话粘性、签到 / 活跃 / 旅行 / 保活、成长任务、/v1 OpenAI 兼容、SSE 流式、搜索端点、系统提示词体系、请求体指纹清洗。

展示图

设置页 · 概览:用量、额度与热力图

设置页 · 模型:开关、思考档位与计费倍率

主界面 · 模型选择器:WorkBuddy2API 分组

DSH 版本支持

当前组合:面板 0.5.0 · 内核 1.14.0-panel · Node ^22.19.0 || >=24。支持 DSH 0.1.7-alpha.1 起(宿主包 peer 范围 ^0.1.7-alpha.1 || ^0.2.0-rc.1)。

| DSH | 宿主自带 pi-ai | 本插件 pi-ai |
| 0.1.7-alpha.1 / 0.2.0-rc.1 | ^0.85.1 | 0.87.1 |
| 0.2.0-rc.2 | ^0.87.1 | 0.87.1 |
| 0.2.1-rc.2 / 0.2.1-rc.3 | ^1.1.0 | 0.87.1 |

插件自带并钉死 @earendil-works/pi-ai@0.87.1,不声明 peer。原因:profile 的 nodeLinker: hoisted + autoInstallPeers: false 会让 peer-only 解析到别的插件留在根目录的旧副本;0.82.1 的 estimateMessageTokens 没有 system 分支,请求会在发出前以 PI_AI_ERROR 崩掉。最低可运行代际是 0.87.0(MIN_PI_AI_VERSION),不是钉的版本。

跨代仍可用:provider 以纯对象跨过 dsh-llm-pi-ai 的边界,只按 id / stream / getModels 调用,没有 instanceof。设置页版本徽章显示插件实际加载的 pi-ai 版本,启动日志同时打印宿主那份(pi-ai 0.87.1 (host 0.87.1));代际不一致会给出 warn。

安装

dsh plugin --profile web add dsh-workbuddy-panel

重启 DSH 后,设置里出现 WorkBuddy2API,模型选择器里出现 WorkBuddy2API · CN 与 WorkBuddy2API · Global。

- 桌面应用:在 Settings → Plugins 里安装;那个 profile 归应用的插件管理器管,运行中的 CLI 改不动它。换 profile:dsh plugin --profile <profile> add dsh-workbuddy-panel。
- 首次启动:在 ~/.dsh/workbuddy2api-gateway/gateway/ 生成配置与数据目录;打开设置页「网关进程 → 服务端」点「下载服务端」,校验后落盘。默认监听 127.0.0.1:7863。
- 离线安装:从 Releases 下载对应平台的 .gz,解压到 ~/.dsh/workbuddy2api-gateway/server/<version>/<platform>/workbuddy2api,再点「重新校验」。
- 平台:darwin-arm64 / darwin-x64 / linux-x64 / linux-arm64 / win32-x64;其他平台会显示「当前平台没有构建」,不会静默失败。

开发

pnpm install
pnpm run check # build + typecheck + test,提交前必须全绿

pnpm run build # tsdown:ESM host(index + gateway)+ CJS client
pnpm run typecheck # tsconfig.json + tsconfig.client.json
pnpm run test # vitest

pnpm run server:manifest # 用 bin/workbuddy2api 生成 server.json
pnpm run server:install-local # 填充本地服务端缓存

- 目录地图、硬性约定与发版流程见 AGENTS.md。
- upstream/ 是只读快照;bin/workbuddy2api 只用于本地生成 manifest / 填充缓存,不进 npm 包。
- 服务端版本只在 server.json;面板版本只在 package.json,由 tsdown 注入设置页的版本徽章。

MIT License · 网关上游 workbuddy2api-panel(fork 自 Sliverkiss/workbuddy2api)· UI 参考 dsh-workbuddy-connect-functy 与 dsh-claude-style

上游仓库已停止维护,并禁止未授权的反代 / 转卖;使用前请自行确认所在环境的条款。
预览分享卡片长什么样 ↓functy23/dsh-workbuddy-panel
分享 · DeepSeek Harness Hub
functy23/dsh-workbuddy-panel

优化版 WorkBuddy2API 网关 + DSH 原生面板:UA、头族与设备指纹对齐官方 WorkBuddy…

回到顶部