npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-plugin-store-optimized

v0.2.0

Published

Harness Plugin Store Optimized: a customized fork of dsh-plugin-hub — configurable plugin download directory, bundle-layer conflict detection, automatic pnpm lookup, and upstream bug fixes

Readme

Harness Plugin Store Optimized

简介:本仓库是 dsh-plugin-hub 0.1.6 的定制优化版。

  • 继承原版全部功能:深度集成 Harness Web UI 的图形化插件商店 —— 浏览 / 搜索 / 一键安装、本地评分评论、依赖拓扑图、操作审计日志、插件开发脚手架、安装前质量门与安全扫描、健康度排行榜、信任徽章
  • 本 fork 的修改优化:插件下载目录可配置(默认 <DSH_HOME>/plugins,插件以源码文件夹落盘并自动注册部署)、bundle 层入口 id 冲突检测(安装前拦截会导致整树崩溃的插件)、pnpm 自动寻路(任意终端可用)、准确的"重启生效"提示、启用超时透传真实错误、scoped 包支持,以及 3 项上游 bug 修复

下载与安装

前置条件:官方 dsh CLI(npm install -g @deepseek-ai/dsh)、pnpm 10+(不在 PATH 上也没关系,商店安装插件时会自动寻找 harness 本地的 pnpm shim)。

方式一:克隆本仓库安装(推荐,替换 registry 版)

git clone https://github.com/yiqizhuapangxiema/harness-plugin-store-optimized.git
cd harness-plugin-store-optimized
dsh plugin --profile web add file:<本仓库绝对路径>

profile 的依赖规格会变成 file: 指向本仓库,重启 dsh web 后生效(浏览器 Ctrl+F5 刷新)。

方式二:npm 安装(发布后可用)

dsh plugin --profile web add dsh-plugin-store-optimized

npm 包 dsh-plugin-store-optimized 尚未发布;发布后此命令即可用。

方式三:给已装的 registry 版打补丁

cd <DSH_HOME>/profiles/web/node_modules/dsh-plugin-hub
git apply --ignore-whitespace <本仓库>/patches/installer.js.patch
# 其余 4 个补丁同法:index.js / conflict-check.js / remote.js / client.js

上游(原作者)发布新版本后,升级并重新打补丁即可。

注意:不要与 registry 版的 dsh-plugin-hub 同时安装 —— 两者插入相同的 loader 入口 id 会导致插件树崩溃。安装前先卸载旧版:dsh plugin --profile web remove dsh-plugin-hub。

本 fork 新增的功能

| 功能 | 说明 | | --- | --- | | 可配置插件下载目录 | 设置页(商店内设置 + 全局 DSH 设置)新增「插件安装目录」项。默认 <DSH_HOME>/plugins;留空保存 = 恢复默认。商店初始化时自动创建该目录。 | | 插件源码目录管理 | 商店安装的每个插件都会以真实包文件夹形式落到配置目录(如 plugins/<名称>/,作用域包为 plugins/@scope/名称/),再通过 file: 依赖 + bundles/补丁激活自动注册进 profile。卸载时同步删除文件夹(及空的 scope 父目录)。 | | bundle 层冲突检测(第 4 项检查) | 激活前将新插件 bundle 补丁中 insert 的入口 id 与现有所有 bundle 层逐一比对,重复即拦截并列出冲突 id(如把 TUI 插件装进 web profile 的场景)—— 防止整树启动崩溃(duplicate loader entry id)。 | | pnpm 自动寻路 | 先搜 PATH 中的 pnpm,找不到则回退到 harness 本地 shim(<harness 根目录>/.dsh-tools/pnpm.cmd、<harness 根目录>/.bin/pnpm.cmd)。任意终端启动都能正常安装插件,即使 pnpm 不在 PATH 上。 | | 准确的重启提示 | bundles 层插件只在启动时组合,安装回执现在明确提示「重启 dsh 后生效」(restartRequired: true),不再谎称热加载;对"已安装但未加载"的插件执行启用/禁用也会返回同样的明确提示。 | | 启用超时透传真实错误 | 插件启用超时时的报错会附上条目真实的初始化失败原因(如 no pet packages found in ~/.codex/pets),不再只有干巴巴的「超时」。 | | 作用域包支持 | @scope/name 包可正确暂存(自动创建 scope 父目录、暂存目录名扁平化)。 | | 上游 bug 修复 | ① yaml 的 map.get('insert') 返回 YAMLSeq 节点,原代码用 Array.isArray 误判导致 owned 补丁行卸载时永远删不掉;② 补丁完整性检查用正则扫原始文本(引号不剥离、注释碎片被当成包名)→ 平台包(@deepseek-ai/*)被误拦,已改为结构化 YAML 解析;③ 容忍 pnpm 卸载后置失败(已删除但退出码 1),不再留下半卸载状态。 |

更新日志

0.2.0(2026-08-17)

  • 可配置插件下载目录:设置页新增「插件安装目录」(默认 <DSH_HOME>/plugins,留空恢复默认),商店初始化自动创建;插件以源码文件夹落盘并自动注册部署,卸载同步清理
  • bundle 层冲突检测(第 4 项检查):安装前比对新插件与现有 bundle 层的 insert 入口 id,重复即拦截并列出冲突 id,防止整树启动崩溃
  • pnpm 自动寻路:PATH 无 pnpm 时自动回退 harness 本地 shim,任意终端可用
  • 准确的提示:bundles 插件安装回执明确「重启 dsh 后生效」;启用/禁用超时附上条目真实初始化错误
  • scoped 包支持:@scope/name 包正确暂存与卸载(scope 父目录自动创建/回收)
  • 上游 bug 修复:① yaml YAMLSeq 误判导致 owned 补丁行无法卸载清理;② 补丁完整性检查正则误报(引号/注释)→ 改为结构化 YAML 解析;③ 容忍 pnpm 卸载后置失败(已删除但退出码 1)

回归测试

| 脚本 | 覆盖 | | --- | --- | | tests/verify-install.mjs | 完整安装/卸载链路 10 项检查(假插件,含无 pnpm PATH 场景) | | tests/verify-scoped.mjs | scoped 包名(@scope/name)安装/卸载回归 | | tests/install-pet.mjs | 宠物包下载 + 用插件自身 loader 验证 |

运行:node tests/verify-install.mjs(Windows 上建议带 PATH=...\.dsh-tools 前缀以保证 pnpm 可用;无 pnpm 时脚本会走 shim 回退)。

其他文档

上游许可见 LICENSE(二次开发需保留原作者版权声明)。