Introduction¶
When collaborating on Agent Skills in DeepSeek Harness, a common problem is manual maintenance: pulling them down from Git repositories, putting them in a specific directory, modifying configuration to register them, and manually removing them when no longer in use. Once the number of skills grows, starting, stopping, updating, and viewing content become repetitive operations, and it is often not intuitive whether disabled skills are actually removed from the model context.
dsh-skills-tools is a plugin designed to address this. Maintained by hxlog, it serves as the Skills Manager for DeepSeek Harness: importing Agent Skills from Git repositories or local directories, managing them grouped by repository, and enabling, disabling, completing, and viewing content at any time. It belongs to the “Workflow” category in the community directory and has no official affiliation with DeepSeek or Huaxin.
Who is this for¶
This plugin is for people already using DSH who want to manage skill sources, activation status, and updates. If you have only one or two skills that are long-term stable, the benefit of installing the plugin is small; however, if skills come from multiple repositories and require frequent activation/disactivation or follow upstream updates, this plugin can significantly reduce repetitive operations.
Core Capabilities¶
The following explains each function one by one.
- Group by Repository: Skills are aggregated into collapsible repository cards based on their source repository; repositories with enabled skills are prioritized, and enabled skills within a repository are prioritized.
- Partial Import Completion: Repositories with only partial skills imported will show “N importable”; clicking “Import More” allows selecting remaining skills from the existing snapshot without re-cloning.
- Repository-level Toggle: Enable or disable an entire repository with one click; the toggle shows a semi-selected state when partially enabled.
- Expand to View Content: The arrow on the right of the row can expand the SKILL.md body, source repository, commit, path, and update time, and allows for in-place update or removal.
- Git Import and Snapshots: Supports https / ssh / internal network repositories, branches / tags / commits, and subdirectories; the import is a readonly snapshot; the original directory and remote are not modified.
- Monorepo Subdirectories: Pasting a large repository address in the
/tree/<ref>/<subdir>format allows importing subdirectory skills, pulling only the target subdirectory without downloading the entire repository. - Check Updates: Compares with the latest upstream commits, switches to the snapshot after confirmation; multiple repositories can be checked at once.
- Global Collapse/Expand: One-click expand all / collapse all at the top; defaults to collapsed on first open, and the collapsed state is saved locally and persists after refresh.
- Automatic Update Checks: Automatically checks once when the settings page is opened, and rechecks every 30 minutes while the page is visible; a top banner notifies when new commits are found, allowing “Update All” or individual updates.
- Recent Operations Popup: Opens an independent popup from the toolbar, listing enable, disable, import, update, and failure records in reverse chronological order; supports refresh and copy; retains the last 300 records after restart.
The README explicitly states: Disabled skills are not registered into the model, taking up neither context nor being mistakenly called. This is how this plugin differs from approaches that only “hide UI items.”
Installation and Activation¶
The environment requirements are DeepSeek Harness 0.2.x (Web GUI dsh web or DSH Desktop) and Node.js ≥ 22.13. The package is published on npm with the name dsh-skills-tools, current version 1.3.0.
It is important to note that this is a DeepSeek Harness plugin, not a standard npm dependency library. npm i dsh-skills-tools only downloads the package; it still needs to be installed into the DSH profile at runtime.
Install via Plugin Page (Recommended):
- Open DSH Web (or DSH Desktop) → Sidebar “Plugins” (Desktop is “Settings → Plugins”).
- Click Install, enter
dsh-skills-tools, and confirm. - Enable the new bundle, refresh the page, and open “Settings → Skills”.
Install via Command Line:
dsh plugin add dsh-skills-tools # Default profile
dsh plugin --profile web add dsh-skills-tools # Web
dsh plugin --profile desktop add dsh-skills-tools # Desktop
After installation, there is a detail easy to overlook: dsh plugin add only puts the bundle into the profile and does not automatically enable the bundle. You need to enable it once in the plugin page, or confirm that the profile’s dsh.profile.bundles contains dsh-skills-tools.
Typical Usage¶
The process for importing and managing skills is as follows.
- Open “Settings → Skills → Import Skills”, paste the Git address. Supports
https://,git@,file://, and local absolute paths; internal network repositories use local git credentials directly. - Optionally fill in branch / tag / commit and subdirectory, click “Scan”. Check the skills to install, duplicate names will suggest a modifiable name, click “Install Selected”. Installation enables the skill.
- Return to the list to manage by repository: repository toggle enables/disables in bulk, row toggle controls individual skills, “Import More” completes remaining skills in the same repository, click the right arrow to view the body.
Data is stored in the plugin data directory:
~/.dsh/dsh-skills-tools/
├── state.json 仓库、技能、启用状态与检查时间
└── repos/<仓库>-<提交>/ 只读快照
Each import or update copies the repository to that directory; deleting a skill only removes the state and does not affect the repository or snapshot. The enabled state determines if the skill is registered into the DSH skills directory; disabling removes it from the model context.
It provides REST interfaces externally for scripting operations:
GET /skills-tools/api/state
POST /import/scan
POST /import/commit
POST /repos/inspect
POST /repos/import
POST /repos/toggle
POST /repos/check-updates
POST /skills/toggle
POST /skills/bulk
POST /skills/remove
POST /skills/update
POST /refresh
GET /logs
See docs/API.md in the repository for interface details.
Permissions and Considerations¶
Regarding security, the plugin does not save tokens; Git authentication is delegated to the local credential helper or SSH key, and the plugin only calls git; imports and updates write to the data directory, and the original repository directory and remote are not modified; it does not initiate network requests other than the filled repository addresses.
The permission scope is as follows:
- File Access: Read/Write plugin data directory
~/.dsh/dsh-skills-tools/; when importing a local directory, only reads that directory. - Network: Only accesses the filled Git repositories during import and update checks.
- Process: Calls local
gitduring import / update checks. - UI Injection: Settings page “Settings → Skills” panel, relying on
@deepseek-ai/dsh-client-ui-settingsand@deepseek-ai/dsh-client-locale.
Known Limitations:
- Only manages skills for the current DSH profile; switching profiles requires re-importing.
- Git sources require
gitto be installed locally; internal network repositories require credentials to be configured in advance. - Skill content preview is limited to 64 KiB; exceeding parts are truncated with ellipses.
These limitations are worth checking against your environment before installation, especially whether credentials for internal network repositories are ready.
Regarding Installation Source¶
The plugin runs with the permissions of the current dsh process, capable of reading and writing the plugin data directory and calling local git. Before installation, it is recommended to open the repository source code and LICENSE (MIT) to ensure no issues, then decide whether to enable. It is worth noting that it runs in your own work process, is a third-party community plugin, and is not a component maintained by DSH.
Summary¶
dsh-skills-tools brings skill import, grouping, start/stop, update, and viewing into a settings panel, replacing the series of manual actions of moving directories and modifying configurations. Its value is concentrated in scenarios with multiple repositories, multiple skills, and frequent adjustments; when skills are few and stable, the benefit is relatively limited.
- Community Directory Page: https://www.skillhub.cn/plugins/hxlog/dsh-skills-tools
- GitHub: https://github.com/hxlog/dsh-skills-tools