DeepSeek Harness 插件

dsh-desktop-shell

Desktop launcher shell for DeepSeek Harness (dsh): a tray-resident Electron wrapper that starts or reuses the local dsh web server and opens it in a native window(英文原文)

跳到安装方式

来源信息

GitHub 仓库
ikashana/dsh-desktop-shell
最近更新
2026年8月14日
分类
工具与能力
GitHub stars
1
载体类型
plugin
目录证据
上游声明已找到 dsh.bundle
证据路径
package.json#dsh.bundle
核对版本
0.1.0-rc.8
上游核对日期
2026-08-20

该证据由上游目录提供。本站没有安装、运行或安全审核这个插件。

安装

默认先复制一段 Prompt,让 Agent 读 GitHub 仓库和源码;需要自己装时再切到命令。

复制这段 Prompt,发给 DSH、Codex 或其他 Agent,让它先读 GitHub 仓库和源码。

请先不要安装或执行任何命令。阅读这个插件的 GitHub 仓库、README 和关键源码,然后用清楚、直接的方式回答以下问题,帮助我判断它是否适合我的需求:

1. 这个插件是什么,解决什么问题;
2. 适合哪些用户和典型使用场景;
3. 安装后如何使用,并给出一个最小使用示例;
4. 有哪些已知限制,以及隐私、安全、兼容性或维护风险;
5. 给出“推荐 / 有条件推荐 / 不推荐”的明确建议和理由。

请区分仓库明确说明、根据源码推断和未知信息。证据不足时请明确说明,不要猜测或照抄 README。

GitHub:https://github.com/ikashana/dsh-desktop-shell
插件名:dsh-desktop-shell
作者:ikashana

检查来源文件

安装前先看这个插件目录里的 README 和其他文件。

文件资源管理器4 个文件
README.zh.md来源说明 · 只读预览
README 语言

dsh-desktop-shell

DeepSeek Harness(dsh)的桌面快捷启动端:一个轻量 Electron 壳,给 dsh web profile 一个原生窗口和系统托盘常驻。

English

它做什么

双击启动 → 检查 dsh web 是否已在监听(默认 http://127.0.0.1:3080);没跑就自动拉起;然后用原生窗口打开 web UI。

  • 托盘驻留 —— 关窗不退出,隐藏到系统托盘;托盘菜单:打开主窗口 / 退出。
  • 单实例 —— 重复启动会聚焦已有窗口。
  • 所有权分明 —— 壳自己拉起的 web 在退出时一并关闭;已存在的(你自己终端里跑的、别的工具拉起的)不动。
  • 全配置化 —— dsh 启动命令、工作目录、额外环境变量、端口、窗口标题都在 config.json 里;仓库里没有任何写死的本机路径或 API 端点。

安装 dsh 侧(bundle 插件)

本仓库是一个 dsh profile bundlepackage.json 声明了 dsh.bundle.patch,装进 web profile 后会自动激活一个 patch 层——把 web 服务器锁定在本机回环 127.0.0.1:3080,并挂一个小型 glue 插件(打印就绪行;若服务器绑定超出回环会告警)。

从 git 安装:

dsh plugin --profile web add github:ikashana/dsh-desktop-shell

从 npm 安装(发布后):

dsh plugin --profile web add dsh-desktop-shell

之后照常启动 dsh --profile web 即可——或者直接让下面的壳帮你拉起。

安装壳(桌面应用)

前置:Node.js ≥ 18(安装时 Electron 会自行下载)。

git clone https://github.com/ikashana/dsh-desktop-shell.git
cd dsh-desktop-shell
npm install
cp config.json.example config.json   # 按你的环境修改
npm start

唯一必须改的是 dshCommand(以及 dsh 不在旁边时的 cwd):指向你的 dsh 命令,或源码安装时指向 checkout 的 node + 入口,例如:

{
  "dshCommand": ["C:/path/to/node.exe", "--import", "tsx/esm", "apps/cli/src/bin.ts", "--profile", "web"],
  "cwd": "C:/path/to/deepseek-harness"
}

Windows 上建议写 node.exe 的绝对路径;裸 dsh 会走 .cmd shim,child_process 因 CVE-2024-27980 加固默认拒绝无 shell 拉起(壳也兼容该情形,但显式可执行文件最稳)。

config.json 字段

字段默认含义
port3080web 服务器监听端口。改动时记得与 bundle patch 里的 webserver.port 保持一致。
dshCommand["dsh", "--profile", "web"]启动 dsh web 的命令 argv。
cwd壳目录dshCommand 的工作目录。
env{}注入 web 进程的额外环境变量(例如你的 dsh 安装从环境变量读取的 provider 端点)。
titledsh Desktop窗口与托盘标题。

桌面快捷方式(Windows)

$WshShell = New-Object -ComObject WScript.Shell
$lnk = $WshShell.CreateShortcut("$HOME\Desktop\dsh Desktop.lnk")
$lnk.TargetPath = "C:\path\to\dsh-desktop-shell\node_modules\electron\dist\electron.exe"
$lnk.Arguments = "`"C:\path\to\dsh-desktop-shell`""
$lnk.WorkingDirectory = "C:\path\to\dsh-desktop-shell"
$lnk.IconLocation = "C:\path\to\dsh-desktop-shell\assets\icon.ico"
$lnk.Description = "dsh Desktop · DeepSeek Harness 桌面壳"
$lnk.Save()

日志

壳把 shell.logweb.log 写进 Electron userData 目录(Windows:%APPDATA%\dsh-desktop-shell\)——web 起不来时先看这两个文件。

平台说明

在 Windows 上开发与测试。托盘行为跨平台;进程树回收在 Windows 上用 taskkill,其它平台回退到 kill()。窗口图标由 dsh favicon 渲染而来(assets/favicon.svg,MIT)——想换外观就改 assets/favicon.svg 后运行 node_modules\electron\dist\electron.exe make-icon.js 重新生成。

目录结构

├── main.js            # Electron 主进程:窗口 / 托盘 / 单实例 / web 生命周期
├── lib/index.js       # dsh bundle glue 插件(回环校验 + 就绪行)
├── cordis.patch.yml   # dsh profile patch 层(回环锁定的 webserver + glue 行)
├── config.json.example
├── make-icon.js       # 图标渲染脚本(favicon.svg → PNG)
└── assets/            # 图标 + favicon 源文件

许可证

MIT。assets/favicon.svg 复制自 MIT 许可的 deepseek-harness 仓库。