DSH Plugins Marketplace

DSH Plugins

Plugins

/

Skills-Manager

y

Skills-Manager

Manifest valid

Skills Management

UI (client)hasBundlePatchMachine translated

Skills-Manager

中文

Package: @dsh-skills-manager/dsh-skills-manager A dual-face Skills management plugin for DeepSeek Harness (DSH).

Skills-Manager unifies Agent Skills discovered from many sources behind one management surface. It is a Cordis plugin split into two independently built and loaded halves:

  • Host half (Node.js) — scans, imports, and manages skills from multiple sources; owns the skill registry, trash bin, repository browsing, company skill sources, and update/diff tooling. Registers a ctx.skills provider so every enabled skill becomes live for the harness.
  • Client half (browser) — renders a unified Skills panel inside the DSH settings area, with five tabs: Skills, Trash, Repositories, Company, Updates.

The two halves talk over webServer HTTP (/api/skills-manager): the client calls typed routes with fetch and re-pulls a snapshot after every mutation.

Full architecture, data model, and design rationale live in DESIGN.md.

Features

  • Multi-source discovery — DSH global, project, per-agent (Codex / Claude / Copilot), and extra user directories.
  • Import & authoring — import from a zip archive, a folder, or a single SKILL.md; or create a brand-new managed skill.
  • Enable / disable — toggle skills live against the harness catalog.
  • Trash with retention — soft delete, restore, permanent purge, empty, and automatic expiry cleanup (default 30 days).
  • Repository sources — browse GitHub repositories, list their skills, and install them.
  • Company sources — register api / git enterprise endpoints, sync, and install advertised skills.
  • Updates & diff — check upstream versions and review an inline unified diff before applying an update.
  • Local persistence — JSON documents under ~/.dsh/skills-manager/ with revision tracking and file watching.

Architecture

Host half (Node.js)                         Client half (browser)
  src/index.ts                                src/client/index.ts
  SkillsManager service  ◄── HTTP fetch ──►   Settings panel (React)
  JsonFileStore (~/.dsh/skills-manager/)      re-pull snapshot after each change
  tsc → lib/index.js                          tsdown → client/client.js
  • Transport — one prefix route /api/skills-manager registered on ctx.webServer; every response is a { ok, data } / { ok, code, error } JSON envelope.
  • Security — requests must originate from a loopback host (or a same-origin / none sec-fetch-site); every mutating POST must carry the x-dsh-skills-manager marker header and an application/json content type; request bodies are capped at 4 MB.

Quick Start

Prerequisites

  • Node.js ^22.19.0 || >=24.0.0
  • pnpm 11.7.0 (declared as packageManager)

Install & build

pnpm install
pnpm build       # clean → tsc (host) → tsdown (client) → normalize banner

pnpm build produces the host bundle under lib/ and the browser bundle at client/client.js.

Verify

pnpm typecheck   # host + client + test projects, --noEmit
pnpm test        # node:test runner over test/**/*.test.ts

Load into DSH

This package is a DSH bundle plugin. It declares:

  • dsh.bundle.patch → ./cordis.patch.yml (inserts the plugin into the profile layer stack as id: skills-manager),
  • dsh.client.inject → @deepseek-ai/dsh-client-ui-slots, @deepseek-ai/dsh-client-locale,
  • dsh.client.platform → web.

Once the package is installed into a DSH host that consumes these fields, the host half registers the /api/skills-manager route and the ctx.skills provider on load, and the client half contributes the panel to the settings.section slot. Open the harness Settings → Skills Manager to use it.

Development watch

pnpm watch       # tsdown --watch for the client half
pnpm test:watch  # re-run tests on change

Configuration

The host plugin reads the following config (all optional; zero-config defaults resolve to a local setup):

KeyTypeDefaultDescription
projectRootstring''Project root scanned as the project source.
extraDirsstring[][]Extra directories scanned as the local source.
agentRoots.codexstring''Override for the Codex skills directory.
agentRoots.claudestring''Override for the Claude skills directory.
agentRoots.copilotstring''Override for the Copilot skills directory.
githubApiBasestringhttps://api.github.comGitHub REST API base.
githubRawBasestringhttps://raw.githubusercontent.comGitHub raw content base.
githubTokenstring''Optional bearer token for authenticated requests.
trashRetentionDaysnumber30Days a trashed skill is kept before auto-purge.
scanOnStartbooleantrueWhether to run a discovery scan at startup.

Scripts

ScriptPurpose
buildclean → tsc -p tsconfig.json → tsdown → normalize-client-banner
build:clientBundle the client half only
typecheck--noEmit check across host, client, and test tsconfigs
testnode --test "test/**/*.test.ts"
test:watchtest in watch mode
bundle / watchtsdown bundle / watch
cleanRun scripts/clean.mjs
prepackbuild + scripts/preflight.mjs guard

Project Structure

src/
  index.ts        Host plugin entry (config schema, inject, apply)
  service.ts      SkillsManager orchestration core
  http.ts         Host↔Client HTTP transport (/api/skills-manager)
  file-store.ts   JSON persistence (revision tracking + file watching)
  scanner.ts      Multi-source discovery
  importer.ts     zip / folder / file import + create
  diff.ts         LCS unified diff
  github.ts       GitHub repo & company source remotes
  skill-file.ts   SKILL.md parsing / serialization / id hashing
  types.ts        Shared wire vocabulary + Cordis event augmentation
  client/         Browser half (panel, api client, wire types, locales, styles)
test/             node:test suites (http + api)
DESIGN.md         Full design document

Tech Stack

  • Language — TypeScript
  • Frontend — React 18 (React.createElement, no JSX runtime), lightningcss for CSS Modules
  • Runtime deps — jszip, yaml
  • Build — tsc (host) + tsdown (client)
  • Tests — Node built-in node:test with native TypeScript type stripping

License

MIT

Comments

Loading…

Similar plugins

dsh-skill-manager

by jackmis0724

DSH Web GUI skill manager: browse, preview, import, add, and batch-delete user skills (dsh plugin)

Manifest valid

★ 0

MIT

TypeScript

Aug 15, 2026

dsh plugin --profile web add @dsh-external/dsh-skill-manager

by Zh0uHX

在 DSH 设置中搜索、安装和管理 Skills.sh 技能

Development & InfrastructureManifest valid

★ 1

MIT

TypeScript

Sep 22, 2026

dsh plugin --profile web add dsh-skills

by mhdfy1988

Non-invasive Skill lifecycle manager for DeepSeek Harness

Manifest valid

★ 0

MIT

TypeScript

Aug 24, 2026

dsh plugin --profile web add dsh-skill-manager

by xiaoxianyu-office

DSH Skills 管理器:设置页系统/用户技能分类,用户技能开关/编辑/删除/新建。Skills manager for DeepSeek Harness: system/user skill management (toggle/edit/delete/create) in Settings.

Manifest valid

★ 3

↓ 283/wk

JavaScript

Aug 14, 2026

dsh plugin --profile web add dsh-skills-manager

by EricXu20266

DSH skill manager — list, group and enable/disable skills, delegate creation to the host agent

Manifest valid

★ 0

TypeScript

Aug 18, 2026

dsh plugin --profile web add dsh-skillmanager

by cocofhu

skillhub of deepseek-harness

Tools & CapabilitiesManifest valid

★ 8

↓ 312/wk

MIT

TypeScript

Sep 5, 2026

dsh plugin --profile web add skillhub-plugin