dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
DeepSeek Harness 技能管理设置页插件:图形化管理用户级/项目级技能的安装、卸载与调用启停
A graphical skill manager for DeepSeek Harness (
dsh). Install, search, enable, disable and remove skills from your Web UI — noSKILL.mdediting, no shell commands.
English · 中文
disable-model-invocation, user-invocable) are rewritten for you.…/tree/<branch>/<dir> link; a parent directory yields a plan from the GitHub Trees API (~0.5 s, zero clone; falls back to a local clone scan automatically). Tick what you want and install in one shot.ghfast.top / gh-proxy.com mirrors (on by default).~/.dsh/skills + ~/.agents/skills in the exact order the official dsh-skill-filesystem provider uses, including same-name shadowing.User scope — manage every skill registered for all sessions:
Project scope — pick a workspace from the Web UI switcher and manage its .dsh/skills:
From npm (recommended):
dsh plugin --profile web add @nay-1/dsh-skill-manage
If the pnpm supply chain policy blocks the build script, grant approval in your profile:
# ~/.dsh/profiles/web/pnpm-workspace.yaml
allowBuilds:
'@nay-1/dsh-skill-manage': true
From GitHub:
dsh plugin --profile web add github:Nay-1/dsh-skill-manage
From a local path:
git clone https://github.com/Nay-1/dsh-skill-manage.git
cd dsh-skill-manage && pnpm install && pnpm build
dsh plugin --profile web add /path/to/dsh-skill-manage
Restart dsh web, then open Settings → Skill Management.
| Scope | Directory | Rank | Notes |
|---|---|---|---|
Project (.dsh) | <projectRoot>/.dsh/skills | 100 | Highest priority |
Project (.agents) | <projectRoot>/.agents/skills | 200 | Shown with a .agents badge |
User (.dsh) | ~/.dsh/skills ($DSH_HOME/skills) | 400 | Default view |
User (.agents) | ~/.agents/skills ($DSH_AGENTS_HOME/skills) | 500 | Shown with a .agents badge |
The project root is resolved to the nearest ancestor containing .git (official provider semantics). Same-name skills are shadowed by the higher-rank root; installs always land in the top root of their scope. Every skill from a non-top rank root (.agents) gets a .agents badge in the list — user and project scopes alike.
Skill formats: directory bundles (<name>/SKILL.md) and flat single-file skills (<name>.md) are both discovered and manageable.
| Tab | What you paste / do | Result |
|---|---|---|
| Local folder | a filesystem path (or a .md file path for a flat skill) | installs after frontmatter validation |
| Browse | browser folder picker | uploads without exposing absolute paths |
| GitHub | github:owner/repo, owner/repo, complete HTTPS URL, or a web …/tree/<branch>/<dir> link | a skill dir installs directly; a parent dir opens an install plan |
| Search | a keyword → skills.sh results (name / repo / install count) | click Install — the skill is located in-repo by name (BFS, no need to know the exact path) |
Install plan (parent-directory links, bare multi-skill repos):
GitHub examples:
| Input | Behavior |
|---|---|
github:JimmyLv/bibigpt-skill | single-skill repo, auto-located |
https://github.com/github/awesome-copilot/tree/main/skills/acquire-codebase-knowledge | tree link, one skill, direct |
https://github.com/github/awesome-copilot/tree/main/skills | parent dir → install plan |
https://github.com/anthropics/skills#path:skills/docx | #path: for exact subdirectories (alternative) |
Every channel behaves the same: if the name exists, an inline "skill x already exists" prompt offers Overwrite / Cancel. Nothing is overwritten by accident.
disable-model-invocation and user-invocable in one click.skills.sh search has a 10-second timeout with a friendly error; the site is a public, undocumented endpoint.GitHub installs hang or time out — is a VPN required?
The clone runs inside the dsh process, so it needs either a reachable network or the mirror fallback (on by default). To use a system proxy, launch dsh in a shell that exports http_proxy/https_proxy; git inherits them. If the process has no proxy variables and the mirror cannot reach GitHub either, the error message tells you so.
Do I need a VPN at all?
Usually not: ghfast.top and gh-proxy.com mirrors are reachable without a proxy. Keep use mirror on direct failure checked (default).
Skills.sh search says "response timed out". The endpoint is a third-party site; wait and retry. Direct connectivity to skills.sh is generally fine from China.
A skill I searched for cannot be installed.
The repository must contain a SKILL.md with a valid name (kebab-case) and description. Skills.sh sometimes lists renamed or removed skills — pick the newest hit or use the repo directly.
Where does a skill come from?
Skills in the .agents home root carry a small .agents badge in the list, so you always know which root you are editing or deleting.
Why does my npm install fail with "Two-step verification required"? That is an npm-side publishing policy, unrelated to this plugin — add 2FA to your npm account or use a granular access token with bypass-2FA enabled.
| Part | File(s) | Role |
|---|---|---|
| Host half | src/index.ts | registers JSON routes under /dsh-skill-manage (host ESM bundle) |
| Browser half | src/client/ | registers the settings.section slot and renders the React page |
| Build | build.mjs | esbuild: host ESM lib/index.js + browser lazy-CJS factory lib/client.js |
| Composition | cordis.patch.yml | bundle patch inserting the plugin row into the composition |
Routes: GET /skills, GET /workspaces · POST /search-skills, /install, /install-upload, /install-github, /remove, /toggle.
Skills are discovered by scanning the filesystem directly (mirroring the official provider's directory and rank semantics), because ctx.skills in the host context only exposes the global layer. GitHub and upload installs clone or stage into temp dirs and reuse one handleInstall validation path. The client bundle is the stable module ID dsh-skill-manage (fixed, not the npm package name — see build.mjs) so registry loading works with any package name.
pnpm install
pnpm build # emits lib/
pnpm typecheck # tsc --noEmit
Local loop: edit → pnpm build → restart dsh web.
MIT