DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Skill Manage — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins

@lijian-ui/dsh-skill-manage

Skill Manage

DeepSeek Harness (dsh) 的技能管理插件:可在 Web UI 设置面板中列出、启用、停用、删除和添加技能。

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add @lijian-ui/dsh-skill-manage@0.1.4
README兼容性版本

说明

DeepSeek Harness 的技能管理插件:可在 Web UI 设置面板中列出、启用、停用、删除和添加技能。

兼容性与来源证明

Skill Manage 以 @lijian-ui/dsh-skill-manage 发布,当前版本为 0.1.4。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
npm
Registry 更新时间
2026/9/20

版本

0.1.4stable
2026/8/27
0.1.3stable
2026/8/25
0.1.2stable
2026/8/25
查看其余 2 个版本收起版本
0.1.1stable
2026/8/23
0.1.0stable
2026/8/23

相关插件

正在加载相关插件…

最新版
0.1.4
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
88.5 kB
文件数
8
Surface
web
许可证
MIT
发布源
npm
GitHub
★ 1
周下载
116
安全扫描
✓ v0.1.4 扫描通过
最近提交
2026/8/26
查看源码 ↗项目主页 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

README

dsh-skill-manage · Skill Management Plugin

English | 中文

A skill management plugin for DeepSeek Harness (dsh) desktop: list / enable / disable / delete / add skills, filling the gap in dsh's official skill toggle control.

Features

FeatureDescription
Skill ListDisplay all skills grouped by scope (global / workspace), with search
Enable / DisableToggle switch for hot enable/disable, no restart required
Delete SkillPermanently remove skill files with a custom confirmation dialog
Add SkillPick a .zip archive and auto-extract it into the global skills directory (~/.dsh/skills)
Skill DetailsRender skill content as Markdown, display frontmatter metadata table

Background

dsh officially has no skill enable/disable control — no CLI command, no settings UI, no slash command, no config file field, no API method. The only official "control" is via frontmatter fields disable-model-invocation and user-invocable, which require manual file editing and don't truly disable the skill (it's still discovered and loaded, just hidden from certain interfaces).

This plugin implements true toggle control via a .disabled file rename mechanism: renaming SKILL.md to SKILL.md.disabled causes dsh's official provider to ignore the file (it only recognizes .md extensions), effectively "disabling" the skill.

Installation

Prerequisites

  • DeepSeek Harness (dsh) desktop
  • Node.js >= 18

Integration in dsh-desktop

  1. Install the plugin:
dsh plugin add @lijian-ui/dsh-skill-manage
  1. Restart the desktop app.

Local Development

# Enter the plugin directory
cd extensions/dsh-skill-manage

# Install dependencies
npm install

# Build
npm run build

# Watch mode
npm run watch

# Type check
npm run typecheck

Build output goes to lib/ and is automatically synced to node_modules/@lijian-ui/dsh-skill-manage via junction. Restart the desktop app after each build to load the new bundle.

Usage

  1. Open dsh desktop
  2. Navigate to Settings → Skill Manage
  3. In the skill list:
    • Click the toggle switch to enable/disable a skill
    • Click the delete button to permanently remove a skill
    • Click a skill card to view details
    • Use the search box to filter skills
    • Click "Add skill" and pick a .zip archive to import into the global skills directory

Skill File Convention

StateDirectory BundleFlat File
Enabled<name>/SKILL.md<name>.md
Disabled<name>/SKILL.md.disabled<name>.md.disabled

Skill Scopes

ScopePathDescription
Global dsh~/.dsh/skills/User global skills
Global agents~/.agents/skills/Agents global skills
Workspace<workspace>/.dsh/skills/Project-level skills
BundledDSH_BUNDLED_SKILL_DIRDeployment-bundled, read-only

Technical Architecture

Directory Structure

