Preface¶
DeepSeek Harness (DSH) supports loading skills via the /skill-name gesture in user messages: write /kebab-case-name before sending, and the framework identifies and injects the corresponding skill content during the agent/pre-step phase. This is a native capability, but the Web GUI only offers prefix completion after typing / by default—you need to remember the skill name to filter by prefix.
As more skills are installed, names and purposes can easily become mismatched. Below introduces the community plugin dsh-skill-picker (maintained by a735624258): it adds a button to the right of the composer toolbar, listing installed skills with search and selection support. Upon selection, it writes the official /skill-name into the input box, leveraging DSH’s existing loading mechanism without altering agent-side logic. The interaction approach is similar to WorkBuddy’s “write skills into the input box.”
What This Is¶
dsh-skill-picker is a client-side plugin for the DSH Web GUI, categorized as “client-side.” Current version 0.2.0, licensed under MIT. GitHub repository: a735624258/dsh-skill-picker, community catalog page: SkillHub.
It only handles the UI layer: the client half registers to the conversation.input.right slot, while the host half provides the skill list route. Upon selection, it inserts /skill-name via inputActions.setDraft, with subsequent loading and execution fully handled by DSH’s native SKILL_GESTURE mechanism.
Relationship with Official / Completion¶
DSH has built-in skill completion: typing / in the input box filters by prefix. This plugin does not replace it but supplements scenarios where you’ve forgotten the name and want to browse. Both can be used simultaneously.
Official / Completion |
dsh-skill-picker | |
|---|---|---|
| Trigger | Type / in input box |
Button next to input box |
| Lookup | Prefix memory-driven | Full list browsing + keyword search |
| Sorting | Fixed | Recently used pinned, frequently used prioritized (localStorage) |
| Descriptions | Brief | Full descriptions visible |
When you remember the skill name, official completion is fast enough; when you’re unsure or want to browse, this plugin is more convenient.
Core Features¶
The following capabilities are sourced from the plugin’s README and package.json, written against DSH 0.1.0-rc.6 API.
Visual Selection and Search. Click the button to the right of the composer toolbar to pop up the list of installed skills; enter keywords to filter by skill name or description in real-time. Starting from v0.2.0, typing / directly in the input box also lists all skills and supports fuzzy search.
Smart Sorting. Recently used skills are pinned to the top, frequently used items appear first, with sorting data stored in the browser’s localStorage.
Official Data Source. The skill list prioritizes the host connection.api.skills.list, the same data source as DSH’s built-in / completion, overriding user-level ~/.dsh/skills, project-level <workspace>/.dsh/skills, <workspace>/.agents/skills, and other official directories within session scope. If the API is unavailable, it falls back to the host scanning route.
Zero Agent Changes. It inserts the official /skill-name gesture, with the same loading path as manually typing /skill-name.
Theme Adaptation. Styles follow Web UI CSS variables, adapting to light/dark themes.
Architecture. Pure client + host dual-half plugin, with no third-party runtime dependencies; the client is built via esbuild into a bundle with __ModuleLoader__ handshake.
Installation and Enabling¶
The plugin is not yet published to npm (npm view dsh-skill-picker will 404). Please install via Git clone or Git dependency.
# Method 1: Clone + link (Recommended)
git clone https://github.com/a735624258/dsh-skill-picker.git
dsh plugin --profile web add link:/path/to/dsh-skill-picker
# Method 2: Direct Git dependency installation
dsh plugin --profile web add "github:a735624258/dsh-skill-picker"
If dsh is denied by execution policy on Windows PowerShell, use:
powershell -ExecutionPolicy Bypass -Command "dsh plugin --profile web add link:C:\path\to\dsh-skill-picker"
After installation, restart dsh web or refresh the page to load the new bundle.
Uninstallation:
dsh plugin --profile web remove dsh-skill-picker
Typical Usage¶
- Open any conversation and locate the skill selection button to the right of the input box toolbar.
- Click to pop up the skill list; enter keywords to filter.
- Click on the target skill, and the input box automatically shows
/skill-name(with a trailing space). - Continue entering your message and send; DSH recognizes the gesture and automatically loads the skill.
Example: After clicking duo-xuan-pi-gai, the input box becomes /duo-xuan-pi-gai Help me grade multiple choices, and after sending, the skill executes according to the instruction.
How It Works (Brief)¶
[Client] Button → fetch('/dsh-skill-picker/skills')
↓
[Host] Scan user-level and project-level skill directories → return name + description
↓
[Client] Click → inputActions.setDraft(draft + '/skill-name ')
↓
[DSH] agent/pre-step recognizes SKILL_GESTURE → inject skill-invocation
The host half independently provides the list outside of agent/pre-step; actual skill loading is still completed by DSH’s dsh-tool-skill when the gesture hits.
Use Cases and Notes¶
Who It’s For. Developers with multiple DSH skills installed locally or in projects, who often can’t recall exact names and prefer to browse descriptions in the Web interface before selecting.
Skill Source Boundaries. Currently prioritizes the official skills API, with fallback scanning covering user-level and project-level directories; README notes that ~/.agents/skills and customSkillDirs custom directories are not scanned for now.
Fail-Safe. The client silently skips if the conversation.input.right slot is missing; the host route returns an empty list for nonexistent directories, without disrupting startup.
Version and Permissions. The plugin runs with current dsh process permissions; please review the repository source and MIT license before installation. If DSH major version updates cause API changes, refer to plugin errors in startup logs; to revert, execute the above remove command.
Development Build. If modifying source code, run npm install and npm run build within the repository; lib/client.js is the build output and should not be manually edited.
Links¶
- Community Catalog: https://www.skillhub.cn/plugins/a735624258/dsh-skill-picker
- GitHub: https://github.com/a735624258/dsh-skill-picker
SkillHub is an independent community catalog, not officially affiliated with DeepSeek / High-Flyer; the DSH ecosystem follows the “everything is a plugin” principle, and this plugin is one such supplement for Web input experience.