DSH HUB
首页插件商店插件包社区排行榜资源发布指南
插件源码
返回插件目录

my-dsh-plugin /

dsh-skill-manager

已验证

DeepSeek Harness 技能安装管理器:从 GitHub 安装/更新/卸载 Skills,分组展示已加载技能,可选兼容 Claude Code .claude/skills。Install/update/uninstall DSH skills from GitHub with loaded-skills overview & .claude/skills compat.

★ 0 Stars0 Forks0 IssuesN/A 社区评分0 已确认安装
查看 GitHub
README来源: main@5827f24e

dsh-skill-manager

Install, update, and uninstall DeepSeek Harness Skills from GitHub repositories, right from Settings. Loaded skills are listed grouped by scope (project / user / bundled / Claude-compat), and Claude Code style skills under .claude/skills can be loaded read-only.

中文:README.zh.md

Features

  • Install a skill from any GitHub source: owner/repo, owner/repo/sub/path, optionally @tag (or paste a https://github.com/... URL). Repo conventions like a top-level skills/ directory are understood.
  • Update / uninstall any skill this plugin installed, with the install manifest kept at <dshHome>/.skill-manager/manifest.json.
  • Loaded-skills overview: the live catalog from ctx.skills, grouped by scope — project-level, user-level, custom, bundled — so you can see exactly what is effective and which level wins.
  • Proxy support for GitHub downloads (env-agnostic): auto-configurable in the page, e.g. http://127.0.0.1:10808 for mixed proxies.
  • Claude Code compatibility (optional, on by default): a read-only skill provider that loads .claude/skills/<name>/SKILL.md from the project root — same SKILL.md + YAML frontmatter spec, zero file copying.

How it works

The harness itself owns skill loading: dsh-skill-filesystem watches the skill roots and hot-picks-up anything written there, and dsh-tool-skill publishes the catalog into every session. Installing a skill is therefore just filesystem work — this plugin downloads a codeload tarball, validates the frontmatter (kebab-case name, non-empty description), and copies the bundle into <dshHome>/skills/<name>/. No registry writes, no restart, no core patch.

The Settings page talks to the host half through the plugin's settings namespace (skill-manager) — the standard settings seam, so no custom RPC surface is needed. Commands run sequentially; results are written back into the same namespace.

The optional .claude/skills compatibility provider registers on ctx.skills at rank 250 (between the native project rows and the user rows), so a same-name project skill still wins over it.

Requirements

  • A harness that mounts the skills capability (dsh-skill / dsh-skill-filesystem / dsh-tool-skill) — standard in current desktop builds.
  • One-line exposure patch (the same precedent as thinking-level-override): the Web client can only read/write settings namespaces on the gateway's allowlist. Add 'skill-manager' to WEB_SETTINGS_NAMESPACES in packages/host/apiproxy/src/api-proxy.ts (source builds) or the corresponding constant in the built @deepseek-ai/dsh-host-apiproxy/lib/index.js (prebuilt deployments), then restart. Without it the Skills page renders read-only.

Install

The plugin never needs to be built by the consumer — the repository ships the prebuilt host entry and browser bundle in lib/ (committed). Two routes:

  • Web / self-hosted harness (source or dev build, e.g. running pnpm dev from a harness checkout) — see below.
  • DeepSeek Harness Desktop (the Tauri app) — one-shot script, next section.

Web / self-hosted harness

# From a local clone (recommended for iterating) — installs as a link
git clone https://github.com/my-dsh-plugin/dsh-skill-manager.git
pnpm dsh plugin add --profile web /path/to/dsh-skill-manager

# Or straight from git
pnpm dsh plugin add --profile web github:my-dsh-plugin/dsh-skill-manager

(dsh CLI from your harness checkout; set DSH_HOME to your harness home if it is not the default ~/.dsh.)

Whitelist: on source/dev builds, also add 'skill-manager' to WEB_SETTINGS_NAMESPACES in packages/host/apiproxy/src/api-proxy.ts (see Requirements) or the Skills page renders read-only.

DeepSeek Harness Desktop — one-shot install

Desktop users don't need to build anything. Run this once in a normal terminal (not inside the app's own harness shell — the app bundle and app-data directory are sandboxed/read-only from there, especially on macOS):