extensions/dsh-skill-manage/
├── src/
│   ├── index.ts                    # Host entry
│   ├── remote.ts                   # Host RPC methods (list/setEnabled/deleteSkill etc.)
│   ├── skill-files.ts              # File conventions (DISABLED_SUFFIX, collectSkillEntries)
│   ├── skill-files.ts              # File conventions (DISABLED_SUFFIX, collectSkillEntries, frontmatter validation)
│   └── client/
│       ├── index.ts                # Client entry (SECTION_ID, RPC registration, inject)
│       ├── SkillManageSection.tsx  # Main settings component (card list + toggle + detail dialog)
│       └── client-i18n.ts         # Client i18n (zh/en)
├── lib/                            # Build output
├── docs/
│   └── troubleshooting-and-bugs.md # Troubleshooting & official bug analysis
├── package.json
└── tsdown.config.ts

Host Side (src/remote.ts)

Provides the following RPC methods:

MethodFunction
list(sessionId)List all skills with enabled status
content(name, sessionId)Get full skill content
setEnabled(name, sessionId, enabled)Enable/disable skill (file rename)
deleteSkill(name, sessionId)Delete skill
importZip(sessionId, payload)Extract a .zip archive and install the skill into the global skills dir (<DSH_HOME>/skills, default ~/.dsh/skills)
workspaces()List available workspaces

Client Side (src/client/)

  • index.ts: Registers the settings section via ctx.slots.inject
  • SkillManageSection.tsx: React component rendering skill cards, toggle switches, detail dialog, delete confirmation, and migration dialog
  • client-i18n.ts: Chinese/English translations

Toggle Mechanism

User clicks toggle
  → Client optimistically updates UI (immediate switch state change)
  → RPC call to host setEnabled
  → Host: rename(SKILL.md ↔ SKILL.md.disabled)
  → dsh chokidar watcher detects file change
  → Registry cache invalidated (revision++)
  → After 800ms delay, ctx.emit('connection/reset')
  → Client fetches Map cleared
  → Next / completion re-queries → gets latest skill list

Known Issues & Solutions

Slash command completion not refreshing after enabling a skill

Issue: After enabling a skill, the / slash command completion menu in the chat doesn't show the newly enabled skill.

Root Cause: dsh's official dsh-client-ui-skill package is missing a subscription to the skills/change event, causing the client-side skill list cache to never be invalidated when skill files change.

Our Solution: In reloadAfterHot, after an 800ms delay, call ctx.emit('connection/reset') to silently refresh all module caches. Since the user is in the settings panel, they won't perceive the cache refresh in the chat interface.

See Troubleshooting & Bug Analysis for details.

Internationalization

Supports Chinese and English. Translation files are in src/client/client-i18n.ts. Language follows the dsh desktop language setting.

Tech Stack

  • Language: TypeScript
  • Build: tsdown (rolldown)
  • Frontend: React 18
  • Markdown Rendering: MarkdownText component from @deepseek-ai/dsh-client-ui-primitives
  • YAML Parsing: yaml (frontmatter parsing)
  • File Watching: dsh's official chokidar watcher (auto-detects skill file changes)

License

MIT

Related Links

  • Troubleshooting & Bug Analysis
  • DeepSeek Harness (dsh)

相关插件

继续浏览 ui-customization 分类下经过校验的插件。

Remote Web Ui@linxin666/dsh-remote-web-ui通过扫码配对访问 dsh Web GUI,共享一个官方界面:设置按钮旁的二维码可将手机和 PC 配对到同一个 Web GUI(手机采用竖屏触控适配层,PC 使用完整桌面界面),通过一次性令牌和 rClient Ui Task Board@linxin666/dsh-client-ui-task-board面向 DSH Web GUI 的主机权威任务面板,支持实际会话执行、主机 cron 调度以及可选的跨平台空闲睡眠保护;以挂载方式提供,无需修改 DSH 源代码。Client Ui Git Graph@linxin666/dsh-client-ui-git-graph外部 dsh Web GUI 插件:空会话 Git 分支选择器和 Git 图,包含实际的主机端 Git 操作与防护,作为 dsh 配置文件包Pet@linxin666/dsh-pet适用于 dsh Web GUI 的多宠物伴侣插件:由注册表驱动的浮动宠物,可响应模型活动,支持为每只宠物命名、抚摸/喂食互动以及亲密度评分