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

多环境管理器 A7m0spHere/dsh-phl

DeepSeek Harness
A7m0spHere3 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 多实例、版本、运行环境与插件管理器 | PHL — DeepSeek Harness…

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

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

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

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · market
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成

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

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

缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

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

✗npm 包dsh-phl(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明

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

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/11/2 20:49:09

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 25 处,展示前 24 条)
  • 执行外部命令来自配置/变量
    e2e/cdp-spike.mjs:45
    const child = spawn(exe, [], {
  • 发起网络请求
    e2e/cdp-spike.mjs:86
    const res = await fetch(`http://127.0.0.1:${PORT}/json/list`)
  • 执行外部命令固定命令
    e2e/dependency-retry-cdp.mjs:172
    vite = spawn('npm', ['run', 'dev'], { cwd: repoRoot, shell: true, stdio: 'ignore' })
  • 执行外部命令来自配置/变量
    e2e/dependency-retry-cdp.mjs:177
    const child = spawn(exe, [], {
  • 执行外部命令固定命令
    e2e/dependency-retry-cdp.mjs:331
    spawn('taskkill', ['/pid', String(vite.pid), '/t', '/f'], { stdio: 'ignore' })
  • 执行外部命令固定命令
    e2e/install-smoke.mjs:88
    const killer = spawn('taskkill', ['/PID', String(pid), '/T', '/F'], { windowsHide: true })
  • 执行外部命令来自配置/变量
    e2e/install-smoke.mjs:130
    execFile(cmd, cmdArgs, { windowsHide: true, ...opts }, (err, stdout, stderr) => {
  • 发起网络请求
    e2e/install-smoke.mjs:142
    const res = await fetch(`http://127.0.0.1:${PORT}/json/list`)
  • 执行外部命令固定命令
    e2e/install-smoke.mjs:225
    execFileSync('net', ['session'], { stdio: 'ignore', windowsHide: true })
  • 执行外部命令固定命令
    e2e/install-smoke.mjs:237
    return execFileSync(
  • 执行外部命令来自配置/变量
    e2e/install-smoke.mjs:268
    app = spawn(exe, [], {
  • 执行外部命令固定命令
    e2e/install-smoke.mjs:312
    const user = execFileSync(
  • 发起网络请求
    e2e/install-smoke.mjs:553
    const req = https.get(
  • 发起网络请求
    e2e/lib/tauri-cdp.mjs:29
    const res = await fetch(url)
  • 发起网络请求
    e2e/lib/tauri-cdp.mjs:44
    const res = await fetch(`http://127.0.0.1:${port}/json/list`)
  • 执行外部命令固定命令
    e2e/trial-copy-cdp.mjs:176
    vite = spawn('npm', ['run', 'dev'], { cwd: repoRoot, shell: true, stdio: 'ignore' })
  • 执行外部命令来自配置/变量
    e2e/trial-copy-cdp.mjs:181
    const child = spawn(exe, [], {
  • 执行外部命令固定命令
    e2e/trial-copy-cdp.mjs:311
    spawn('taskkill', ['/pid', String(vite.pid), '/t', '/f'], { stdio: 'ignore' })
  • 读取本地文件
    src/lib/healthCategories.test.ts:6
    const rust = (name: string) => readFileSync(path.resolve(process.cwd(), `src-tauri/src/${name}`), 'utf8')
  • 读取本地文件
    src/lib/hookOrder.test.ts:19
    return readdirSync(dir).flatMap((entry) => {
  • 读取本地文件
    src/lib/hookOrder.test.ts:21
    if (statSync(path).isDirectory()) return files(path)
  • 读取本地文件
    src/lib/hookOrder.test.ts:80
    offences(readFileSync(path, 'utf8'), path.replace(process.cwd() + '\\', '')),
  • 发起网络请求
    src/lib/screenshots.ts:38
    const response = await fetch(
  • 读取本地文件
    src/pages/InstancesPage.test.ts:34
    return readFileSync(fileURLToPath(new URL(relative, import.meta.url)), 'utf8')
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库

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

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

界面预览

2 张 · 点击查看大图

功能亮点

  • 多实例管理
  • 版本管理
  • 运行环境管理

README

由 DeepSeek 最新模型翻译生成
下载安装 → · 首次运行 · 源码构建 · 文档与反馈 PHL 在同一台机器上管理多个 DeepSeek Harness(DSH)环境。 为日常使用、插件测试和版本尝鲜分别创建实例,各自选择 DSH 版本与 Node 运行时,分别保存配置、插件和工作目录。 PHL 是基于 Tauri 2 + Rust 的桌面应用。版本下载、实例管理、磁盘读写与进程启动均已接入真实后端;项目独立开发,与 DeepSeek 官方无隶属关系。 桌面端「版本」页实拍。多个版本可同时安装,由实例分别选择。 一个实例,一套环境 | 使用场景 | 在 PHL 中怎么做 | | 日常与测试分开 | 创建或克隆实例,分别绑定 DSH 版本、Node 运行时和插件 | | 管理模型与 API | 维护全局供应商与模型配置;实例可继承全局、自选供应商,或不托管 | | 下载与启动 | DSH / Node 下载支持校验、进度与取消;启动时检测端口,遇到问题查看日志 | | 修改前备份 | 保存实例快照,需要时回滚;也可通过 Bundle 导出配置清单 | | 接入与迁移 | 发现本机 DSH、复制对话,通过 .phlpack 导入或导出整合包 | | 管理官方桌面端 | 发现本机安装的官方 DeepSeek Harness 桌面端(单例):查看状态与版本、可启动,退出经确认后才强制 |
展开完整文档(README 剩余 1 节)
下载安装 → · 首次运行 · 源码构建 · 文档与反馈

PHL

在同一台机器上管理多个 DeepSeek Harness(DSH)环境。 为日常使用、插件测试和版本尝鲜分别创建实例,各自选择 DSH 版本与 Node 运行时,分别保存配置、插件和工作目录。

PHL 是基于 Tauri 2 + Rust 的桌面应用。版本下载、实例管理、磁盘读写与进程启动均已接入真实后端;项目独立开发,与 DeepSeek 官方无隶属关系。

桌面端「版本」页实拍。多个版本可同时安装,由实例分别选择。

一个实例,一套环境

| 使用场景 | 在 PHL 中怎么做 |
| 日常与测试分开 | 创建或克隆实例,分别绑定 DSH 版本、Node 运行时和插件 |
| 管理模型与 API | 维护全局供应商与模型配置;实例可继承全局、自选供应商,或不托管 |
| 下载与启动 | DSH / Node 下载支持校验、进度与取消;启动时检测端口,遇到问题查看日志 |
| 修改前备份 | 保存实例快照,需要时回滚;也可通过 Bundle 导出配置清单 |
| 接入与迁移 | 发现本机 DSH、复制对话,通过 .phlpack 导入或导出整合包 |
| 管理官方桌面端 | 发现本机安装的官方 DeepSeek Harness 桌面端(单例):查看状态与版本、可启动,退出经确认后才强制 |
| 日常维护 | 查看磁盘占用、清理缓存与孤立目录,诊断问题或迁移数据目录 |

下载与安装

目前提供 Windows 10/11 x64 与 macOS(Apple Silicon) 的 rc 预览版,界面与数据格式仍可能调整。Linux 暂未提供安装包。

1. 打开 Releases 下载页,在所选预览版的 Assets 中下载对应平台的安装包与同名 .sha256 文件:Windows 为 PHL_<version>_x64-setup.exe,macOS 为 PHL_<version>_aarch64.dmg。
2. 在下载目录执行下方命令,与 .sha256 中的值核对一致后运行安装程序(macOS 挂载 DMG 后拖入「应用程序」)。
3. 打开 PHL,创建第一个实例。

Get-FileHash .\PHL_*_x64-setup.exe -Algorithm SHA256

安装包尚未做代码签名:Windows 首次下载或运行可能出现 SmartScreen 提示,macOS 首次打开会被 Gatekeeper 拦下,处理方法见安装说明。桌面窗口在 Windows 上依赖 WebView2,系统缺失时安装器会联网安装。

已有可自动更新的版本,可在「设置 → 关于」检查更新、下载并安装(macOS 版暂无应用内更新),详见应用内更新。

首次运行

1. 下载 DSH:在「版本」页选择需要的版本。
2. 选择 Node:在「运行时」页下载运行时,或使用检测到的系统 Node。
3. 创建实例:填写名称,选择 DSH 版本、运行时与端口。
4. 配置 API:需要由 PHL 管理模型时,在「API」页配置供应商与模型,再在实例中选择配置来源并同步。
5. 启动使用:在实例页点击「启动」,等待就绪后打开 WebUI。需要插件时,在「插件」页选定目标实例后安装。

已经有本机 DSH?从本机发现与接入开始,按向导选择接入方式和需要迁移的对话。

常用快捷键:Ctrl+K 快速跳转 · Ctrl+, 打开设置 · Esc 返回。完整清单见「设置 → 快捷键」。

隔离如何工作

共享程序文件,分别保存实例状态。 DSH 版本与 Node 运行时集中存放,实例按需引用;每个受管实例拥有自己的 DSH_HOME、配置、插件、工作目录和端口。

这种隔离指环境与数据目录分离,不是操作系统级安全沙箱。启动时,PHL 注入对应实例的 DSH_HOME,用所选 Node 执行 dsh web --port <端口> --no-open,固定使用 web profile。

查看数据目录与备份范围

<数据目录>/ ├── versions/ DSH 版本文件 ├── runtimes/ Node 运行时文件 └── instances/<实例 ID>/ ├── instance.json 版本、运行时与端口等配置 ├── dsh-home/ 实例自己的 DSH_HOME │ └── profiles/web/ 插件与 profile 配置 ├── workspace/ 工作目录 └── logs/ 启动日志

- 快照:保存实例的 dsh-home(环境恢复用途),不包含 workspace、启动日志与版本绑定;它不是完整备份,也不保证完整灾难恢复——workspace 与凭据永远不在其中。
- Bundle:JSON 配置清单(配置迁移用途),记录实例配置与插件信息;不含插件文件、凭据值和机器本地环境变量,导入后需重新安装插件并配置凭据。
- .phlpack:整合包(实例迁移用途),可按导出选项携带插件文件与对话;具体内容和迁移范围见接入与迁移。三者覆盖范围的逐项矩阵见该文档的「备份范围矩阵」一节。

从源码构建

前端使用 React 18 · TypeScript · Vite 6,桌面端使用 Tauri 2 · Rust。

Windows 开发需准备 Node.js 22(与 CI 一致)、Rust stable / MSVC、Visual Studio C++ Build Tools 的「使用 C++ 的桌面开发」工作负载,以及 WebView2;macOS(Apple Silicon)需 Node.js 22、Rust stable 与 Xcode 命令行工具。

git clone https://github.com/A7m0spHere/dsh-phl.git
cd dsh-phl
npm ci
npm run app:dev

也可双击 run-dev.cmd 检查环境并启动;首次编译 Rust 需要一些时间。

| 命令 | 用途 |
| npm run dev | 浏览器 UI 预览,使用 Mock 数据 |
| npm run app:dev | 启动桌面应用,连接真实 Rust 后端 |
| npm run app:build:dev | 构建可直接运行的调试版,不生成安装包 |
| npm run app:build | 构建 Windows 应用与 NSIS 安装包 |
| npm run app:build:mac | 构建 macOS 应用与 DMG(显式 --bundles) |
| npm run icon | 从仓库内母版生成应用图标 |

调试版输出到 src-tauri/target/debug/dsh-phl.exe;Windows 安装包输出到 src-tauri/target/release/bundle/nsis/,macOS 产物在 bundle/dmg/ 与 bundle/macos/,也可双击 build-app.cmd 构建并打开产物目录。浏览器预览不执行真实桌面操作。

开发检查与代码导航

npm run typecheck
npm run check:size
npm run bridge:check
npm test
npm run build
cargo fmt --manifest-path src-tauri/Cargo.toml --all -- --check
cargo clippy --manifest-path src-tauri/Cargo.toml --workspace --all-targets --all-features -- -D warnings
cargo test --manifest-path src-tauri/Cargo.toml --workspace

| 目录 | 内容 |
| src/pages/ / src/components/ | 页面与 UI 组件 |
| src/services/ / src/stores/ | Repository、桌面桥接与共享状态 |
| src/types/ / src/data/ | 领域模型与浏览器 Mock 数据 |
| src-tauri/src/ | 下载、实例、插件、运行时、进程与磁盘操作 |
| src-tauri/crates/ | 共用 Pack Core 与 phl-pack CLI |

页面通过 Repository 接口访问数据,入口见 src/services/index.ts。开发约定以 AGENTS.md 为准,完整检查流程见 CI 配置。

文档与反馈

| 你想了解 | 对应文档 |
| 安装、版本与更新 | 安装说明 · 发布记录 · 应用内更新 |
| 接入已有环境、迁移对话 | 本机 DSH 接入与会话/整合包迁移 |
| 集成整合包能力 | Pack Core、CLI 与导出 Skill |
| 安全与数据处理 | 安全说明 · 隐私说明 |

遇到问题或有建议,请提交 Issue,附上 PHL 版本、复现步骤与相关日志(移除凭据后)。

参考与许可

PHL 的产品模型与交互参考了 PCL、Prism Launcher、DSHBox。实现遵守代码来源边界,不复制、移植或机械改写其他 Launcher 的代码,不使用其专有视觉资产。鲸鱼尾鳍标识来自仓库内的独立母版。

MIT © 2026 A7m0spHere · 第三方许可
预览分享卡片长什么样 ↓A7m0spHere/dsh-phl
分享 · DeepSeek Harness Hub
A7m0spHere/dsh-phl

DeepSeek Harness 多实例、版本、运行环境与插件管理器 | PHL — DeepSeek Harness…

这是你的仓库?认领条目

回到顶部