bash <(curl -Ls https://raw.githubusercontent.com/my-dsh-plugin/dsh-skill-manager/main/scripts/install-desktop.sh) --restart

The script is idempotent and does everything automatically:

  1. Pulls the plugin from GitHub (the repo ships the prebuilt lib/, nothing to build) and installs its runtime dependencies (tar, yaml, https-proxy-agent, @deepseek-ai/schemastery) via npm
  2. Patches the whitelist — appends "skill-manager" to WEB_SETTINGS_NAMESPACES in the embedded harness's @deepseek-ai/dsh-host-apiproxy/lib/index.js, so the Skills settings card is read/write (without it, the page renders read-only)
  3. Installs the plugin into the desktop web profile (profiles/web/node_modules/) and registers it in the profile's dsh.profile.bundles
  4. Restarts the desktop app (--restart), after which Settings → Skills appears

Requirements: the machine must be able to reach GitHub (respects GITHUB_MIRROR / proxy env), and the terminal must have write access to the app install dir + app-data dir. Overrides: DSH_DESKTOP_APP, DSH_DESKTOP_HOME, DSH_SKILL_SOURCE_DIR (use a local clone instead of GitHub).

For everyone else (end users of a released desktop build): no manual steps at all — upgrade to a build that ships the patched harness and the seeded plugin, then restart. The Skills page is then available out of the box.

The manual equivalent is editing the profile's package.json:

"dependencies": {
  "dsh-skill-manager": "link:/path/to/dsh-skill-manager"
}
"dsh": {
  "profile": {
    "bundles": ["@deepseek-ai/dsh-base", "@deepseek-ai/dsh-web-app", "dsh-skill-manager"]
  }
}

then pnpm install inside the profile directory, and restart the harness. The Skills entry appears in Settings (after the plugin-managed sections).

Usage

Open Settings → Skills:

  • Install a new skill — paste a source (owner/repo[/path][@tag]); installs into <dshHome>/skills. An already-existing name is reported as a conflict and left untouched (use Update on a matching entry instead).
  • Managed by this plugin — every installed skill with its source, ref, and timestamps; Update refetches the recorded source (HEAD unless a tag was pinned), Uninstall removes the directory and the manifest entry. The harness hot-detects both.
  • Currently loaded — grouped by scope; the loaded badge marks plugin-managed skills currently active in the catalog.
  • GitHub download proxy — enable + URL for environments that need one (e.g. http://127.0.0.1:10808).
  • Claude Code compatibility — toggle the read-only .claude/skills provider.

Development

Building is only for changing the plugin itself — consumers never build. It requires the sibling deepseek-harness checkout (../deepseek-harness) for project references and the shared client preset:

pnpm install
pnpm test       # vitest: source, frontmatter, installer, provider, controller suites
pnpm typecheck  # tsc -b over src + client
pnpm build      # tsc declarations + tsdown host + client bundle into lib/

After a build, commit lib/ so consumers keep getting the prebuilt artifacts.

Known Limitations and Deferred Work

  • Install target is the user level only (<dshHome>/skills); project-level installs are not offered yet.
  • The loaded-skills list reflects the host process cwd: skills in a different project's .dsh/skills are only visible once that project is the working directory.
  • Update uses the recorded source: without a pinned @tag it refetches the default branch head.
  • The .claude/skills provider is not file-watched: edits appear on the next catalog invalidation (e.g. the next session, or any skill change), not instantly.
  • Malformed skill entries are skipped with a warning by design (matching native discovery); an install source whose frontmatter is entirely invalid reports it in the result.

License

Apache-2.0

—/ 5

暂无评分

已验证 DSH bundle

Commit 5827f24e03dd

社区评论

还没有评论,来写第一条。

DSH HUB

社区维护的 DSH 插件索引。不是 GitHub 或 DeepSeek AI 的官方产品。

社区资源API关于