Back to marketplace

dsh-skill-hub

Agent & Workflow

cheshireez/dsh-skill-hub

In-GUI skill hub for DeepSeek Harness: browse, search, enable/disable, inspect, diagnose and scaffold local skills from the official ctx.skills registry.

  • agent-skills
  • deepseek-harness
  • dsh
  • dsh-plugin
  • skill
  • skill-hub
  • skills
GitHub Stars
11GitHub
Views
0DSH Plugin Hub
Forks
1GitHub
Open issues
1GitHub Issues
Manifest version
0.3.6dsh-skill-hub
Latest push
Sep 3, 2026GitHub
License
MITTypeScript
Plugin type
Host + ClientRuns in both Host and Web Client

Verification and compatibility

This section shows evidence collected by the catalog. Undeclared information is labeled as unknown.

Runtime verified
01Exact source: npm · dsh-skill-hub@0.3.602Validated: Sep 3, 202603Verified Harness: 0.1.0-rc.7
Current-version compatibility
Verified on the catalog Harness version
Declared Harness range
Not declared
Declared platforms
Not declared
Profiles
web
Build approval
No requirement detected
Permissions
Not declared
External services
Not declared
Telemetry
Unknown
No known risk flags found

This is not a security endorsement. Review source, permissions, and configuration before installing.

View evidence and scope

Verification covers only the named source, version, and Harness environment. It does not guarantee future compatibility.

  • dsh-skill-hub@0.3.6
  • The plugin completed a load check in an isolated environment.

README

View source

dsh-skill-hub

中文版 | English

In-GUI skill hub for DeepSeek Harness — browse the full ctx.skills catalog, toggle skills, inspect bodies, fix discovery issues, install from the market, and scaffold new ones.

Host runs in the dsh process via official SDKs only; browser renders through official slots. No dsh source changes.

Quick start

dsh plugin --profile web add dsh-skill-hub
# restart dsh web → Settings → 技能 → Market → scan → import

Requires Node ^22.19 || >=24 + dsh web (0.1.2-alpha.5, 0.1.x forward compatible).

Features

Settings → 技能 — 3 tabs: Sources (skills, flat/grouped + project tree), Scenes (custom tag groups), Market (install + update).

  • Browse — every root of the ctx.skills registry: project / user / bundled + third-party providers. Search across name, description, displayName; filter by source and invocation (model / user); sort by name, added time, or usage. Same-name skills from different sources get a duplicate badge instead of silently hiding.
  • Toggle — per-skill switches and per-group tri-state switches with a conflict dialog (close all / keep on). Disabling renames the discovery file (never deletes); disabled skills stay inspectable and re-enableable from their detail page. Only ~/.dsh/skills & ~/.agents/skills are writable; everything else is read-only.
  • Organize — scenes (tags) plus auto-aggregated source collections, all drag-reorderable and persisted in ~/.dsh/dsh-skill-hub.json. Edit mode reveals delete/reorder without cluttering the read view.
  • Diagnose & fix — files the provider skips (missing frontmatter, bad YAML, name mismatch, short description) show up with reasons; auto-fixable ones (e.g. unquoted : in descriptions) get a one-click Fix button.
  • Scaffold — new-skill wizard writing to ~/.dsh/skills or ~/.agents/skills (SKILL.md template below).
  • Market — built-in curated repos plus custom owner/repo sources. Any top-level directory containing SKILL.md scans as a root (no allowlist). Async import with byte-level progress and cancel. Each source pins a version — click the ref badge to switch between releases, branches, or a custom ref.
  • Track updates — imported skills record a repo + commit snapshot. Check all / update-all, per-source badges (installed / updatable / deleted upstream / new release). Sync overwrites local edits (with confirm); upstream deletions move into a restorable trash that keeps source and scene membership.
  • Stats — per-skill call counts + last-used times from session logs (incremental cache), group summaries; window and scan interval live-configurable from the settings card.
  • Settings card — master switch, announce-to-agent, invocation dot colors, usage display toggles, stats window/interval; plus a self-update check against GitHub releases.

Why not just the read-only browser?

dsh-skill-manager browses, dsh-skill-importer / dsh-find-skill import. This plugin manages.

Capabilityread-only browserdsh-skill-hub
Cataloguser roots, self-scannedctx.skills registry, all roots + third-party
Toggle✅ per-skill + per-group, never deletes
Diagnostics✅ reasons + one-click fix
Market✅ built-in + custom, version pins, update-all
Source tracking✅ check/sync/trash with restore
Stats✅ counts + last-used

Scaffold format (SKILL.md):

---
name: my-skill
description: One line when the agent should use this skill.
---
# my-skill
Body...

How it works

GitHub repo ──scan/import──▶ ~/.dsh/skills
     ▲                          │
     └─check/sync/delete── ctx.skills ◀─ provider
                                │ snapshot/get
                                ▼
                    /api/skill-hub/* ──▶ Panel (Settings → 技能)

Host uses only ctx.skills.snapshot/get, ctx.webServer.register, ctx.systemPrompt.section. Loopback-only routes (127.0.0.1/localhost), JSON.

HTTP API

EndpointMethodPurpose
/api/skill-hub/catalog?cwd=GETskills + disabled + diagnostics + duplicates
/api/skill-hub/skill?name=&cwd=GETskill body (works for disabled too)
/api/skill-hub/skill/deletePOSTmove to trash (snapshots source+scenes)
/api/skill-hub/togglePOST{name, enabled}
/api/skill-hub/toggle-batchPOST{names, enabled}
/api/skill-hub/createPOST{name, description?, root?}
/api/skill-hub/diagnostic/fixPOST{path} auto-fix frontmatter
/api/skill-hub/statsGETinvocation counts
/api/skill-hub/configGET/POSTruntime config (null clears)
/api/skill-hub/groupsGETtags + collections + orders
/api/skill-hub/tag etc.POSTcreate/rename, delete, set members, reorder
/api/skill-hub/market etc.GET/POSTlist/add/delete/pin/check/sync sources
/api/skill-hub/market/source/versions?repo=GETreleases + branches for the version picker
/api/skill-hub/repo?repo=GETdiscover (any root)
/api/skill-hub/repo/importPOSTasync job {jobId, total, totalBytes}
/api/skill-hub/repo/import/progress?jobId=GETpoll job
/api/skill-hub/repo/import/cancelPOSTcancel job
/api/skill-hub/sources etc.GET/POSTlist/check/sync/delete/restore/clear trash
/api/skill-hub/updateGETplugin latest release

Development

npm run typecheck  # tsc --noEmit
npm test           # 176 tests, 9 suites
npm run build      # tsc + tsdown → lib/index.js + lib/client.js

Don't run two dsh web on the same $DSH_HOME + cwd — no session-log lock (seq gap corruption). Use separate DSH_HOME.

Troubleshooting

  • duplicate loader entry id: skill-hub — remove the duplicate install (keep one dsh plugin add method).
  • Skill missing — check the diagnostics section (frontmatter / name mismatch / short description).
  • Dots missing in / menu — dsh internals changed; catalog still works.

Community

Issues · Discussions · Showcase · Market PR · Discord

License

MIT — LICENSE.

Comments

0
Newest first