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

@liushutan/dsh-skills-manager

v0.1.30

Published

NPM-installable DSH Web plugin for safely loading and managing skills across DSH and common local Agents.

Readme

DSH Skills Manager

Load and safely manage skills from DSH and common local Agents

简体中文 · Changelog · Apache-2.0

License: Apache-2.0 npm package npm downloads DSH Web Plugin Node.js 20 or later

DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.

Features

  • Discover and load user-level skills from .agents, Codex, Claude, Gemini, and OpenCode into DSH.
  • Persist external source and skill toggles under $DSH_HOME/skills-manager/state.json without rewriting shared source files.
  • Inspect Markdown bodies, frontmatter, load state, duplicate shadowing, and format diagnostics in a source-first UI.
  • Create a local DSH skill from Settings or conversation; conversational writes require user approval.
  • Move DSH-local skills to recoverable Trash, then restore or permanently delete them.
  • Import .zip archives, skill folders, or a single SKILL.md safely into $DSH_HOME/skills.

Screenshots

Browse by source or search in Settings → Skills. External Agent sources are loaded through a manager-owned provider while their files stay read-only:

Skills Manager source-first settings page

Open any skill to inspect its source path, diagnostics, Markdown body, and parsed frontmatter:

Skill details and diagnostics

Moving a DSH-local skill to Trash requires confirmation and remains recoverable until it is permanently deleted:

Move a skill to Trash confirmation

DSH product ecosystem

This product can be installed independently or used through the desktop app or Web suite. They share the same DSH core but serve different ways of working:

| Product | Relationship to this product | | --- | --- | | DeepSeek Harness | The host runtime that provides models, sessions, tools, and the plugin system | | DSH Doubao Desktop | A ready-to-install desktop product with this product and the other five feature products built in | | Six feature products | Codex UI · IM Connect · Automation · Skills Manager · Archive Manager · Agency Agents |

Prerequisites

  • A working DeepSeek Harness Web installation with dsh available in PowerShell.
  • Examples use the web profile; replace it with the target profile.
  • Source installation and development require Node.js 20+. npm installation does not require running npm install in an arbitrary directory.

Installation

dsh plugin add forwards to pnpm add in the profile directory. Without a version and official registry, a local mirror or minimum-release-age policy can leave you on an older build.

Ask another agent to install it

This plugin runs inside DeepSeek Harness Web. Copy one of the sentences below into DSH, Codex, or WorkBuddy and let that agent install it into your local web profile.

From npm:

Install the latest DSH plugin @liushutan/dsh-skills-manager into my local web profile using the official npm registry: dsh plugin --profile web add @liushutan/dsh-skills-manager@latest --registry=https://registry.npmjs.org/. Then run dsh --profile web --dump-config, confirm skills-manager is mounted, and remind me to restart DSH Web and hard-refresh the browser.

From source:

Install the DSH plugin from source at https://github.com/liushutan/dsh-skills-manager: clone it, run npm install and npm test, then run dsh plugin --profile web add . from that directory. Do not copy lib by itself. Then run dsh --profile web --dump-config, confirm skills-manager is mounted, and remind me to restart DSH Web and hard-refresh the browser.

| Product | How to use it | | --- | --- | | DSH | Send one of the sentences above to the current session. | | Codex | Send one of the sentences above to Codex and let it install locally. | | WorkBuddy | Send one of the sentences above to WorkBuddy; for a source install you can also paste https://github.com/liushutan/dsh-skills-manager. |

Codex and WorkBuddy only install the plugin. After that, open DSH Web and use Settings → Skills.

You can also run the same npm command yourself:

dsh plugin --profile web add @liushutan/dsh-skills-manager@latest --registry=https://registry.npmjs.org/

If dsh is not on PATH, replace the leading dsh with npx --yes @deepseek-ai/dsh.

Install the latest package from the official npm registry

Run this from any PowerShell directory:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @liushutan/dsh-skills-manager@latest --registry=https://registry.npmjs.org/
dsh --profile web --dump-config

To pin a release, replace @latest with a version such as @0.1.25.

The configuration output should contain skills-manager. Restart DSH Web and hard-refresh the browser. Do not copy client files manually: dsh plugin add also applies cordis.patch.yml.

Install from source

Use this for debugging or unpublished changes. The cloned directory becomes the plugin source path:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
Set-Location D:\Repository\deepseek-harness-plugin
git clone https://github.com/liushutan/dsh-skills-manager.git
Set-Location .\dsh-skills-manager
npm install
npm test
dsh plugin --profile web add .
dsh --profile web --dump-config

Restart DSH Web and hard-refresh the browser. dsh plugin ... add . reads the package metadata and cordis.patch.yml; do not install by copying lib directly.

Usage

Open Settings → Skills, then use the panel as follows:

| Goal | Action | Scope | | --- | --- | --- | | Search or filter | Narrow by source, name, or description. | All sources | | Inspect details | Review body, frontmatter, path, format diagnostics, and duplicate shadowing. | All sources | | Enable or disable | DSH skills update their own invocation policy; external skills update manager-local state only. | All sources | | Create or import | Create in Settings, or import .zip, a folder containing SKILL.md, or one SKILL.md. | $DSH_HOME/skills | | Create from conversation | Let an Agent call create_skill; DSH asks for approval before writing. | $DSH_HOME/skills | | Delete and recover | Move to Trash, restore, or permanently delete in a second step. | DSH-local skills |

Toggling a shared source never changes its files; only DSH-local skills can move to Trash.

Escape closes only the frontmost upload or confirmation dialog and leaves Settings open.

Permissions and safety limits

| Directory | View/load | Enable or disable | Create/import | Delete | | --- | --- | --- | --- | --- | | $DSH_HOME\skills | Yes | Updates local invocation policy | Yes | Moves to Trash | | $DSH_AGENTS_HOME\skills | Yes | Manager state only | No | No | | ~/.codex/skills, ~/.claude/skills, ~/.gemini/skills, ~/.config/opencode/skills | Yes | Manager state only | No | No |

  • Enable, disable, and delete accept only one ordinary skill-name path segment.
  • Replacements copy to a temporary sibling path first and keep the original until that succeeds.
  • Every endpoint, including GET /state, accepts only a loopback Host or a canonical host[:port] that the DSH Web runtime already trusts through its LAN bind and --trusted-host; unknown hosts still receive 403.
  • Browser requests must also carry a same-origin Origin when present and must not be marked cross-site; write endpoints continue to require JSON and the DSH client request marker.
  • Import accepts the local path selected by the user. The Host trust fence prevents DNS rebinding but is not authentication; reverse-proxy and LAN deployments still need authentication, a VPN, or network access controls.

Secondary development

This repository has no src directory. lib is directly maintained runtime source, which is its current layout rather than the recommended layout for new plugins. New plugins should prefer src built to lib.

  • lib\index.js: host service and local skill file operations.
  • lib\client.js: Settings page, upload, and confirmation interactions.
  • test\core-test.mjs: file-operation, permission, and import boundary tests.
  • test\locale-test.mjs: UI locale tests.

After changing the runtime source, test, inspect package contents, and install from the local directory:

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
npm test
npm run pack:check
dsh plugin --profile web add .

Preserve path validation, temporary-copy replacement, and shared-skill read-only behavior when changing file-mutation code.

Validation

[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
npm test
npm run pack:check

prepublishOnly runs the core tests before publishing.

Documentation and license

Project status, usage boundaries, architecture, and iteration records begin at the documentation entry point. The detailed operational guide is docs\02-产品与业务\01-使用说明.md.

Licensed under Apache License 2.0.