桌面启动器,让多个 DeepSeek Harness DSH 版本和实例并排运行。
54.3/100
综合分
70
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/20 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add dsh-plugins/dsh-launcher该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · chat
装得上吗
npm 包存在但缺 main/exports/bin 入口声明,源码安装也可能起不来
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 15 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-launcher @ 0.3.5
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/1 07:00:57
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件
查看扫描证据(共 28 处,展示前 28 条)
- 读取本地文件ci/bump-version.mjs:30
const current = JSON.parse(readFileSync('package.json', 'utf8')).version - 读取本地文件ci/bump-version.mjs:37
const doc = JSON.parse(readFileSync(path, 'utf8')) - 写入本地文件ci/bump-version.mjs:39
writeFileSync(path, `${JSON.stringify(doc, null, 2)}\n`) - 读取本地文件ci/bump-version.mjs:43
const toml = readFileSync(tomlPath, 'utf8') - 写入本地文件ci/bump-version.mjs:49
writeFileSync(tomlPath, toml.replace(tomlVersionRe, `version = "${next}"`)) - 读取本地文件ci/bump-version.mjs:57
const lock = readFileSync(lockPath, 'utf8') - 写入本地文件ci/bump-version.mjs:63
writeFileSync(lockPath, lock.replace(blockRe, `$1${next}"`)) - 写入本地文件ci/bump-version.test.mjs:23
if (p.includes('/')) mkdirSync(parent, { recursive: true }) - 写入本地文件ci/bump-version.test.mjs:24
writeFileSync(full, content) - 执行外部命令来自配置/变量ci/bump-version.test.mjs:26
const res = spawnSync(process.execPath, [join(process.cwd(), 'ci', 'bump-version.mjs'), tag], { - 读取本地文件ci/bump-version.test.mjs:34
contents[p] = readFileSync(join(dir, p), 'utf8') - 删除本地文件递归ci/bump-version.test.mjs:36
rmSync(dir, { recursive: true, force: true }) - 写入本地文件ci/bump-version.test.mjs:86
if (p.includes('/')) mkdirSync(parent, { recursive: true }) - 写入本地文件ci/bump-version.test.mjs:87
writeFileSync(full, content) - 执行外部命令来自配置/变量ci/bump-version.test.mjs:89
const res = spawnSync(process.execPath, [join(process.cwd(), 'ci', 'bump-version.mjs'), 'v0.2.4'], { - 读取本地文件ci/bump-version.test.mjs:95
assert.match(readFileSync(join(dir, 'package.json'), 'utf8'), /"version": "0 2 5"/) - 删除本地文件递归ci/bump-version.test.mjs:96
rmSync(dir, { recursive: true, force: true }) - 读取本地文件ci/check-versions.mjs:5
const pkgVersion = JSON.parse(readFileSync('package.json', 'utf8')).version - 读取本地文件ci/check-versions.mjs:6
const cargoVersion = readFileSync('src-tauri/Cargo.toml', 'utf8').match(/^version = "([^"]+)"/m)?.[1] - 读取本地文件ci/check-versions.mjs:7
const tauriVersion = JSON.parse(readFileSync('src-tauri/tauri.conf.json', 'utf8')).version - 读取本地文件ci/market-fetch.test.mjs:73
const messages = JSON.parse(await readFile(new URL('../src/locales/zh-CN.json', import.meta.url), 'utf8')) - 读取本地文件ci/release-notes-render.mjs:89
? readFileSync(commitsFile, 'utf8').split('\n').map((s) => s.trim()).filter(Boolean) - 读取本地文件ci/set-version.mjs:16
const doc = JSON.parse(readFileSync(path, 'utf8')) - 写入本地文件ci/set-version.mjs:18
writeFileSync(path, `${JSON.stringify(doc, null, 2)}\n`) - 读取本地文件ci/set-version.mjs:27
const toml = readFileSync(tomlPath, 'utf8') - 写入本地文件ci/set-version.mjs:33
writeFileSync(tomlPath, toml.replace(tomlVersionRe, `version = "${version}"`)) - 读取本地文件ci/set-version.mjs:44
const lock = readFileSync(lockPath, 'utf8') - 写入本地文件ci/set-version.mjs:50
writeFileSync(lockPath, lock.replace(blockRe, `$1${version}"`))
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
1 张 · 点击查看大图功能亮点
- 多版本并排运行
- 多实例并排运行
- 桌面启动器
并排运行多个 DeepSeek Harness(DSH)版本和实例的桌面启动器。
README
由 DeepSeek 最新模型翻译生成DSH Launcher
桌面启动器,让多个 DeepSeek Harness (DSH) 版本和实例并排运行。
Tauri 2 + Vue 3 + TypeScript + Sass + vue-router + vue-i18n + Arco Design Vue。
预览
Preview
功能
- 多版本安装:查询 npm registry,把多个 @deepseek-ai/dsh 版本装进互相隔离的目录,彼此永不干扰。
- 多实例管理:每个版本可以建多个实例,各自拥有独立的名称、配置档和运行时环境变量。
- 三种 DSH_HOME 模式:
- 复用/共享已有的 DSH_HOME;
- 自动采用用户默认的 ~/.dsh;
- 为每个实例单独创建 DSH_HOME(自动在应用数据目录下创建并注册)。
- 一键启动:在首页选好实例和配置档即可启动;启动器解析 dsh web 打印的 URL,在专用 webview 窗口里打开 DSH Web GUI。
- 环境变量覆盖:在实例设置页增删运行时环境变量,启动时注入子进程(DSH_HOME 是保留项,始终由启动器按所选 DSH_HOME 注入)。
展开完整文档(README 剩余 1 节)
DSH Launcher 桌面启动器,让多个 DeepSeek Harness (DSH) 版本和实例并排运行。 Tauri 2 + Vue 3 + TypeScript + Sass + vue-router + vue-i18n + Arco Design Vue。 预览 Preview 功能 - 多版本安装:查询 npm registry,把多个 @deepseek-ai/dsh 版本装进互相隔离的目录,彼此永不干扰。 - 多实例管理:每个版本可以建多个实例,各自拥有独立的名称、配置档和运行时环境变量。 - 三种 DSH_HOME 模式: - 复用/共享已有的 DSH_HOME; - 自动采用用户默认的 ~/.dsh; - 为每个实例单独创建 DSH_HOME(自动在应用数据目录下创建并注册)。 - 一键启动:在首页选好实例和配置档即可启动;启动器解析 dsh web 打印的 URL,在专用 webview 窗口里打开 DSH Web GUI。 - 环境变量覆盖:在实例设置页增删运行时环境变量,启动时注入子进程(DSH_HOME 是保留项,始终由启动器按所选 DSH_HOME 注入)。 - 插件市场:浏览发布到 DSH plugin market 的插件(https://dsh-plug.in/api/plugins.json),按名称/描述搜索,并安装到任意实例的配置档: - 三个版本通道,用彩色图标字母区分 —— stable(releases / npm latest,绿色 R)、beta(pre-releases / npm next,黄色 B)和 alpha(GitHub 上最新 commit,红色 A); - 安装流程是一个向导:选插件 → 选版本通道/版本 → 选实例 → 选配置档 → 创建任务 → 开始安装; - 自动放行依赖构建脚本(onlyBuiltDependencies: ['']),并把装好的插件登记到配置档的 package.json(dsh.profile.bundles + dependencies),非 bundle 插件还会在 cordis.patch.yml 里插入一行。 - 按配置档管理插件(实例设置 → Plugins 标签页):按配置档筛选,查看其中已安装的插件,单独启用/禁用,也可多选批量启用/禁用。核心 @deepseek-ai/ 包会被隐藏。 - 系统托盘: - 左键点击启动器托盘:打开并聚焦启动器窗口; - 右键菜单:「Running profiles」子菜单为每个运行中的实例提供 Open / Stop,外加「Open launcher / Quit launcher」。 - 退出启动器会终止所有实例进程,不留孤儿进程。 - 每个运行中的实例一个托盘图标(issue #72,可在设置里关闭): - 图标用实例自己的自定义图标,没有则回退到启动器图标; - 悬停时显示 <instance> · <profile> · running (N active conversations);数量来自实例的 DSH 会话索引,每约 15 秒刷新一次; - 左键单击打开实例的 Web GUI(TUI 配置档则打开其终端窗口),窗口已打开时将其置前; - 右键单击提供「Open instance」/「Stop instance」。 - 关闭到托盘(可在设置中禁用)。 - 登录时启动(设置开关,通过 autostart 插件真实注册)。 - i18n:简体中文 / English;JSON 语言文件会被自动发现、热重载,并由 @intlify/unplugin-vue-i18n 通过 Vite 预编译。 - WSL2 实例(实验性):在 WSL2 发行版内创建 DSH 实例——Node.js / pnpm / 固定版本会自动安装到发行版内,实例的 DSH_HOME 位于发行版的 ~/.dsh-launcher/homes 下。创建完成后,HOME 的用法与本地实例一致(配置档增删改查、插件安装/启用/禁用/卸载、技能、MCP、图标、日志、整合包导出/导入、内嵌终端);文件通过 \\wsl$\ UNC 共享访问,已停止的发行版会自动启动。 界面 - Home:左侧面板(实例状态 → 关联实例/配置档下拉框 → 大号启动按钮 → 实例列表 / 实例设置);右侧预留给新闻区。 - Download:侧边栏含「Create instance / Download plugins」;创建页按 stable/prerelease 分组展示可安装版本;点击某个版本打开命名页(实例名、DSH_HOME 选择、底部的「Start download」)。插件页即市场;三步向导(插件 → 版本通道 → 实例/配置档)创建安装任务。 - Instances:名称、版本、DSH_HOME、配置档、运行状态与 URL、编辑/删除。 - Instance settings → Plugins:按配置档筛选、启用/禁用插件、多选批量启用/禁用(@deepseek-ai/* 核心插件隐藏)。 - Settings:五个分区——Startup(启动行为、数据目录、DSH_HOME 管理、环境导入、日志)、Personalization(语言、主题、新闻源、启动器图标)、Network(代理)、Resources(SKILL 仓库、插件目录源)和 About(版本、更新通道与检查、仓库 / issues / releases 链接)。 WSL 实例的插件与整合包依赖安装会在发行版内运行 pnpm(拉取 Linux 平台二进制),SKILL 仓库安装则用发行版自带的 git 克隆;从 Windows 侧通过 UNC 读写文件要求发行版处于运行状态,启动器会自动将其启动。 已知限制:WSL HOME 暂不支持存储重定向(storage 标签页)(需要在发行版内创建并验证符号链接);该页面会显示能力提示,而不是报错。 开发 前置条件:Node ≥ 20、pnpm、stable Rust(MSVC 工具链)、WebView2。 pnpm install pnpm tauri dev # dev mode (Vite frontend + debug backend) pnpm tauri build # bundle (produces exe / msi / nsis installers) 在浏览器里预览前端,不启动后端(mock 层由 localStorage 支撑): pnpm dev # open http://localhost:1420 运行时数据 - 启动器配置与数据:%APPDATA%\in.dsh-plug.dsh-launcher\ - config.json:DSH_HOMEs / versions / instances / settings - versions/<version>/:每个版本的独立安装目录 - homes/<instance name>/:专用 DSH_HOME(选用时) - logs/<instance id>.log:实例运行时日志 架构 - src/:Vue 3 前端(页面、store、API 封装、i18n) - src/api/index.ts:统一 API 层 —— Tauri 下走 invoke,普通浏览器里走 localStorage mock - src-tauri/src/ - config.rs:配置模型与原子持久化 - commands.rs:全部 Tauri 命令(CRUD / 版本安装 / 实例启停 / 设置) - plugins.rs:插件市场 —— 拉取目录、按渠道取版本(npm dist-tags + GitHub commits)、安装任务、profile manifest 注册与启用/停用 - tasks.rs:后台任务系统(create-instance / install-plugin),带进度与日志事件 - process.rs:实例进程管理(spawn / kill / URL 解析 / 环境变量注入 / 日志) - tray.rs:系统托盘与动态菜单 - windows.rs:实例 webview 窗口管理 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
dsh-plugins/dsh-launcher
桌面启动器,让多个 DeepSeek Harness DSH 版本和实例并排运行。
相关插件 · 对话 / 记忆
上下文中枢oceanbase/powercontext
上下文跟着工作走 —— 跨会话、跨智能体、跨人。
★ 1,487已汉化DSH
73
智能体记忆库plastic-labs/honcho
Honcho 是记忆基础设施,用来构建有状态的智能体。这些智能体能理解不断变化的人、智能体、群组、项目和想法。
★ 7,894已汉化DSH
71.7
长程智能体控制面loopx-project/loopx
给 Agent 一个目标,让工作持续向前。
★ 6,358已汉化DSH
71.3
智能体上下文数据库volcengine/OpenViking
给 AI 智能体用的上下文数据库
★ 41,379已汉化DSH
71.3
长效机器人团队Fei2411/DS-Bot
DS Bot 是一个基于 DeepSeek Harness简称 dsh的 bot 插件,插件将 dsh 改造为 bot…
★ 5,084已汉化DSH
71.1
可携带记忆层EverMind-AI/EverOS
为什么选择 EverOS
★ 13,778已汉化DSH
71.1