MichengAI/dsh-skills-manager
DSH Skills Manager 基于 DeepSeek Harness 的Skills管理插件
已收录
7
Dev
Bundle 已验证
预览
功能介绍
在设置里管理本地 DSH 技能,并只读查看公共 Agent 技能。
适合
- 希望在同一设置页面搜索和查看本地及公共技能的 DSH Web 用户。
- 需要启用、停用、上传、替换或删除 DSH 本地技能的管理员。
- 希望公共 Agent 技能可见、但不允许插件修改它们的团队。
不适合
- 需要编辑或删除公共 Agent 技能的工作流,因为这些技能严格只读。
- 不管理本地技能、只使用既有稳定技能集的用户。
- 没有 DSH Web 的环境;源码安装和开发要求 Node.js 20+。
README
# DSH Skills Manager
Safely manage local skills and inspect shared Agent skills in DeepSeek Harness
DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
Features
- Filter by category or search, then inspect DSH-local and shared Agent skills in Settings → Skills.
- Enable, disable, upload, replace, and delete DSH-local skills.
- Keep shared Agent skills strictly read-only and never change their global metadata.
- Import a plugin directory containing
SKILL.mdthrough the native file picker and confirm every name collision. - Paste one sentence into DSH, Codex, or WorkBuddy and let that agent install the plugin locally.
Screenshots
Filter by category or search in Settings → Skills. DSH-local skills can be enabled, disabled, or deleted; shared Agent skills stay read-only:

Shared Agent skills stay visible when the DSH-local group is empty:

The compact upload dialog accepts a plugin SKILL.md, a plugin directory, or drag-and-drop:

Enabling a DSH-local skill restores its / command in the chat composer:

Prerequisites
- A working DeepSeek Harness Web installation with
dshavailable in PowerShell. - Examples use the
webprofile; replace it with the target profile. - Source installation and development require Node.js 20+. npm installation does not require running
npm installin 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 @michengai/dsh-skills-manager into my local web profile using the official npm registry: dsh plugin --profile web add @michengai/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/MichengAI/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/MichengAI/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 @michengai/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 @michengai/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.23.
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/MichengAI/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 | Use Category and Search to narrow by directory, name, kind, or description. | DSH and shared Agent skills |
| Inspect a skill | Review its name, form, description, and invocation state. | DSH and shared Agent skills |
| Enable or disable | Select Enable or Disable; this controls model invocation and the / command. |
DSH-local skills only |
| Upload a plugin | Select Upload, then choose the plugin directory’s SKILL.md. Its scripts and resources are copied too. |
DSH-local skills only |
| Choose the directory | If the selected file has no usable path, choose the directory containing SKILL.md. |
DSH-local skills only |
| Replace or delete | Confirm a name collision, or select Delete for an unneeded local skill. | DSH-local skills only |
| Inspect shared skills | Review shared Agent skills without changing their metadata. | Read-only |

Deleting a DSH-local skill requires confirmation and cannot be undone.
Escape closes only the frontmost upload or confirmation dialog and leaves Settings open.
Permissions and safety limits
| Directory | View | Enable or disable | Upload or replace | Delete |
|---|---|---|---|---|
$DSH_HOME\skills |
Yes | Yes | Yes | Yes |
$DSH_AGENTS_HOME\skills |
Yes | No | 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.
- All endpoints, including GET
/state, accept only loopbackHostvalues (localhost,127.0.0.1,[::1]). - Write endpoints also require JSON and the DSH client request marker, so cross-site browser requests cannot trigger local file operations.
- Import accepts the local path the user selected. The HTTP API trusts loopback callers only; do not expose the host web server beyond this machine.
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.
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:MichengAI/dsh-skills-manager。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。