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

桌面托盘客户端 G-pledge/dsh-desktop

DeepSeek Harnessv0.2.0
G-pledge55 天前有提交已提供中文文档扫描:含敏感能力

独立窗口运行本地界面,关窗自动收进系统托盘

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

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

自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add G-pledge/dsh-desktop
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · desktop
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L5 · 运行时冒烟等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 55 天前
档位由哪些信号合成

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

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

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✓npm 包dsh-desktop @ 0.2.0
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/7 14:40:46

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 40 处,展示前 31 条)
  • 读取本地文件
    src/main.js:85
    while (fs.existsSync(dest)) {
  • 读取本地文件
    src/main.js:438
    raw = JSON.parse(fs.readFileSync(file, "utf8").replace(/^ FEFF/, ""));
  • 写入本地文件
    src/main.js:442
    fs.writeFileSync(file, JSON.stringify({ ...raw, ...patch }, null, 2) + "\n");
  • 写入本地文件
    src/main.js:447
    fs.mkdirSync(root, { recursive: true });
  • 读取本地文件
    src/main.js:452
    if (!fs.existsSync(file)) {
  • 读取本地文件
    src/main.js:453
    const src = fs.existsSync(example) ? example : bundled;
  • 读取本地文件
    src/main.js:454
    if (fs.existsSync(src)) fs.copyFileSync(src, file);
  • 写入本地文件
    src/main.js:455
    else fs.writeFileSync(file, JSON.stringify(defaults(), null, 2) + "\n");
  • 读取本地文件
    src/main.js:460
    raw = JSON.parse(fs.readFileSync(file, "utf8").replace(/^ FEFF/, ""));
  • 发起网络请求
    src/main.js:549
    const req = http.get(
  • 执行外部命令固定命令
    src/main.js:586
    execFileSync(
  • 执行外部命令固定命令
    src/main.js:598
    execFileSync("pkill", ["-f", "dsh/lib/bin.js"], { timeout: 5000, stdio: "ignore" });
  • 执行外部命令固定命令
    src/main.js:607
    execFileSync("taskkill", ["/pid", String(proc.pid), "/T", "/F"], {
  • 执行外部命令固定命令
    src/main.js:615
    execFileSync("sh", ["-c", "pkill -TERM -P " + proc.pid + "; kill -TERM " + proc.pid], {
  • 写入本地文件
    src/main.js:782
    fs.mkdirSync(cfg.dshHome, { recursive: true });
  • 写入本地文件
    src/main.js:783
    fs.mkdirSync(cfg.npmCache, { recursive: true });
  • 执行外部命令来自配置/变量
    src/main.js:792
    child = spawn(nodePath, args, {
  • 读取本地文件
    src/dsh-install.js:23
    if (fs.existsSync(pinned)) return pinned;
  • 读取本地文件
    src/dsh-install.js:26
    if (!fs.existsSync(npxRoot)) return "";
  • 读取本地文件
    src/dsh-install.js:28
    for (const name of fs.readdirSync(npxRoot)) {
  • 读取本地文件
    src/dsh-install.js:31
    if (!fs.existsSync(pkg) || !fs.existsSync(bin)) continue;
  • 读取本地文件
    src/dsh-install.js:33
    if (JSON.parse(fs.readFileSync(pkg, "utf8")).version === version) return bin;
  • 写入本地文件
    src/dsh-install.js:88
    fs.mkdirSync(dir, { recursive: true });
  • 写入本地文件
    src/dsh-install.js:89
    fs.writeFileSync(
  • 执行外部命令来自配置/变量
    src/dsh-install.js:106
    const proc = spawn(npm.cmd, args, {
  • 读取本地文件
    src/dsh-install.js:134
    if (code !== 0 || !fs.existsSync(binIn(dir))) {
  • 读取本地文件
    src/profile-compat.js:12
    return JSON.parse(fs.readFileSync(file, "utf8").replace(/^ FEFF/, ""));
  • 写入本地文件
    src/profile-compat.js:16
    fs.writeFileSync(file, JSON.stringify(data, null, 2) + "\n");
  • 读取本地文件
    src/profile-compat.js:33
    if (!fs.existsSync(file)) return [];
  • 读取本地文件
    src/profile-compat.js:44
    if (!fs.existsSync(file)) return [];
  • 读取本地文件
    src/profile-compat.js:67
    if (!fs.existsSync(file)) return;
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

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

给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 独立窗口运行本地界面
  • 关窗自动收进托盘

README

由 DeepSeek 最新模型翻译生成
DeepSeek Harness 桌面版(Electron) DeepSeek Harness(dsh)的桌面外壳。独立窗口打开本地界面,关窗口进托盘。支持 Windows、macOS、Ubuntu(deb)和 Arch(pacman)。 需要 Node.js 22.19+ / 24+,以及 DeepSeek API Key。 安装包在 Releases:Windows 下 zip(解压后直接开 exe),Mac 下 dmg,Ubuntu 下 deb,Arch 下 pacman。推进 main 后会自动打包并挂上去。 npm install npm start Windows 本地打包: npm run pack 跑 dist\启动.bat,或者直接开 dist\win-unpacked\DeepSeek Harness.exe。Release 里的 Windows zip 解压后直接运行 exe。 Mac 本地打包(要在 Mac 上): npm run pack:mac Mac 安装包没签名,第一次打开要在访达里右键图标选「打开」。 Linux 本地打包(要在 Linux 上): npm run pack:linux 产物在 dist/:Ubuntu 用 .deb,Arch 用 .pacman。
展开完整文档(README 剩余 1 节)
DeepSeek Harness 桌面版(Electron)

DeepSeek Harness(dsh)的桌面外壳。独立窗口打开本地界面,关窗口进托盘。支持 Windows、macOS、Ubuntu(deb)和 Arch(pacman)。

需要 Node.js 22.19+ / 24+,以及 DeepSeek API Key。

安装包在 Releases:Windows 下 zip(解压后直接开 exe),Mac 下 dmg,Ubuntu 下 deb,Arch 下 pacman。推进 main 后会自动打包并挂上去。

npm install
npm start

Windows 本地打包:

npm run pack

跑 dist\启动.bat,或者直接开 dist\win-unpacked\DeepSeek Harness.exe。Release 里的 Windows zip 解压后直接运行 exe。

Mac 本地打包(要在 Mac 上):

npm run pack:mac

Mac 安装包没签名,第一次打开要在访达里右键图标选「打开」。

Linux 本地打包(要在 Linux 上):

npm run pack:linux

产物在 dist/:Ubuntu 用 .deb,Arch 用 .pacman。

sudo apt install ./dist/DeepSeek-Harness--linux-x64.deb
sudo pacman -U dist/DeepSeek-Harness--linux-x64.pacman

包没签名,安装时按提示确认即可。菜单里的命令名是 deepseek-harness。

config.json 第一次会自动生成。Windows Release 解压后 exe 旁边就有一份,可直接改。Mac 放在 ~/Library/Application Support/DeepSeek Harness/。Linux 放在 ~/.config/DeepSeek Harness/。仓库里不要提交你自己的 config.json。

{
"dshHome": "~/.dsh",
"npmCache": "",
"nodeDir": "",
"host": "127.0.0.1",
"port": 0,
"dshVersion": "0.1.1-rc.2"
}

nodeDir / npmCache 空着就自动找。port 填 0 表示随便占一个。dshVersion 是钉死的 dsh 版本,启动不会每次去追最新。托盘右键可以「检查更新」,有新版本再点更新。

本机打包若不想每次把数据目录打回默认值,可在仓库根放一份 config.user.json(不要提交),npm run pack 会在 exe 旁边缺配置时用它。

点 × 会问你:最小化到托盘,还是退出。托盘右键也可以退出。Mac 也可用菜单栏 DeepSeek Harness → 退出,或 Command+Q。
预览分享卡片长什么样 ↓G-pledge/dsh-desktop
分享 · DeepSeek Harness Hub
G-pledge/dsh-desktop

独立窗口运行本地界面,关窗自动收进系统托盘

这是你的仓库?认领条目

回到顶部