DSH Skills Manager
Manage local and project skills, install from GitHub, preview updates and restore backups
简体中文 · Changelog · Apache-2.0
DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
This README describes 1.1.15. Released changes are in the changelog.
Features
Bring skills from your computer and projects into DSH without switching between Agent folders.
- Manage in one place: browse collapsible source groups, search, read, and toggle skills.
- Global and project skills: the project tab lists every registered workspace, collapsed by default. Project copies take priority over global copies.
- Reuse existing skills: supports Codex, Claude Code, Copilot, and other agents without modifying their source files when toggled.
- Create and import: create a skill or import ZIP archives, folders, and
SKILL.mdfiles into your user directory (default) or a registered workspace. User-level writes can go to DSH skills or Shared Agent. - Skill repositories: discover public GitHub skills, install without overwriting local files, review updates and restore backups.
- Recover deleted skills: DSH skills go to Trash first, so accidental deletions can be restored.
- Source tracking and updates: distinguish local and repository skills, preview file changes, protect local edits, and confirm backup, update or rollback.
Screenshots
Skill management:
Skill repositories:
!Browse and install repository skills
Screenshots show the pre-release 0.1.54 local build used to prepare 1.0.0. The final version adds refresh animation and progress feedback. Screenshots show only the feature panels, with real filenames and project directories cropped out of the background, and use lossless WebP.
Installation
Requires a working DeepSeek Harness installation. The commands below use the web profile; replace it with yours if needed.
Supported plugin installation sources are the npm registry, a locally built .tgz package, and GitHub. GitHub and npm both include a ready-to-run lib. After changing source, run the build before committing.
Ask an agent to install it
Send this to an agent that can use your local terminal:
Install the latest @michengai/dsh-skills-manager into my DSH web profile using the official npm registry. Confirm installation and explain how to reload DSH.
Install manually
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
$OutputEncoding = [System.Text.Encoding]::UTF8
dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=https://registry.npmjs.org/
Restart DSH, refresh the page, and open Settings → Skills. To update, select Check for updates or run the installation command again.
- Plugin
1.1.15is tested with DeepSeek Harness0.1.2-rc.1,0.1.5-rc.1,0.1.5-rc.2,0.1.5-rc.3,0.1.7-rc.1,0.1.7-rc.2,0.2.0-rc.1,0.2.0-rc.2.
Usage
| What you want to do | How |
| --- | --- |
| Find a skill | Choose Global or Project, expand a source group, or use search and filters. |
| Read its contents | Select View details for the skill body and source information. |
| Enable or disable | Toggle the skill switch. This affects DSH without editing source files. |
| Add a skill | Select Create skill or Import skill, then use the side-by-side dropdowns: choose User directory (default) or Specific workspace on the left, and a location or registered workspace on the right. Check the destination path below. A workspace copy is written to that project's .dsh/skills and may be committed to its repository. |
| Install from a repository | Open Repositories → Add repository, enter a public GitHub URL, scan, click Install, use the same side-by-side dropdowns to choose the scope and location or workspace, check the destination path below, and confirm. |
| Uninstall a repository skill | Click the red Uninstall button and confirm. This includes copies in a registered workspace. The installed folder and local edits move to Trash, and Install becomes available again. |
| Update repository skills | Select Refresh & check updates, then Review update to inspect changes and confirm backup and update. |
| Roll back an update | Select Restore previous version for a skill with a backup, preview and confirm. |
| Recover a deletion | Open Trash and restore. |
- Registered workspaces: the project tab lists the workspaces registered in DSH. Git repositories use the nearest Git root; other folders use the workspace directory, so no
git initis required. Skills are scanned only when you expand a workspace. - Independent copies: disabling a project copy allows another enabled copy to take over, and the panel identifies the active source. Disable all copies to turn the skill off completely.
- File management: DSH skills can move to Trash from the general manager. Repository-installed copies in DSH, Shared Agent, or a registered workspace can also be uninstalled from Repositories. Codex, Claude and other external skills remain read-only. Creation, file import and repository install can write to DSH skills or Shared Agent in your user directory, or to a registered workspace's
.dsh/skills. A workspace is never preselected, and Shared Agent is not available for workspaces. - Restore: retired repository provenance belongs to the specific Trash entry and is reactivated only by an explicit restore, including the destination and update/rollback history. A different same-name skill does not inherit repository management. Uninstalling a Shared Agent copy affects every agent using that directory.
Repository boundaries
- The header Check for updates updates the plugin itself. Repository Refresh & check updates checks skill contents without installing or replacing them; it shows animation, counts and the current repository.
- Repository installation writes to user-level DSH skills or Shared Agent (
~/.agents/skills, overridable withDSH_AGENTS_HOME), or to a registered workspace's. The chooser shows the configured path and disables unsafe paths; a missing directory is created only after confirmation. Codex, Claude and other agent directories cannot be selected. Arbitrary paths, unregistered project destinations and plugin-managed caches are not writable. Missing destinations in legacy records default to DSH; updates and rollback follow the recorded destination. Public GitHub repositories are supported; private credentials and automatic updates are not. Removing a subscription keeps installed skills./.dsh/skills - Archives are limited to 32 MiB, including when filtering by subdirectory. Failed scans preserve the previous catalog; corrupt caches require refresh.
- Local edits require explicit confirmation before replacement. Historical backups are not automatically cleaned and consume additional disk space.
Supported Agent directories
~ means your home directory; is the project root of a registered workspace. These are default paths; configured DSH directory variables take precedence.
| Source | Global directory | Project directory |
| --- | --- | --- |
| DSH | ~/.dsh/skills | |
| Shared Agent | ~/.agents/skills | |
| CC Switch | ~/.cc-switch/skills | — |
| Codex | ~/.codex/skills | |
| Claude Code | ~/.claude/skills | |
| Gemini | ~/.gemini/skills | |
| OpenCode | ~/.config/opencode/skills | |
| Cursor | ~/.cursor/skills | |
| Copilot | ~/.copilot/skills | |
| Windsurf | ~/.codeium/windsurf/skills~/.windsurf/skills | |
| Trae | ~/.trae/skills | |
| Trae CN | ~/.trae-cn/skills | |
| OpenClaw / Clawdbot | ~/.openclaw/skills~/.clawdbot/skills | — |
| Roo | ~/.roo/skills | |
| CodeBuddy | ~/.codebuddy/skills | |
| WorkBuddy | ~/.workbuddy/skills | |
| Qoder | ~/.qoder/skills | |
| Qoder CN CLI | ~/.qoder-cn/skills | — |
| Qoder CN | ~/.lingma/skills | |
| Project Skills | — | |
The generic directory is labeled Project Skills and also supports OpenClaw workspace skills. Qoder CN CLI project skills use and appear as Qoder. Qoder CN IDE uses the Lingma directories. Missing external source directories are not shown.
DSH product ecosystem
For a desktop workbench, download DSH Codex Desktop. Existing DeepSeek Harness installations can add plugins as needed by following each project's README. Below are 11 first-party plugins; consult the corresponding desktop release notes and bundled catalog for what that version includes.
| Plugin | What you can do |
| --- | --- |
| Codex UI | Organize projects and conversations, search tasks, and navigate chat turns |
| Agency Agents | Choose and summon specialists for your task |
| Skills Manager | Manage local and project skills; install, update and roll back repository skills |
| Archive Manager | Search, restore, or clean up archived conversations |
| IM Connect | Send tasks and receive replies through messaging platforms |
| Automation | Schedule tasks and review each run |
| BTW | Ask side questions without interrupting the main task |
| Simplify | Use /simplify to improve code within your Git changes |
| PUA | Guide the Agent to try new approaches after failures, investigate causes, and verify results before completion |
| Code Review | Use /review to request an independent Agent code review and receive the report in the current conversation |
| Codex Pet | View conversation notifications and respond to tool approvals and questions through a desktop pet |
Feedback and contributions
Open an issue for bugs or suggestions. Include your DSH and plugin versions, reproduction steps, and a full screenshot for UI issues.
Source code lives in src and uses strict TypeScript while retaining the existing plugin architecture. Run npm run typecheck for type checks, npm run build to generate runtime files, and npm run verify for the full regression and package checks. GitHub and npm both include a ready-to-run lib. After changing source, run the build before committing. Packing still checks types and builds the JavaScript files required by the npm package. CI runs full verification on Node.js 22.19.0 and 24, and code changes also trigger the supported-host compatibility matrix. Contributions are welcome.
To test a source checkout, install dependencies using the pinned pnpm version, run npm run verify, then run npm pack. Install the resulting .tgz with dsh plugin --profile web add , restart DSH and refresh the page. Do not use --ignore-scripts when packing: it skips the build hook.