Skip to main content

dsh-plugin-desktop/dsh-plugin-desktop

23Stars10Forks0Issues0Watchers

A desktop client for DeepSeek Harness that avoids token costs, offering a simple interface.

Evidence5/5methodologySourceInstallMaintenanceDSH versionSecurity scan
Machine-auditedInstall commandRepo verifieddsh-plugin topicLicenseREADMEAI wiki
Language
TypeScript
License
MIT
Branch
main
deepseekdeepseek-aideepseek-apideepseek-chatdeepseek-harnessdeepseek-harness-plugindeepseek-v4desktop-app

Install

cmdweb profile
$ dsh plugin --profile web add dsh-plugin-desktop

Run the command above in your terminal to install this plugin via the dsh CLI. You can switch Profile in the top-right corner. New to dsh? Read the beginner tutorial

Install via your agent

Install the DeepSeek Harness plugin hyqibot/DeepSeek-Harness-Token-Free/dsh-plugin-desktop for me: review the repository at https://github.com/hyqibot/DeepSeek-Harness-Token-Free first, then run the install command and verify the plugin loads successfully.

Paste this instruction to the DSH Web GUI assistant — it will install and verify for you.

一句话定位

把 DeepSeek Harness 的 Web UI 套上一层 Electron 原生壳,做成 DSH Desktop 桌面应用,同时给不愿消耗 Token 的用户接入网页版大模型的免费通道。

核心能力

  • 在 Electron 中以原生窗口 + 系统托盘的方式运行 DSH Web UI,托盘集成 profile 切换、模式切换、Channels 状态、Marketplace、Check for Updates 等原生菜单
  • 通过 Bot Token 接入 Telegram、Discord、飞书、微信四个 IM 渠道,扫码也能绑定微信,让手机也能远程派活
  • 在 LAN 内提供手机 PWA 远程控制台(默认端口 8787),手机扫码即可访问,配对码与 IM 渠道共用
  • 进程内 Zero-Token 网关:调用本地 loopback 把 DeepSeek / Claude / Gemini / ChatGPT / Doubao / Kimi / Qwen / GLM 等 10 个网页模型包装成 Anthropic Messages API,无需 API Key 即可使用
  • HYQi 社区配额模型:把内置社区 chat 模型与 Zero-Token 网关共用同一激活码,不消耗 API 配额
  • 内置精简插件市场:托盘 Marketplace 默认展示 3 项精选目录,可设置自定义 HTTPS 目录或临时 spec 一键安装;自动从 GitHub Releases 拉取 latest.json 提示更新

技术实现

  • 语言: TypeScript(Node + Electron Main 进程 + 浏览器 Renderer 进程双端)+ React(高级模式 UI)
  • 关键依赖: @deepseek-ai/dsh 0.1.0-rc.6 整族(cordis / web / agent / llm / settings / sessions 等 100+ 上游包)、electron 43.4.0(peerDependency)、内置 pnpm 11.7.0、qrcode
  • 架构模式: Cordis Host + Client 双面插件;以 cordis.patch.yml 在上游 bundle 后插入 10 个 Host row(desktop-shell、desktop-terminal、desktop-pnpm、desktop-profiles、desktop-updates、desktop-channels、desktop-mobile、desktop-zero-token、desktop-hyqi、desktop-marketplace)并调整 web-runtime 配置;客户端通过 dsh.client.inject 注入 @deepseek-ai/dsh-client-runtime 与 @deepseek-ai/dsh-client-ui-theme,按模式 marker 决定是否接管 root slot
  • 入口文件: dsh-plugin-desktop/src/main.ts(Electron 启动器)+ dsh-plugin-desktop/src/index.ts(Host 入口)+ dsh-plugin-desktop/src/client/index.ts(Renderer 入口)

适用场景

想在 macOS 或 Windows 上像普通应用一样用 DSH,不想每次敲命令行启动 Node 服务的人;同时也想让 Telegram 机器人或手机浏览器能远程给电脑里跑着的 Agent 派活的人;以及只想试用 DeepSeek/Claude/Gemini 等模型又不想立刻买 API Key 的个人用户。

前置依赖与兼容性

