DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Plugin Offline Packager — DeepSeek Harness 插件(DSH Plugin)
← Plugins
P

dsh-plugin-offline-packager

Plugin Offline Packager

DSH 插件 dsh-plugin-offline-packager

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:YJLTF/dsh-plugin-offline-packager#86f34c8ad46b243818f8cf218f8737f157f0a705
README兼容性版本

说明

DSH 插件 dsh-plugin-offline-packager

兼容性与来源证明

Plugin Offline Packager 以 dsh-plugin-offline-packager 发布,当前版本为 0.3.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
any
发布来源
github
Registry 更新时间
2026/9/18

版本

0.3.1stable
2026/9/18
0.3.0stable
2026/9/10
0.2.1stable
2026/9/10
查看其余 1 个版本收起版本
0.2.0stable
2026/8/25

相关插件

正在加载相关插件…

最新版
0.3.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
any
许可证
MIT
发布源
github
GitHub
★ 2
周下载
0
最近提交
2026/9/18
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录

README

dsh-plugin-offline-packager

DeepSeek Harness(DSH)离线打包插件 — 在联网环境中把任意 DSH 插件打包成自包含的离线安装包(.tgz),拷贝到无网络的 DSH 环境后用一条命令直接安装,全程无需访问 npm registry。

它同时为 dsh-admin 的插件市场提供离线包来源:打包生成的 .tgz 可上传到 dsh-admin 插件市场,借助其插件管理功能在离线环境中分发与安装 DSH 插件。

它解决什么问题

dsh plugin add 本质是把参数转发给离线 profile 目录里的 pnpm add。对普通插件执行这条命令时,pnpm 需要联网解析并下载插件的每一个 npm 依赖,离线环境必然失败。本插件把"依赖下载"这一步提前到联网机器上完成:在暂存目录装好插件的全部生产依赖,再通过 npm 的 bundleDependencies 机制把整个 node_modules 依赖闭包一起塞进 tarball。离线机器拿到的就是一个不缺文件的完整安装包。

