优化版 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-panelnpm 源 · dsh-workbuddy-panel 的发布者账号已校验与本仓库一致
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 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🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
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,内核可独立更新。
最近更新
在 GitHub 查看全部 →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 上游仓库已停止维护,并禁止未授权的反代 / 转卖;使用前请自行确认所在环境的条款。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
functy23/dsh-workbuddy-panel
优化版 WorkBuddy2API 网关 + DSH 原生面板:UA、头族与设备指纹对齐官方 WorkBuddy…
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,085已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,109已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,438已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,279已汉化DSH
70.8
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2