DSH (DeepSeek Harness) adopts the “everything is a plugin” philosophy, but its native design does not include the concepts of “experts” or “expert groups.” The community maintains a catalog called “Awesome DSH Experts,” but the catalog is separated from the Web UI. The following introduces dsh-experts, an out-of-tree plugin designed to bring this community catalog into the DeepSeek Harness Web UI without modifying the deepseek-harness source code.
Core Features¶
The plugin registers into the settings.section slot and provides an “Expert Marketplace” tab on the Web UI settings page, along with an optional chat input bar entry.
-
Settings Tab Browsing and Copying
Open the “Expert Marketplace” tab on the Web UI settings page. Here you can browse experts and expert groups, filter by category or type, view details, and click the “Add to chat” button to copy a prepared@expert <id>invocation block to the clipboard. -
Composer Entry
This is an optional feature designed to inject installed expert groups into the chat input box. Clicking the button opens a selector, allowing you to select and copy an expert group invocation block. This entry is registered in the slot specified by theDSH_EXPERT_MARKETPLACE_COMPOSER_SLOTconfiguration key. -
HTTP API
The plugin provides a same-origin HTTP API (POST /api/expert-marketplace) supporting methods such asbootstrap,list,detail,groups,refresh,packs, andpackDetailfor programmatically browsing the catalog. -
Agent Tools
The plugin registers theexpert_listandexpert_detailtools for use by Agents. The availability of these tools depends on whether the@deepseek-ai/dsh-toolspackage is present.
Installation and Enabling¶
Installing the plugin requires the Web profile and a DSH version that meets the requirements.
dsh plugin --profile web add https://github.com/fuchao2pku/dsh-experts.git
After installation, restart the Web profile to load the plugin:
dsh --profile web web
Typical Usage¶
After installing and restarting the Web profile, follow these steps:
- Open the Settings page and go to the Expert Marketplace tab.
- Search the list or filter experts or expert groups by category/type.
- Click an entry to open its details, then click the Add to chat button.
- Paste the
@expert <id>code block copied to the clipboard into the chat input box.
Example: Paste @software-team into the chat input box, then enter your feature requirements. This invokes a multi-role software team in the conversation, including a product manager, architect, engineers, and QA.
Configuration and Compatibility¶
The plugin requires DSH 0.1.0-rc.6 and the Web profile (dsh.client.platform: "web"). In older versions, the Composer entry silently degrades, while the Settings tab continues to work normally.
All configuration keys can be overridden via cordis.patch.yml or environment variables, with the following defaults:
| Configuration Key | Environment Variable Override | Default Value |
|---|---|---|
catalogUrl |
DSH_EXPERT_MARKETPLACE_CATALOG_URL |
Published catalog.json (from the companion repository awesome-dsh-experts) |
maxAgeMs |
- | 172800000 (48 hours) |
timeoutMs |
- | 15000 (15 seconds) |
maxBytes |
- | 5000000 (5 MB) |
composerSlot |
DSH_EXPERT_MARKETPLACE_COMPOSER_SLOT |
composer.toolbar (set to an empty string to disable) |
composerIntegration |
- | true |
agentTools |
- | true |
Security and Data Sources¶
- Network Behavior: The browser side does not contact GitHub directly. The plugin’s host process (Node) fetches the prebuilt
catalog.jsonfrom the specifiedcatalogUrl(defaulting to the catalog on SkillHub). The browser only calls the same-origin API (/api/expert-marketplace). - Data Storage: Catalog data is cached in memory, with the system temporary directory (
<tmpdir>/dsh-experts/catalog.json) used as an auxiliary cache. A built-incatalog-seed.jsonis included as an offline fallback source. It does not read or write personal files. - Trust and Validation: Remote catalogs are treated as untrusted input. All entries are schema validated, no code is executed, and the UI only displays human-readable text and copyable invocation block prompts.
- Permissions: The plugin runs with the permissions of the current DSH process. Review the source code and license before installing.
Notes¶
- Version Requirement: DSH 0.1.0-rc.6 or later is required.
- Silent Degradation: The Composer entry silently becomes ineffective in older DSH versions. The Settings tab is the always-available core feature.
- No Confidential Transfer: The plugin does not include credentials and does not transmit user data externally.