最全面的DeepSeek Harness🐋启动器 首创多实例管理中枢 | 多开并行 | 整合包下载 | 安全保护 |…
63.5/100
综合分
248
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/9/19 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add MarcoG-h/DSH-Launcher该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · desktop
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 45 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包dsh-launcher @ 0.3.5
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/29 15:35:49
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 168 处,展示前 104 条)
- 读取本地文件src/main/balance.ts:24
const raw = readFileSync(join(instanceDshHome(getActiveInstance()), '.credentials.yaml'), 'utf8') - 发起网络请求src/main/balance.ts:41
const res = await net.fetch(DEEPSEEK_BALANCE_URL, { headers: { Authorization: `Bearer ${key}` } }) - 执行外部命令固定命令src/main/browser-guard.ts:22
const ps = spawn( - 执行外部命令固定命令src/main/browser-guard.ts:37
spawn('taskkill', ['/F', '/T', '/PID', m[1]], { windowsHide: true, stdio: 'ignore' }).unref() - 读取本地文件src/main/config.ts:10
return candidates.find(c => c && existsSync(resolve(c))) ?? candidates.find(c => c) ?? '' - 读取本地文件src/main/config.ts:20
installMode: existsSync(harnessRepo) ? 'source' : 'bundled', - 写入本地文件src/main/config.ts:123
mkdirSync(dir, { recursive: true }) - 写入本地文件src/main/config.ts:124
writeFileSync(file(), JSON.stringify(cfg, null, 2), 'utf8') - 读取本地文件src/main/config.ts:133
const raw = readFileSync(file(), 'utf8') - 发起网络请求src/main/dsh-status.ts:178
const res = await net.fetch(`http://127.0.0.1:${port}/api/host.describe`, { - 发起网络请求src/main/dsh-status.ts:197
const res = await net.fetch(`http://127.0.0.1:${port}/api/session.list`, { - 读取本地文件src/main/fs-safe.ts:56
if (!lstatSync(path).isSymbolicLink()) return 'not-link' - 删除本地文件src/main/fs-safe.ts:57
unlinkSync(path) - 读取本地文件src/main/fs-safe.ts:71
entries = readdirSync(dir, { withFileTypes: true }) as Dirent[] - 读取本地文件src/main/fs-safe.ts:83
const st = lstatSync(p) - 删除本地文件src/main/fs-safe.ts:92
unlinkSync(p) - 读取本地文件src/main/fs-safe.ts:109
if (!existsSync(dir)) return { ok: true } - 读取本地文件src/main/fs-safe.ts:112
if (link === 'ok' || (link === 'error' && !existsSync(dir))) return { ok: true } - 删除本地文件递归src/main/fs-safe.ts:120
await rm(dir, { recursive: true, force: true }) - 读取本地文件src/main/fs-safe.ts:125
if (!existsSync(dir)) return { ok: true } - 删除本地文件递归src/main/fs-safe.ts:142
rmSync(dir, { recursive: true, force: true, maxRetries: 3, retryDelay: 200 }) - 删除本地文件递归src/main/fs-safe.ts:148
rmSync(dir, { recursive: true, force: true }) - 读取本地文件src/main/harness.ts:225
return existsSync(abs) ? abs : a - 读取本地文件src/main/harness.ts:234
if (!existsSync(p)) return null - 读取本地文件src/main/harness.ts:235
return String((JSON.parse(readFileSync(p, 'utf8')) as { version?: unknown }).version ?? '') - 读取本地文件src/main/harness.ts:321
if (inst.dshHome != null && !existsSync(home)) { - 读取本地文件src/main/harness.ts:340
if (!existsSync(profileDirPath)) { - 读取本地文件src/main/harness.ts:363
if (cfg.installMode === 'source' && (!plan.cwd || !existsSync(plan.cwd))) { - 执行外部命令来自配置/变量src/main/harness.ts:408
proc = spawn(plan.cmd, plan.args, { - 执行外部命令固定命令src/main/harness.ts:581
const proc = spawn('netstat', ['-ano', '-p', 'tcp'], { windowsHide: true, stdio: ['ignore', 'pipe', 'ignore'] }) - 执行外部命令固定命令src/main/harness.ts:601
const proc = spawn('powershell', ['-NoProfile', '-NonInteractive', '-Command', `(Get-CimInstance Win32_Process -Filter "ProcessId=${pid}").CommandLine - 执行外部命令固定命令src/main/harness.ts:621
const k = spawn('taskkill', ['/F', '/T', '/PID', String(pid)], { windowsHide: true, stdio: 'ignore' }) - 执行外部命令固定命令src/main/harness.ts:733
const kill = spawn('taskkill', ['/F', '/T', '/PID', String(pid)], { windowsHide: true, stdio: 'ignore' }) - 执行外部命令固定命令src/main/harness.ts:800
spawn('taskkill', ['/F', '/T', '/PID', String(proc.pid)], { windowsHide: true, stdio: 'ignore' }).unref() - 读取本地文件src/main/index.ts:37
if (existsSync(p)) return p - 写入本地文件src/main/index.ts:129
mkdirSync(dir, { recursive: true }) - 读取本地文件src/main/instances.ts:68
if (!existsSync(file)) return false - 读取本地文件src/main/instances.ts:71
raw = readFileSync(file, 'utf8') - 写入本地文件src/main/instances.ts:77
writeFileSync(file, raw.slice(1), 'utf8') - 写入本地文件src/main/instances.ts:96
mkdirSync(home, { recursive: true }) - 读取本地文件src/main/instances.ts:126
for (let n = 2; existsSync(profileDir(home, name)); n++) name = `${base}-${n}` - 写入本地文件src/main/instances.ts:137
mkdirSync(dir, { recursive: true }) - 读取本地文件src/main/instances.ts:139
if (!existsSync(manifestPath)) { - 写入本地文件src/main/instances.ts:141
writeFileSync(manifestPath, JSON.stringify(manifest, undefined, 2) + '\n') - 读取本地文件src/main/instances.ts:144
if (!existsSync(patchPath)) writeFileSync(patchPath, PROFILE_PATCH_TEMPLATE) - 写入本地文件src/main/instances.ts:144
if (!existsSync(patchPath)) writeFileSync(patchPath, PROFILE_PATCH_TEMPLATE) - 读取本地文件src/main/instances.ts:146
if (!existsSync(workspacePath)) writeFileSync(workspacePath, PROFILE_PNPM_WORKSPACE) - 写入本地文件src/main/instances.ts:146
if (!existsSync(workspacePath)) writeFileSync(workspacePath, PROFILE_PNPM_WORKSPACE) - 发起网络请求src/main/market-1024.ts:87
res = await net.fetch(`${API_B}/api/v2/plugins?${params}`) - 发起网络请求src/main/market-dshfind.ts:45
const res = await net.fetch(`${API_C}/api/plugins-data`) - 发起网络请求src/main/market.ts:30
const res = await net.fetch(`${API}${path}`, { - 发起网络请求src/main/market.ts:145
res = await net.fetch(`${API}/repos/${encodeURIComponent(o)}/${encodeURIComponent(r)}/readme`, { - 读取本地文件src/main/plugins.ts:21
const raw = readFileSync(file, 'utf8').replace(/^ FEFF/, '') - 读取本地文件src/main/plugins.ts:66
const parsed = yaml.load(readFileSync(file, 'utf8'), { schema: ENTRY_LIST_SCHEMA }) - 写入本地文件src/main/plugins.ts:79
writeFileSync(file, header + yaml.dump(patches, { schema: ENTRY_LIST_SCHEMA, noRefs: true }) + '\n') - 读取本地文件src/main/plugins.ts:235
if (storeDir && existsSync(storeDir)) { - 读取本地文件src/main/plugins.ts:312
raw = readFileSync(file, 'utf8').replace(/^ FEFF/, '') - 读取本地文件src/main/plugins.ts:344
if (!existsSync(file)) return false - 读取本地文件src/main/plugins.ts:348
let text = readFileSync(file, 'utf8') - 写入本地文件src/main/plugins.ts:356
writeFileSync(file, text, 'utf8') - 写入本地文件src/main/plugins.ts:579
if (changed) writeFileSync(path, text) - 写入本地文件src/main/plugins.ts:648
writeFileSync(path, lines.join(eol)) - 请求外部主机registry.npmmirror.comsrc/main/plugins.ts:748
const res = await fetch(`https://registry.npmmirror.com/${regName}`, { signal: AbortSignal.timeout(8000) }) - 发起网络请求src/main/plugins.ts:748
const res = await fetch(`https://registry.npmmirror.com/${regName}`, { signal: AbortSignal.timeout(8000) }) - 写入本地文件src/main/plugins.ts:898
writeFileSync(file, JSON.stringify(manifest, null, 2), 'utf8') - 写入本地文件src/main/plugins.ts:929
writeFileSync(file, JSON.stringify(manifest, null, 2), 'utf8') - 执行外部命令固定命令src/main/plugins.ts:1511
execFileSync('cmd', ['/c', 'mklink', '/J', link, fallback]) - 发起网络请求src/main/plugins.ts:1568
const indexRes = await fetch(toCdn(MARKET_INDEX_URL), { signal: AbortSignal.timeout(8000) }) - 发起网络请求src/main/plugins.ts:1573
const res = await fetch(toCdn(pack.sourceUrl), { signal: AbortSignal.timeout(8000) }) - 执行外部命令固定命令src/main/plugins.ts:1758
p = spawn('git', ['--version'], { windowsHide: true, stdio: ['ignore', 'ignore', 'ignore'] }) - 删除本地文件递归src/main/plugins.ts:1814
if (existsSync(gitDir)) rmSync(gitDir, { recursive: true, force: true }) - 删除本地文件递归src/main/plugins.ts:1817
rmSync(stage, { recursive: true, force: true }) - 发起网络请求src/main/plugins.ts:1925
const res = await net.fetch( - 读取本地文件src/main/pnpm-compat.ts:35
if (!existsSync(join(profileDirPath, 'pnpm-workspace.yaml'))) return pluginArgs - 读取本地文件src/main/popup.ts:24
if (existsSync(p)) return p - 读取本地文件src/main/preload.ts:14
if (existsSync(p)) return p - 读取本地文件src/main/runtime.ts:62
const parsed = existsSync(file) ? (yaml.load(readFileSync(file, 'utf8')) as unknown) : null - 读取本地文件src/main/runtime.ts:62
const parsed = existsSync(file) ? (yaml.load(readFileSync(file, 'utf8')) as unknown) : null - 读取本地文件src/main/runtime.ts:71
let changed = !existsSync(file) - 写入本地文件src/main/runtime.ts:81
writeFileSync(file, yaml.dump(doc, { noRefs: true, lineWidth: -1 }), 'utf8') - 读取本地文件src/main/runtime.ts:88
return existsSync(nodeExe()) ? nodeExe() : null - 读取本地文件src/main/runtime.ts:92
return existsSync(dshBin()) ? dshBin() : null - 读取本地文件src/main/runtime.ts:111
if (existsSync(p)) { - 执行外部命令来自配置/变量src/main/runtime.ts:292
const p = spawn(nodeExe(), ['-v'], { windowsHide: true, stdio: ['ignore', 'pipe', 'ignore'] }) - 写入本地文件src/main/runtime.ts:321
const file = createWriteStream(dest) - 写入本地文件src/main/runtime.ts:470
mkdirSync(root, { recursive: true }) - 写入本地文件src/main/runtime.ts:476
mkdirSync(pluginDir, { recursive: true }) - 写入本地文件src/main/runtime.ts:512
mkdirSync(stage, { recursive: true }) - 写入本地文件src/main/runtime.ts:522
renameSync(inner, dir) - 删除本地文件递归src/main/runtime.ts:523
rmSync(stage, { recursive: true, force: true }) - 删除本地文件src/main/runtime.ts:524
rmSync(zip, { force: true }) - 读取本地文件src/main/security.ts:88
raw = readFileSync(src.file, 'utf8') - 删除本地文件src/main/security.ts:112
rmSync(src.file, { force: true }) - 写入本地文件src/main/security.ts:146
writeFileSync(filePath, lines, 'utf8') - 读取本地文件src/main/security.ts:161
const raw = readFileSync(whitelistFilePath(), 'utf8') - 读取本地文件src/main/security.ts:175
if (!existsSync(p)) writeFileSync(p, '# 白名单 = 忽略检测的内容。每行一个工具名,名单内的工具即使携带密钥也不告警。\n# 留空 = 检测所有非官方第三方工具。\n# 例:\n# my-http-proxy\n', 'utf8') - 写入本地文件src/main/security.ts:175
if (!existsSync(p)) writeFileSync(p, '# 白名单 = 忽略检测的内容。每行一个工具名,名单内的工具即使携带密钥也不告警。\n# 留空 = 检测所有非官方第三方工具。\n# 例:\n# my-http-proxy\n', 'utf8') - 读取本地文件src/main/security.ts:241
const pkg = JSON.parse(readFileSync(pkgPath, 'utf8')) - 写入本地文件src/main/security.ts:245
writeFileSync(pkgPath, JSON.stringify(pkg, null, 2), 'utf8') - 读取本地文件src/main/shortcuts.ts:26
if (existsSync(join(app.getPath('userData'), SENTINEL))) return - 执行外部命令固定命令src/main/shortcuts.ts:55
const child = spawn('powershell', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', script], { - 写入本地文件src/main/shortcuts.ts:68
writeFileSync(join(app.getPath('userData'), SENTINEL), 'ok\n') - 执行外部命令来自配置/变量src/main/task.ts:53
child = spawn(cmd, args, { - 执行外部命令固定命令src/main/task.ts:126
spawn('taskkill', ['/pid', String(child.pid), '/t', '/f'], { windowsHide: true })
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库
涉及外部主机:registry.npmmirror.com
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
界面预览
6 张 · 点击查看大图功能亮点
- 多实例管理中枢
- 多开并行
- 整合包下载
README
由 DeepSeek 最新模型翻译生成DSH Launcher V3 — 鲸罗棋布
不用装 Node.js,不用源码,一键部署便携运行环境; DSH Web 直接内嵌在客户端窗口里。
从「启动器」升级为「多实例管理中枢」 —— 一套客户端并行运行多套独立的 DSH 环境,每个环境自由搭配不同的插件组合;配合推荐整合包一键装机与带分类筛选的插件市场,把插件生态的灵活性变成普通用户也能随手使用的能力。
特别感谢社区作者 @baihejiangnan的倾力相助
主界面多实例管理
V3版本 新功能亮点
| 亮点 | 说明 |
| 多实例并行 | 支持多开DSH,每一套DSH实例可自由配置不同插件组合 |
| 内置整合包 | 为新手提供多套已优化的插件组合,上手即用 |
| 安全监测 | 安全审计时间轴 + 泄露检测,守护账号与会话数据安全 |
| 插件市场 | 分类快速找到想要的插件,内置三种插件源 |
| 本地插件管理 | 系统全新升级,适配多实例,避免重复下载插件 |
| 一键部署 | 内置独立环境 , 无需准备 , 全程一键,离线可用 |
| 客户端界面 | DSH Web 直接内嵌在原生窗口,多开更丝滑 |
| 桌面体验 | 系统托盘三态状态灯 + 悬浮球 + 开屏动画 |
->V3版本介绍<-
内核零改动:DSH Launcher 直接运行官方 dsh,完整保留「一切皆插件」架构与全部官方能力。
展开完整文档(README 剩余 1 节)
DSH Launcher V3 — 鲸罗棋布 不用装 Node.js,不用源码,一键部署便携运行环境; DSH Web 直接内嵌在客户端窗口里。 从「启动器」升级为「多实例管理中枢」 —— 一套客户端并行运行多套独立的 DSH 环境,每个环境自由搭配不同的插件组合;配合推荐整合包一键装机与带分类筛选的插件市场,把插件生态的灵活性变成普通用户也能随手使用的能力。 特别感谢社区作者 @baihejiangnan的倾力相助 主界面多实例管理 V3版本 新功能亮点 | 亮点 | 说明 | | 多实例并行 | 支持多开DSH,每一套DSH实例可自由配置不同插件组合 | | 内置整合包 | 为新手提供多套已优化的插件组合,上手即用 | | 安全监测 | 安全审计时间轴 + 泄露检测,守护账号与会话数据安全 | | 插件市场 | 分类快速找到想要的插件,内置三种插件源 | | 本地插件管理 | 系统全新升级,适配多实例,避免重复下载插件 | | 一键部署 | 内置独立环境 , 无需准备 , 全程一键,离线可用 | | 客户端界面 | DSH Web 直接内嵌在原生窗口,多开更丝滑 | | 桌面体验 | 系统托盘三态状态灯 + 悬浮球 + 开屏动画 | ->V3版本介绍<- 内核零改动:DSH Launcher 直接运行官方 dsh,完整保留「一切皆插件」架构与全部官方能力。 数据目录(DSH_HOME)与 CLI 完全兼容:默认共享已有目录,已有会话 / API Key 直接生效;也可为实例创建全新独立目录,会话、插件、凭据与其余实例彻底隔离。 下载安装 GitHub Releases(推荐) | 文件 | 说明 | 大小 | | 标准版 exe | NSIS 安装到系统,自动创建桌面 / 开始菜单快捷方式 | ~100 MB | | 简单版 exe | 不带多实例的极简版本,适合只需单个 DSH 的用户 | ~100 MB | | 专业版Launcher | 多实例系统,轻量化,新手不推荐(适配Win/linux/mac) | ~ 20 MB | 更多版本见 Releases 页面。 📺 快速上手视频教程:BiliBili 安装版数据目录在 %APPDATA%\dsh-launcher;DSH 会话数据默认沿用 ~\.dsh(DSH_HOME)。 想强制指定 DSH 配置目录?启动前设置环境变量 DSH_HOME 即可(与 dsh 命令行行为一致)。 首次使用: 1. 双击安装,安装完成后启动 DSH Launcher,显示开屏动画。 2. 进入「设置 → 快速离线部署」点击「快速离线部署」,自动安装便携 Node + pnpm + dsh 运行环境,部署完成自动切换为内置模式并回填路径。 3. 回到「控制台」点击「启动」,就绪后自动进入 DSH 界面,即可开始使用。 4. 如尚未配置 API Key,在 DSH 界面填写即可。 快速离线部署 · 一键下载便携环境 升级部署: - 覆盖安装新版安装包即可,数据不会丢失;安装器会自动结束运行中的旧进程。 - 「更新内置 dsh」只升级内置配套插件,不会覆盖 ~\.dsh 里的第三方插件与 cordis.patch.yml 手动条目。 新功能介绍 多实例 - 一套客户端并行运行多个互不干扰的 DSH 实例,每个实例拥有独立配置与端口 - 可以给「写代码」「日常聊天」「跑测试」各建一个实例,切换实例 = 切换整套插件环境 - 新建实例模式:(原理详见:DSH_HOME 隔离) 「共享」——沿用现有数据目录(共享会话记录,预设,设置选项等等) 「独立」——创建全新数据目录(会话、插件、等其他实例彻底隔离) - 每个实例可单独从客户端控制,独立开启 - 对于使用「共享」模式的实例,不能同时在一个会话工作 多实例管理 推荐整合包 - 不用自己挑选插件 —— 内置两个精选整合包,一键下载、自动建实例、自动装齐 - 下载过程显示进度条,整合包内插件均独立下载,相互隔离 - 对于第三方插件,常有插件之间的兼容性问题,整合包加入补丁修复兼容问题(详见:插件包) 安全系统 - 通过dsh-audit探针来只读监测dsh核心数据流变化 - 审计日志时间轴:以时间轴形式清晰呈现关键安全操作与事件记录,一眼掌握状态变化 安全审计时间轴 - 泄露检测:自动监测 API 凭据 / 数据是否泄露,发现风险及时预警 泄露检测 新版插件市场 - 分类标签:按分类标签快速找到感兴趣的功能,卡片上直接显示命中分类,点击即可反向筛选 - 集成插件下载源:Github,Deepseek1024,dshfind 提供多元化下载渠道(插件中文简介) - 插件详情内嵌预览,一键安装并归档到本地插件库 插件市场 新版本地插件管理 - 采用矩阵式管理:清晰看见每个插件在每个实例的启用情况,一键管理 插件矩阵 其余功能 - 余额小部件 - 控制台 启动/重启/关闭 - 新增液态玻璃风格外观,可自定义背景图片 - 系统托盘常驻 + 托盘三态状态灯、全屏沉浸 + 悬浮球、开屏动画、关闭至托盘 - 悬浮球,开屏动画 余额与日志 如果您有任何想要的新功能,欢迎来找我交流!QQ交流群:957159489 QQ 交流群 系统要求 - Windows 10/11(x64) - 内置版无需预装 Node.js 或任何其他运行时 - 4GB+ 内存(推荐) 从源码构建 pnpm install # 首次需要下载 Electron,网络慢时可在 .npmrc 配置 electron_mirror pnpm dev # 开发模式(HMR) pnpm build # 构建 main / preload / renderer 到 out/ pnpm dist # electron-vite build + electron-builder --win → release/ 网络受限时:Electron 镜像 $env:ELECTRON_MIRROR='https://npmmirror.com/mirrors/electron/'。 架构 ┌──────────────────────────────────────────────────┐ │ Electron 壳(main process) │ │ · 单实例锁 / 窗口 / 托盘 / 悬浮球 / 快捷方式维护 │ │ · 多实例 harness 生命周期(启动/停止/重启/超时保护) │ │ · 整合包装机 / 插件市场(分类筛选) / 余额 │ └──────────────┬───────────────────────────────────┘ │ spawn node dsh/lib/bin.js <profile> │ (DSH_HOME=<共享或独立数据目录>) ▼ 内置 node.exe + @deepseek-ai/dsh 输出 "dsh web: http://127.0.0.1:<port>" │ 就绪探测(HTTP 200)后加载 ▼ WebContentsView 内嵌 DSH UI(单窗口,仅本机回环) 贡献 - @MarcoG-h — 项目发起者与维护者 - @baihejiangnan — 整合包dsh-plugin-pack发起者与维护者;灵感提供者 许可证 MIT。基于 deepseek-ai/deepseek-harness(MIT)。
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
MarcoG-h/DSH-Launcher
最全面的DeepSeek Harness🐋启动器 首创多实例管理中枢 | 多开并行 | 整合包下载 | 安全保护 |…
相关插件 · 桌面端
Codex 任务面板chuspeeism/dashi-taskboard
现代化可灵活嵌入的任务面板,支持 Codex、DeepSeek Harness
★ 3,409已汉化DSH
71.7
多智能体自进化开发平台Prism-Shadow/penguin-harness
统一、稳定的 Agent 自进化框架全自动优化:任意模型 · 任意算法 · 任意 Benchmark
★ 3,111已汉化DSH
71.1
桌面宠物PC2005-cloud/dsh-pet
DSH 桌面宠物:一行命令装好即用的透明动画小桌宠,支持多开、大小位置随心配置;还内置 DIY 素材链,能用 AI…
★ 5,341已汉化DSH
71
多端 Agent 工作台GCWing/OpenBitFun
OpenBitFun 是一个高度可定制的开源 Agent 工作台,让任务按你的方式持续推进。
★ 3,449已汉化DSH
70.8
DSH Desktopanywhere-labs/dsh-desktop
为 DeepSeek Harness DSH 插件生态打造的现代化桌面端解决方案。万物皆「插件」,桌面本身也是「插件」。
★ 34,532已汉化DSH
70.7
桌面宠物伴侣OpenPetsHQ/openpets
桌面伴侣平台,带宠物、插件,还能选配本地智能体集成。
★ 1,353已汉化DSH
70.2