
DSH Skill Manager
☆ 0Skills management page for DeepSeek Harness Web Settings (dsh plugin)
Get this plugin
Review the source, then continue to the publisher.
dsh plugin add dsh-skill-manager@latestAbout this plugin
Source snapshot 8/13/2026dsh-skill-manager
English | 中文
A DeepSeek Harness plugin that lets you manage your own skills — the ~/.dsh/skills directory the harness already discovers — straight from the chat, through slash commands and a model-facing tool.
DeepSeek Harness ships the full skill capability (the dsh-skill registry, the dsh-skill-filesystem provider, the skill loader tool, and the /name composer source). This plugin is a Consumer of that capability: it only reads and writes the user skill directory, so anything you create or change here shows up in the / menu and the model catalog on the next discovery.
Everything is a plugin: this package is a bundle (
dsh.bundle→ acordis.patch.ymlthat inserts one host-plane row). It is plain ESM with no build step.
Install
dsh plugin --profile web add github:bitterSmilezzz/dsh-skill-manager
dsh web
Pin a commit for reproducible installs:
dsh plugin --profile web add github:bitterSmilezzz/dsh-skill-manager#<sha>
To remove it:
dsh plugin --profile web remove dsh-skill-manager
Usage
Slash commands (human, in the composer)
| Command | What it does |
|---|---|
/skills | List your user skills and their model/user invocation flags. |
/skill-remove <name> | Delete a user skill by name. |
The skill_manage tool (the model)
Ask the agent to manage a skill and it calls skill_manage:
list— list user skills.get(name) — read one skill's instructions.save(name,description,content, optionalwhenToUse,modelInvocable,userInvocable,originalNamefor rename) — create or update a skill.remove(name) — delete a skill.
For example: "Create a skill named code-review that reviews a diff for correctness and style."
Skill file format
Skills are the exact format dsh-skill-filesystem discovers — a <name>/SKILL.md directory bundle with YAML frontmatter:
---
name: code-review
description: Review a code change
whenToUse: For pull-request review tasks
---
The instructions the model follows when this skill is loaded.
disable-model-invocation: true and user-invocable: false are written only when the corresponding surface is turned off, matching the provider's default-permit semantics.
How it works
dsh --profile web
└─ skill-manager (host plane) injects commands + tools
├─ /skills, /skill-remove → UI command plane (no model tokens)
└─ skill_manage tool → model calls it to read/write SKILL.md
└─ dsh-skill-filesystem → discovers the change on next catalog refresh
Configuration
| Row | Field | Default | Meaning |
|---|---|---|---|
skill-manager | dshHome | $DSH_HOME, then ~/.dsh | Harness home whose skills directory is managed. |
Model Experience
- The tool result is model-visible only when the model calls
skill_manage; it returns a compact string summary. The tool schema adds a fixed per-request cost when the tool is visible. - Slash commands add no model tokens: command discovery, execution, and output stay in the UI command plane.
- Changed skills reach the model through the existing skill catalog and
/namegesture, whichdsh-tool-skillalready republishes after the filesystem provider invalidates.
Known Limitations
- User-root skills only — this plugin manages
~/.dsh/skills; bundled, project, and preset skills are read-only elsewhere (they appear in the per-session/menu). - No settings UI — management is command- and tool-driven, matching filesystem-backed agent conventions (Claude Code, Codex) rather than a graphical page.
- Text-only skill bodies — the instruction body is plain Markdown; there is no resource enumeration or attachment upload.
- Watcher latency — a change is visible to the model on the next catalog refresh (the filesystem provider watches the directory); the tool result itself does not force an immediate catalog republish.
Publishing
This repository is publish-ready as an installable bundle:
- No build step —
index.jsis plain ESM, so a git install needs nopreparescript and noallowBuildsstep. - Add the
dsh-plugintopic (already set on this repo). dependencies(yaml,@deepseek-ai/dsh-tools) are published, sodsh plugin addinstalls them with pnpm.
License
MIT