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-skill-manager

v0.1.3

Published

In-GUI skill manager for the dsh web GUI: a top-level Skills entry in Settings (movable into the Plugins section) that lists every installed skill (name, description, model/user invocation type, source root), with search. Read-only browser of the local sk

Readme

dsh-skill-manager

DSH(DeepSeek Harness)Web GUI 的技能管理器:直接在设置里浏览全部已安装技能——默认在侧边栏的**「技能」**一级入口,一键可移入插件分区。

功能

  • 设置 → 技能(一级入口,默认):只读列出会话目录可加载的全部技能,扫描自用户技能根($DSH_HOME/skills~/.agents/skills)。
  • 每张卡片显示:技能名、调用类型徽标(模型 + 用户 / 仅用户 / 仅模型)、描述;展开可见来源根与文件路径。
  • 搜索框按名称/描述过滤。
  • 一键移动入口:「移到插件分区」让技能入口从左侧导航消失、改到 设置 → 插件 内的「技能」标签页;「移回左侧导航」反向移动。选择持久化在 localStorage——同一时刻只存在一个入口
  • 只读插件:不修改任何技能文件。

安装

二选一,切勿两种都用。

方式 A — 一条命令(推荐)

dsh plugin --profile web add dsh-skill-manager

包会加入 profile 的 dsh.profile.bundles,其 bundle patch(cordis.patch.yml)在启动时自动挂载插件。不要再手动加 insert 行。

或从本地源码安装:

dsh plugin --profile web add /绝对路径/dsh-skill-manager

方式 B — 仅手动 patch

仅当包已能被 profile 的 node_modules 解析(如以其他方式作为依赖装过)且不在 dsh.profile.bundles 时使用。在 ~/.dsh/profiles/web/cordis.patch.yml 加一行 insert(配置 watcher 秒级热加载,无需重启):

- insert:
    - id: ui-skill-manager
      name: dsh-skill-manager

⚠️ 切勿把两种方式叠加:同一插件同时出现在 dsh.profile.bundles 和手动 insert 里,同一个 loader entry id 会被挂载两次——启动直接失败,报 duplicate loader entry id: ui-skill-manager

故障排查

启动报 duplicate loader entry id: <id>

启动失败 = 同一插件被两个来源挂载——典型:某个包既在 dsh.profile.bundles(来自 dsh plugin add),又作为手动 insert 行出现在 cordis.patch.yml。报错的 id 可能是任意重复的插件,不一定是刚装的那个。

修复:去掉其中一个来源——删除 ~/.dsh/profiles/web/cordis.patch.yml 里的手动 insert 行,或从 bundles 移除(dsh plugin --profile web remove <pkg>)。

DSH 的 loader 把重复 id 当作致命错误。本地补丁可让它幂等去重(保留第一个、警告、忽略重复),从此不会再被锁在 harness 门外;见 上游 issue每次升级 DSH 后重跑补丁脚本(自动定位最新 loader,已打过会自动跳过):

powershell -ExecutionPolicy Bypass -File patch-dsh-dedupe.ps1

结构

  • lib/index.js — host 半:扫描技能根、解析 SKILL.md frontmatter、提供同源 API GET /api/skill-manager/list
  • lib/client.js — 浏览器半:注册 settings.section(侧边栏,order 12)与 settings.plugins.tab 两个入口,运行时通过 ctx.slots.register 的 disposer 在两个入口间移动。
  • cordis.patch.yml — bundle patch,插入 ui-skill-manager 行。

许可

MIT