依赖最低版本说明
DSH0.1.0-rc.6(family)dsh-plugin-desktop/package.json:138-233 把全部 @deepseek-ai/dsh-* 依赖钉在 0.1.0-rc.6
Node.js^22.19.0 或 ≥24.0.0package.json:8-10 与 dsh-plugin-desktop/package.json:98-100 同时声明
Electron43.4.0dsh-plugin-desktop/package.json:242 作为 peerDependency;打包环境由 electron-builder 26.15.3 注入
平台macOS / Windows / Linux兼容模式跨平台;高级模式仅 macOS + Windows(cordis.patch.yml:10 把 desktop-terminal 在 Linux 上禁用,src/index.ts:111 拒绝在 Linux 启用 advanced)
原生模块electron / node-pty / koffi内置 prebuilt 二进制,Windows 打包使用 x64 Node-API prebuilt(README.zh.md:158-164)

安装方式

dsh plugin --profile web add github:hyqibot/DeepSeek-Harness-Token-Free/dsh-plugin-desktop

配置项

配置类型说明默认值
dsh-desktop.mode枚举(compatibility / advanced)选择桌面呈现模式;切换会触发一次有序重启compatibility
dsh-desktop-zero-token.enabled布尔是否启动 loopback 网关并接管 pi-ai 路由false
dsh-desktop-zero-token.gatewayUrl字符串本地网关 origin,注入 pi-ai 模型列表http://127.0.0.1:3002
dsh-desktop-zero-token.model字符串网关对外暴露的模型 iddeepseek-chat(10 个 Zero-Token 模型中的第一个)
dsh-desktop-zero-token.apiKey字符串官方 API Key;非空则跳过 Zero-Token 直接走官方空
dsh-desktop-zero-token.upstream枚举(anthropic / deepseek / chrome / copaw)没有 API Key 时选择 Zero-Token 上游通道anthropic
dsh-desktop-zero-token.activationCode字符串CoPaw Zero-Token 激活码;无 API Key 又想用网页模型需要填空
dsh-desktop-channels.telegramBotToken字符串Telegram Bot Token;优先于环境变量 DSH_TELEGRAM_BOT_TOKEN空
dsh-desktop-channels.discordBotToken字符串Discord Bot Token;优先于 DSH_DISCORD_BOT_TOKEN空
dsh-desktop-channels.feishuAppId / feishuAppSecret字符串飞书自建应用凭据;优先于 DSH_FEISHU_APP_ID / DSH_FEISHU_APP_SECRET空
dsh-desktop-channels.wechatBotToken字符串微信 iLink token;空则走 tray QR 扫码绑定空
dsh-desktop-mobile.enabled布尔是否在 LAN 上启动手机 PWA HTTP 服务true
dsh-desktop-mobile.port数字LAN 监听端口;0 表示随机端口8787
dsh-desktop-marketplace.catalogUrl字符串自定义 HTTPS 目录 JSON;空则用内置 3 项精选空
dsh-desktop-marketplace.installSpec字符串tray "Install spec from settings" 临时安装包空

配置项里所有"激活码""Bot Token"等密钥也会优先读取同名 DSH_* 环境变量,便于用 launch-environment 注入而不写到 settings 文件里。

常见问题

Q: 这个插件和官方 DSH CLI 的 dsh web 有什么区别?

A: 官方 dsh web 只能在浏览器里跑、需要手动起 Node 服务;这个插件把同一套上游 DSH 用原生窗口、托盘菜单、profile 自动管理、pnpm 集成、IM 远程控制和 Zero-Token 网关包成桌面应用。核心业务逻辑复用上游 Cordis 树,只是把外壳换成了 Electron。

Q: 一定要装 Zero-Token 才能用吗?

A: 不是。设置里填一个官方 API Key(DeepSeek、Anthropic、OpenAI 等)就能完整使用;Zero-Token 是可选的免费通道,让你不消耗 Token 也能调用 DeepSeek / Claude / Gemini / ChatGPT 等网页模型,需要先用官方 API Key 切换一次。

Q: 支持哪些操作系统?

A: 兼容模式支持 macOS / Windows / Linux;高级模式(带隐藏标题栏与 Mica/vibrancy 原生质感)只支持 macOS 和 Windows,Linux 拒绝并强制走兼容模式。社区版 Windows 安装包未签名、macOS DMG 未签名未公证,macOS 首次启动需要右键"打开"绕过 Gatekeeper。

