dsh-skill-studio
Skill studio for DeepSeek Harness: visualize, edit and enable/disable agent skills from the web settings panel and via skillmgr_* tools
- Stars
- 2
- Language
- JavaScript
- Created
- Aug 23, 2026
- Updated
- Sep 29, 2026
Introduction
dsh-skill-studio
English | 中文
Visualize, edit and manage DeepSeek Harness skills right from the web settings panel — list every skill DSH discovered, view its full SKILL.md, edit the body, and enable/disable model & user invocation with a switch.
Features
- Skill 管理器 settings panel — 设置 → Skill 管理器: list every skill (name, description, source root, nested flag, model/user invocation state), open any skill to see its full body, edit the
SKILL.mdfile in place, and toggle enable / model-invocable / user-invocable. - skillmgr_list — list all skills with source, nested flag and invocation state.
- skillmgr_get — view one skill's full detail (body + path + policy).
- skillmgr_save — save a full-body edit (frontmatter + markdown) back to the file.
- skillmgr_policy — enable/disable a skill (
enabledmaster switch, or per-interfacemodelInvocable/userInvocable). - Two merged catalogs: ① direct filesystem scan of the standard roots (project
.dsh/skills/.agents/skills, user~/.dsh/skills/~/.agents/skills), expanding one level of nested bundles (e.g.~/.agents/skills/superpowers/<name>— flagged 嵌套/nested), plus ② the official registry (ctx.skills) for runtime / bundled skills. The panel therefore shows every skill on disk even when the host-plane filesystem provider is disabled (the web architecture deliberately moves local discovery to per-agent presets). - Enable/disable is implemented with line-level frontmatter surgery on
disable-model-invocation/user-invocable; all other frontmatter lines are preserved verbatim. Saves are picked up by DSH on rediscovery. - Read-only safety: only skills with a real file path (filesystem sources) are editable; runtime / bundled skills are shown as read-only. Routes are loopback-only.
Install
-
Add the plugin to your profile:
# from npm dsh plugin --profile web add dsh-skill-studio # or from GitHub (the repo carries the `dsh-plugin` topic) dsh plugin --profile web add github:zhengjy01/dsh-skill-studioExpected: the command prints the resolved package and records it in that profile's
dsh.profile.bundles(the host only loads plugins listed there).Screenshot slot 1 — install output. Capture the terminal right after the command, last ~10 lines (resolved package + profile path). Redact your username / home path if it appears. Save as
docs/images/dsh-skill-studio-1-install.png, then replace this block with. -
Restart
dsh web(or use the sidebar 重启 / Restart entry if thedsh-restartplugin is installed).Expected: the host boots with
dsh-skill-studioin its plugin list. There is no build step —lib/is plain ESM. -
Open the Web GUI → 设置 (Settings) → Skill 工作台.
Expected: the settings nav shows the "Skill 工作台" entry, and the panel lists every discovered skill with a source badge and its invocation state.
Screenshot slot 2 — panel is live. Capture the settings nav (entry visible) plus the panel header and list. Redact any skill names you consider private. Save as
docs/images/dsh-skill-studio-2-panel.png.
Usage
-
Click a skill in the list.
Expected: the detail view shows that skill's body plus its source and path.
-
Edit the body in the textarea, then click 保存 / Save.
Expected: the panel reports a successful write, and the skill's
SKILL.mdon disk now contains your text.Screenshot slot 3 — editing works. Capture the detail view with the editor open; use a non-sensitive skill (or blur its content). Save as
docs/images/dsh-skill-studio-3-edit.png. -
Flip the 启用 / 模型可调用 / 用户可调用 switches.
Expected: the row's state changes immediately and stays changed after a refresh (the switch writes
disable-model-invocation/user-invocableinto the frontmatter).Screenshot slot 4 — switches take effect. Capture the list row with one switch off, then the same row after a page refresh. Save as
docs/images/dsh-skill-studio-4-switches.png. -
Or just tell your agent:
列出所有 skill,并告诉我哪些被禁用了 帮我禁用 session-knowledge 技能Expected: the agent answers through the
skillmgr_*tools.
Screenshots to add
| # | Where | What it shows | How to capture | Suggested filename |
|---|---|---|---|---|
| 1 | Install | The install command's output (package + profile) | Terminal right after step 1, last ~10 lines; redact home path | docs/images/dsh-skill-studio-1-install.png |
| 2 | Install | The panel open in Settings with the skill list | Settings → Skill 工作台; include the nav entry | docs/images/dsh-skill-studio-2-panel.png |
| 3 | Usage | Editing a skill body and saving | Detail view with the textarea open; use a non-sensitive skill | docs/images/dsh-skill-studio-3-edit.png |
| 4 | Usage | The three switches after a refresh | Same row before/after refresh | docs/images/dsh-skill-studio-4-switches.png |
After adding the images, re-run npm pack --dry-run and the portability gate
(npm run verify) — the README is part of the published tarball.
Notes
- The frontmatter
namekey must match the skill name (kebab-case); breaking the frontmatter format may cause DSH to skip the skill on rediscovery. - Editing is scoped to files the skill registry reports; the plugin never accepts arbitrary paths.
- Zero runtime dependencies beyond the DSH peer packages.
License
MIT