特性

  • 对话即打包:注册一个名为 offline-pack 的 Tool,在 DSH Web UI 里用自然语言让 AI 调用即可,无需记命令。
  • 三种插件来源:npm 包名(@deepseek-ai/dsh-base)、GitHub 仓库(github:user/repo、https://github.com/user/repo,支持 #branch 指定分支)、本地路径(./my-plugin)。
  • 自包含离线包:完整生产依赖闭包随 tarball 携带(bundleDependencies),离线安装零 registry 访问。
  • peerDependencies 智能排除:由 DSH 宿主(cordis)提供的 peer 依赖不打入离线包,也顺带清除构建阶段混入的 peer 传递依赖,避免与宿主的实例重复、类型不兼容。
  • 自动构建:GitHub / 本地来源会自动在暂存目录内安装依赖并执行 prepare / build,构建产物直接进包,不污染原目录。
  • 离线元数据:每次打包生成同名 .meta.json(包名、来源、打包时间、DSH 版本、打包器版本、捆绑依赖清单),便于离线环境审计与管理。
  • 内建离线安装指引:打包结果会附带针对 pnpm ≥ 11 供应链策略(minimumReleaseAge)的离线安装注意事项与解决命令,AI 可直接转述给用户。
  • 自身零依赖:本插件经 esbuild 打成单文件 lib/index.js,自身 .tgz 也不声明任何运行时依赖,同样可以离线安装。
  • 兼容 dsh 0.1.6-alpha.2:基于 @deepseek-ai/dsh-tools@0.1.6-alpha.2、@deepseek-ai/cordis@^4.0.2 构建与类型校验。

工作原理

  1. 按来源把插件源码放入临时暂存目录:npm 来源直接 npm pack 下载解压;GitHub 来源浅克隆;本地来源复制(跳过 node_modules 与 .git)。
  2. 需要构建的插件(GitHub / 本地来源、存在构建脚本而产物缺失)在暂存目录内 npm install 并执行 prepare / build。
  3. 安装生产依赖(显式排除 peer),把实际装出的顶层依赖写入 bundleDependencies,使 npm pack 携带完整 node_modules。
  4. npm pack --ignore-scripts 出包(构建早已完成,避免 prepare 重复执行),并写出 .meta.json。

安装本插件

前提条件

  • 已安装 DeepSeek Harness (DSH)(已在 0.1.5-alpha.1 / 0.1.5-alpha.2 / 0.1.6-alpha.2 上验证)
  • Node.js >= 22,npm,以及系统里有 pnpm(dsh plugin 依赖它转发)
  • 从 GitHub 来源打包时需要 git

步骤

# 1. 克隆或进入项目目录
cd dsh-plugin-offline-packager

# 2. 安装依赖并构建
npm install

# 3. 安装到 DSH profile(以 web profile 为例)
dsh plugin --profile web add .

若 pnpm 提示忽略了本包的构建脚本(prepare 负责构建,会重新生成 lib/),按提示允许即可:pnpm approve-builds,或在 profile 的 pnpm-workspace.yaml 的 allowBuilds 映射中加入 dsh-plugin-offline-packager。

安装完成后重启 DSH,即可在 Web UI 中使用 offline-pack 工具。

验证安装

dsh --profile web --dump-config | grep offline-packager

看到 offline-packager 相关输出即安装成功。

使用本插件打包其他插件

通过 AI 对话(推荐)

在 DSH Web UI 中直接说:

请将 @deepseek-ai/dsh-base 打包为离线安装包

AI 会调用 offline-pack 工具,返回结果类似:

离线包已生成: F:\offline-packages\deepseek-ai-dsh-base-0.1.5-alpha.2.tgz

在离线环境的 DSH 中执行以下命令安装:
  dsh plugin --profile web add "F:\offline-packages\deepseek-ai-dsh-base-0.1.5-alpha.2.tgz"

离线安装注意(pnpm ≥ 11): ……

工具参数

参数类型说明
sourcestring,必填插件来源,见下方示例
outputstring,可选输出文件名(默认 包名-版本.tgz 自动生成)
includeDepsboolean,可选是否打入 npm 依赖,默认 true;false 时仅打包插件本身

来源示例

@deepseek-ai/dsh-base              # npm 包
@deepseek-ai/dsh-web-app           # npm scope 包
github:Wanbinyu/dsh-billing        # GitHub(默认分支)
https://github.com/Wanbinyu/dsh-error-lens#main   # GitHub(指定分支)
./my-plugin                        # 本地相对路径
C:\Users\me\projects\my-dsh-plugin # 本地绝对路径

输出文件

每次打包在输出目录(默认 ./offline-packages,见配置)生成两个文件:

文件说明
*.tgz自包含离线安装包,可直接用于离线安装
*.meta.json元数据:包名、来源、打包时间、DSH 版本、打包器版本、捆绑依赖清单

把离线包装到目标机器

将 .tgz(可选拷新式 .meta.json)拷贝到离线机器后执行:

dsh plugin --profile web add ./deepseek-ai-dsh-base-0.1.5-alpha.2.tgz

DSH 会解析 tarball 内 package.json 的 dsh.bundle 声明(本包自带 cordis.patch.yml 补丁),自动注册插件层并追加到 profile 的 bundles 列表。

pnpm ≥ 11 离线安装必读

dsh plugin add 会把参数转发成 profile 目录里的 pnpm add。pnpm 11 起 minimumReleaseAge 供应链策略默认开启(1440 分钟),pnpm add 不只解析新包,还会为 profile 中已装好的整个依赖树联网拉取发布时间元数据,离线环境因此报错:

ERR_PNPM_RESOLVING_NPM_RESOLVER_NETWORK_ERROR: Failed to fetch metadata from
https://registry.npmjs.org/...: error sending request for url ...

注意:报错的包名是宿主框架依赖树里的传递依赖,每次失败点可能不同,与离线包本身是否自包含无关。

解决:编辑 profile 目录下的 pnpm-workspace.yaml(如 C:\Users\<user>\.dsh\profiles\web\pnpm-workspace.yaml,dsh 首次初始化时生成、之后不会覆盖):

packages:
  - .

nodeLinker: hoisted
autoInstallPeers: false
minimumReleaseAge: 0            # 关键:关闭 24h 供应链延迟,离线 add 不再需要元数据
dangerouslyAllowAllBuilds: true # 若改后报 ERR_PNPM_IGNORED_BUILDS 则加上;
                                # 更细粒度可改用 allowBuilds 映射,按 pnpm 报错提示填包名

保存后重新执行安装即可(之前失败残留的 package.json 条目无需手动清理,重跑 add 会自愈)。也可不改文件,在安装命令末尾追加参数——dsh 会把多余参数原样透传给 pnpm:

dsh plugin --profile web add ./xxx.tgz --config.minimum-release-age=0

--prefer-offline / --offline 对 minimumReleaseAge 的元数据校验无效,不要浪费时间尝试。

Windows:路径不能含空格

.tgz 所在完整路径(含各级目录)不能包含空格:dsh plugin add 在 Windows 上以 shell 模式转发参数且不补引号,路径会在空格处被截断,报 ENOENT。手动加引号也无效(引号在传参给 dsh 时已被 shell 消费)。先把文件移到不含空格的目录再安装:

copy "D:\DSH Desktop\offline-packages\xxx.tgz" C:\temp\
cd C:\temp
dsh plugin --profile web add .\xxx.tgz

验证安装

dsh --profile web --dump-config

确认目标插件的配置层已正确加载。

配置

本插件支持以下配置(在 cordis.yml 或 profile 的 patch 中设置):

- id: offline-packager
  name: dsh-plugin-offline-packager
  config:
    outputDir: ./offline-packages    # 离线包输出目录,默认 ./offline-packages

注意事项

  • 打包过程需要联网(npm 下载 / GitHub 克隆),离线的是安装端
  • 含原生二进制依赖的插件需在与目标离线机相同的平台(OS/arch)上打包:离线包携带的是打包机装到的依赖版本,平台相关的 optionalDependencies(原生模块)跨平台不可用
  • 插件的 peerDependencies 不打入离线包:由 DSH 宿主在 profile 中提供,目标机器需已具备对应的 DSH 基础框架
  • 本地路径打包不保证所有项目成功:会自动尝试安装依赖与构建,构建失败会把 npm 的报错原样抛出
  • pnpm ≥ 11 目标机需先按上文关闭 minimumReleaseAge 再离线安装,详见离线安装必读
  • Windows 下 .tgz 存放路径不能包含空格,详见上文解法

开发

npm run build   # esbuild 单文件打包 + tsc 类型声明
npm run smoke   # 冒烟测试:本地来源(构建/捆绑/peer 排除)、includeDeps=false、npm 来源、自定义文件名

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序