Preface

DeepSeek Harness (command name dsh) treats models, tools, sessions and interfaces as plugins. The official repository deepseek-ai/deepseek-harness has the slogan “Everything is a Plugin”: Skills are just regular files, stored globally at ~/.dsh/skills, and workspace-specific skills are placed at .dsh/skills under that workspace. DSH discovers them via file watching, so changes take effect immediately after editing the files.

The real headache comes from management. As the number of skills grows, you need to copy them across workspaces, disable unused entries, and verify which layer a duplicate skill with the same name belongs to. The default web interface has no dedicated skills settings page, forcing you to browse directories and rename files manually. The community plugin dsh-skill-viewer solves exactly this problem: it adds a “Skills” section to the settings page, supports hot enabling/disabling, deletion and creation of skills, and also comes with the terminal command dsh-skill.

This article is collated after cross-checking the plugin directory page, GitHub README, package.json and the v0.7.0 Release. The community directory deepseek-harness-plugin.com is an independent site for discovering and installing community plugins, and has no official affiliation with DeepSeek or HyperGAN. Do not treat it as an official app store.

What is this

dsh-skill-viewer is a UI enhancement plugin maintained by GitHub user Fishquito7, with the repository address Fishquito7/dsh-skill-viewer. It uses the MIT license, and is primarily written in JavaScript (the source code is TypeScript, and the compiled artifacts lib/*.js are committed to the repository). The version number in package.json is 0.7.0, and the client declares platform: web, which will be automatically attached to the web profile via dsh.bundle without manually editing cordis.patch.yml.

This plugin was included in the community directory on 2026-08-15, categorized as “UI Enhancement”, with the description “Web interface skill management tool: hot enable/disable, deletion and creation”. As of 2026-08-17, the GitHub repository has 50 stars (the directory page listed 32 at the time, please refer to the repository page for the accurate count).

It does not solve the problem of “teaching the model new skills”, but rather makes the skills already stored on disk browsable, switchable and migratable. The README clearly states that the plugin does not parse skills on its own, it is just a management interface for skill files; every operation on the page and via the dsh-skill command ultimately modifies SKILL.md, and DSH’s built-in file listener will detect the changes immediately, so enabling, disabling, adding, deleting and migrating skills all take effect without restarting the gateway.

Core Features

Card List and Hot Toggle

On the settings page, installed skills are listed as cards, and can be searched by name. Click a card to expand its full content; the enable/disable toggle uses the same style as the built-in plugin list. The page will automatically refresh when entered.

Disabling a skill does not modify a configuration item, but renames SKILL.md to SKILL.md.disabled; enabling it renames the file back. Bundled skills included with the deployment are read-only and cannot be disabled or deleted.

Unified Import Entry

v0.7.0 consolidated the two-level menu of “directory bundle / single file” into a single “+” button: you can directly select a .md or .zip file, or drag files, compressed packages or skill folders into the page. The plugin will automatically recognize directory bundles, single files or compressed package structures, and reject non-compliant content with an explanation. The release notes mention that zip imports include zip-slip path protection: packages with a single top-level folder containing SKILL.md will be imported as a directory bundle, while flattened .md files will be imported one by one.

Workspace Sidebar

Since version 0.3.0, skill entities are stored directly in their respective locations: global skills are at ~/.dsh/skills, and workspace-specific skills are at .dsh/skills under that workspace. There is no hidden storage or symlinks. After uninstalling the plugin, these skills remain regular files, and DSH will still discover them normally.

Below the “skill list” on the page, there is a horizontally scrollable workspace bar (global + each workspace). Clicking a workspace will only display the skills under that workspace.

Batch Migration

To the left of the “+” button is the migration button. In the dialog box, you can manually select the source workspace, target workspaces (multiple selections allowed) and skills, then choose to batch copy or move them. No skills are selected by default; skills are migrated one by one, and a failure for one item will not affect the rest. Move mode only allows a single target. When the source workspace has groups, you can filter skills by group above the skill list (added in 0.7.0). Changing the storage location is done by actually copying or moving files to the target folder, with validation performed first, and rollback triggered if any step fails.

Skill Groups

Version 0.5.0 added a group bar below the workspace bar (All + group names). Click the “Groups” button to open the editor: create/rename/delete groups, select a workspace, name the group and batch-select members. Groups are only written to the plugin’s own display configuration file ~/.dsh/skills/.system/skill-viewer/groups.json, and do not modify the skill directories.

Precise Scoped Operations

Starting from version 0.6.4, when a skill with the same name exists both globally and in a workspace, deletion, enabling/disabling and content viewing will operate precisely based on “name + scope”. Each row on the page can be expanded and operated independently, and will not conflict with duplicates from other scopes; if an entry for the specified scope is not found, an error will be thrown directly, without falling back to unintended operations. The command line also requires explicitly specifying the scope with --global / --project / --workspace.

Installation and Activation

The installation command provided on the directory page can be run in the DeepSeek Harness terminal:

dsh plugin add github:Fishquito7/dsh-skill-viewer

For reproducible installations, the directory page requires pinning the commit hash. The current main branch commit corresponding to v0.7.0 is 55c16e4e4978a5e1cb96203e9ff89b6cf1078b94:

dsh plugin add github:Fishquito7/dsh-skill-viewer#55c16e4e4978a5e1cb96203e9ff89b6cf1078b94

The maintainer’s README uses --profile web as the default for reference commands, and recommends installing via the release tarball to avoid issues with pnpm v11’s build script restrictions when installing from Git. The latest stable release as of now is v0.7.0, released on 2026-08-16:

dsh plugin --profile web add https://github.com/Fishquito7/dsh-skill-viewer/releases/download/v0.7.0/dsh-skill-viewer-0.7.0.tgz

You can also install from Git to the web profile:

dsh plugin --profile web add github:Fishquito7/dsh-skill-viewer

If the Git source installation reports “git-hosted plugins build on install…”, follow the README to add the key printed by pnpm to the allowBuilds field in the pnpm-workspace.yaml file under that profile directory, then rerun the command. The package declares dsh.bundle, so it will be mounted automatically after installation without editing the configuration file.

Then restart the gateway:

dsh-restart

After restarting, refresh the page: you will see “Skills” under “Plugins” in the settings. To uninstall:

dsh plugin --profile web remove dsh-skill-viewer

When using other profiles, replace --profile web with the corresponding profile name. The directory page also reminds users that the plugin runs with the permissions of the current dsh process, and may execute code during installation. Please check the source code repository and license before installing.

Typical Usage

Managing via the Web Interface

  1. Open the Web UI, go to Settings, and find “Skills” under “Plugins”.
  2. Use the workspace bar to switch to the global scope or a specific workspace; use the group bar to filter if needed.
  3. Click a card to view the full content of SKILL.md, and use the toggle to hot enable or disable the skill.
  4. Click the “+” button to select a .md/.zip file, or drag a skill folder into the page.
  5. To copy skills from the global scope to a project or move them between workspaces, use the migration button to the left of the “+”, select the source, targets and skills, then choose copy or move.

Using the Terminal Command

The package includes the dsh-skill command, which also takes effect immediately, and can be used even when the gateway is offline. The sample commands from the README are as follows (paths follow the original repository, with Windows-style examples):

dsh-skill list                                  # List skills (including scopes: global / workspace)
dsh-skill add <path>                            # Add to global scope (.md file, directory bundle or .zip archive)
dsh-skill add <path> --workspace D:\ProjectA     # Add directly to the specified workspace
dsh-skill scope <name> --global                  # Migrate a single skill to global scope
dsh-skill scope <name> --workspace D:\ProjectA   # Migrate a single skill to the specified workspace (use --copy to copy instead of move)
dsh-skill migrate <name...|--all> --from <global|path> --to <global|path> [--copy] [--yes]
dsh-skill disable <name>       # Disable a skill
dsh-skill enable <name>        # Enable a skill
dsh-skill delete <name>        # Delete a skill (requires confirmation)
dsh-skill update [--profile <name>]  # Check for and update the plugin (uses web profile by default)

The CLI only scans the project root and user root anchored to the current working directory; to manage skills in other workspaces, add --cwd <workspace path>. When multiple skills with the same name exist in different scopes, enable/disable/delete must include --global/--project/--workspace, otherwise the command will not guess which copy to operate on.

Applicable Scenarios and Notes

This tool is suitable for users who are already using the DSH Web UI and whose number of skills has exceeded the point where they can remember them by browsing a few folders. Typical scenarios include: storing a set of commonly used skills globally, and project-specific skills for each project; needing to copy or move skills between workspaces; wanting to perform batch operations via the terminal instead of relying solely on the web interface.

Please note the following before use:

  • The plugin runs with the permissions of the current dsh process, and may execute code during installation. You should review the source code and license before installing.
  • It manages skill files on disk, not a separate hidden database. Disabling skills relies on renaming files, and migration relies on copying/moving files. Before modifying SKILL.md, confirm which scope you are modifying.
  • Bundled skills are read-only, and cannot be disabled or deleted via either the web interface or the CLI.
  • Group information is only stored in the plugin’s own groups.json file. After uninstalling the plugin, group display will disappear, but the skill files will remain intact.
  • The client declares platform: web. The reference commands in the README default to --profile web, and you need to adjust the parameter for other profiles.
  • The community directory is not the same as the official Harness repository. The directory is responsible for listing plugins, while the repository is responsible for implementation. It is safer to double-check both before installing.

Summary

dsh-skill-viewer brings the skill management work that previously required browsing directories in DeepSeek Harness into the settings page and the dsh-skill command line tool. Features like hot toggling, drag-and-drop import, workspace filtering and batch migration are all based on file operations on SKILL.md under the hood. After uninstalling the plugin, skills will remain as regular files on disk.

Directory page: https://deepseek-harness-plugin.com/zh-CN/plugins/dsh-skill-viewer/

GitHub: https://github.com/Fishquito7/dsh-skill-viewer