Q: 怎么用 Telegram / 飞书 / 微信控制电脑里的 DSH?

A: 设置里填入对应 Bot Token(Telegram / Discord / Feishu App ID+Secret / WeChat iLink Token),托盘 Channels 状态会自动变为"polling / connected";微信不填 token 也可以从 tray 启动 QR 扫码绑定。所有渠道共享同一个配对码和会话队列,远程消息会进入本地 Agent Loop。

Q: 局域网手机 PWA 怎么用?

A: 默认开启并监听 8787 端口,手机连同一 Wi-Fi 后扫描托盘显示的配对二维码(含 bearer token)即可打开网页;可以加到手机主屏幕当 PWA 用。所有通信仍在 loopback / LAN 上,不会暴露到公网。

Q: 怎么装第三方插件?可以从市场装吗?

A: 托盘 Marketplace 默认带一个 3 项的精选目录(dsh-web-ui / dsh-TUI / DSH-better-sidebar),可以直接点 "Install xxx";也可以在 dsh-desktop-marketplace.catalogUrl 填入自己的 HTTPS 目录 JSON,或通过 dsh plugin --profile desktop add <spec> 走官方 CLI。[email protected] 不会被内置,因为 license notice 不全。

Q: 怎么切换"兼容"和"高级"两种界面模式?

A: 编辑 DSH home 的 settings.yaml,把 dsh-desktop.mode 改成 compatibility 或 advanced,或从托盘里点选。改完会触发一次有序重启,不会热切换;原生窗口材质、Loader row 与 slot ownership 都会重建。

Q: 切换 profile 后数据会丢吗?

A: 不会。官方 profile 共用同一份 DSH home 里的 sessions、settings 和 storage,切换不会复制或迁移记录;只有自定义 profile patch 主动重定向持久化目录时,数据才会落到新位置。

上手难度

进阶 — 默认配置已能跑通 Electron 壳与官方 API Key;接入 Zero-Token、IM 渠道、LAN PWA 等高级功能需要在 settings.yaml 或环境变量里分别填写激活码、Bot Token、App ID/Secret,每条能力彼此独立。

已知问题与限制

  • 添加或删除 profile bundle 后必须重启 DSH Desktop;Launcher 不监听 profile manifest,需要从托盘选择其他 profile 才会自动重启
  • 切换 compatibility / advanced 模式按设计必然重启应用,存活的 generation 不会热切换 Loader row、slot 所有权或原生材质
  • Linux 不支持高级模式,Linux 的托盘 terminal 命令也不会被组合
  • 社区版打包产物未签名 / 未公证:macOS DMG 未 notarize、Windows NSIS 安装包无 Authenticode publisher,首次启动需要右键打开或接受 SmartScreen 警告
  • Zero-Token gateway 的本地私有模块不在公开源码里:源码树跑 yarn dev 只能使用官方 API Key 或 IM 渠道,免费网页模型通道必须用 Release 安装包
  • [email protected] 不会被内置;只有重新审计过的版本同时消费 Desktop service、保留普通 DSH fallback 并补齐 license notice 后才会重新评估预装
  • 自动更新只验证下载容器、不验证 publisher 身份;macOS 仍要求用户从 DMG 替换应用,Windows 会运行已下载的未签名安装器
  • 共享 carrier 用 loopback HTTP 与 WebSocket 而非 Electron IPC;替换传输需要上游 DSH 提供 transport 扩展点
  • 项目固定使用 DSH 0.1.0-rc.6 family,相邻的 deepseek-harness/ 源码 checkout 早于该版本;测试验证的是已发布包接口而非上游源码

Read the usage guide →

Install steps, key points, FAQ and compatibility for this plugin — auto-derived from indexed fields.

Listing badge

Listed on deepseek-plugin.org
[![Listed on deepseek-plugin.org](https://img.shields.io/badge/listed_on-deepseek--plugin.org-007EC6)](https://deepseek-plugin.org/plugins/hyqibot/DeepSeek-Harness-Token-Free/dsh-plugin-desktop)

Paste this markdown into your GitHub README to link back to this listing. The badge only states the listing — not a security endorsement.

← Back to plugin directory