- ホーム
- プラグイン
- 開発とプラグインツール
- dsh-employee
dsh-employee
open-dshai/dsh-employee
デジタル従業員。Experts、Skills、Connectorsの3つのカタログを統合し、ホストを変更せずに閲覧、お気に入り、呼び出し、公開をサポートします。
インストール
dsh plugin --profile web add github:open-dshai/dsh-employeeREADME
@deepseek-ai/dsh-client-ui-marketplace
A Marketplace panel for the DeepSeek Harness web client. It surfaces three catalogs — Experts (专家), Skills (技能), and Connectors (连接器) — sourced from the skill.dualpaw.com registry, and lets you browse, favorite, summon (invoke), and publish directly from the chat UI.
The plugin is a self-contained Cordis plugin: it registers only the locale
capability and DOM-injects its own sidebar entry and center-column panel. No
host gateway or slot changes are required.
Overview
The Marketplace plugin adds a new sidebar entry below 技能中心 (Skill Center). Toggling it takes over the center column with a three-tab panel:
| Tab | What it shows |
|---|---|
| Experts (专家) | Category rail on the left, expert cards on the right. Hover a card to reveal the 召唤 (Invoke) button. |
| Skills (技能) | Searchable list of publishable skills, with a 发布技能 (Publish skill) toolbar action. |
| Connectors (连接器) | Connector catalog; each connector can pre-fill the composer and expose a per-connector toggle chip. |
An invocation bridge listens for dsh:invoke-expert / dsh:invoke-skill /
dsh:connector-fill window events emitted by the list/detail components. It
pre-fills the composer, shows a "current expert / current skill" badge, and
injects a 🔌 chip next to the composer that pops up a per-connector toggle
popover.
Features
1. Auto-load on tab open
Clicking the Experts or Skills tab lazily loads its catalog from the upstream
registry the first time the tab is shown (loadExperts() / loadSkills()),
so the panel opens instantly and fetches data on demand.
2. ⚙ Parameters — token + registration
A ⚙ icon in the panel header opens the shared Parameters dialog
(MarketplaceSettingsDialog). There you can:
- Paste your API token (stored locally on this device only).
- Jump straight to the sign-up / token page: https://skill.dualpaw.com/register
The token is the single credential that gates every upstream mutation — favoriting an expert, publishing a skill, and connectors that require real auth. Local-only actions (download / summon) are unaffected.
3. Favorites (gated on token)
Once a token is present, expert and skill cards show a ♥ favorite corner button. Favoriting is a no-op until a token is saved, so the UI stays honest about which actions will actually persist.
4. Publish a skill (gated on token)
With a token saved, the Skills tab toolbar reveals a 发布技能 (Publish skill)
button that opens PublishSkillDialog. Enter a name, description, and
instructions, then submit — the plugin POSTs to /skills on the registry and
refreshes the skill list. Publishing without a token is blocked up front with a
clear hint.
5. Hover → 召唤 (Invoke) with auto-install + "已安装" tag
Hovering an expert card reveals the 召唤 (Invoke) button:
- The button prefix icon shows install state — ✓ Installed / ⊘ Not installed — and flips the moment you click.
- Clicking 召唤 on a not-yet-installed expert first calls
installExpert, showing 下载中 (Downloading) / 召唤中 (Summoning) inside the same button, then auto-downloads the expert's bundled skills atomically and dispatches thedsh:invoke-expertevent so the composer takes over as usual. - Installed experts keep an 已安装 (Installed) tag on the card.
Screenshots
Screenshots to be added. Suggested captures:
— Experts.
— expert card hover with 召唤 button.
— ⚙ skills
— connectors.
Environment & Prerequisites
| Requirement | Version |
|---|---|
| Node.js | ^22.19 || >=24 |
| Package manager | pnpm (workspace repo) |
| React | ^18.2.0 (peer) |
| DeepSeek API key | Optional — only for running the host harness with live agents |
The plugin itself is pure front-end; it talks to skill.dualpaw.com through
its own CORS relay in src/client/api.ts, which falls back to mock data when
the registry is unreachable. No build-time secrets are required.
This package lives inside the DeepSeek Harness monorepo
(packages/client/ui-marketplace) and is built with the repo's shared
tsdown pipeline.
Installation
As a workspace package (development)
From the repository root:
pnpm install
pnpm --filter @deepseek-ai/dsh-client-ui-marketplace bundle
bundle (via tsdown) compiles src/ into the runtime bundles:
lib/index.js— ESM entry (used by the host).lib/client.js— the browser half loaded bydsh web.
⚠️ The running web client loads the compiled
lib/client.js, notsrc/. After editingsrc/, you must re-run thebundlescript above (and restartdsh web) for changes to appear.
Run the host web client
pnpm dsh web --port 8080
# open http://127.0.0.1:8080
Toggle the Marketplace entry in the sidebar to open the panel.
Usage
- Open the Marketplace sidebar entry.
- Pick a tab — Experts / Skills / Connectors.
- Click ⚙ in the panel header to open Parameters:
- Paste your API token, or
- Follow the link to https://skill.dualpaw.com/register to get one.
- With a token saved:
- ♥ favorite experts / skills.
- On the Skills tab, click 发布技能 to publish a new skill.
- Hover an expert card and click 召唤 to install (if needed) and invoke it. Installed experts show an 已安装 tag.
Project layout
packages/client/ui-marketplace/
├── src/client/
│ ├── index.ts # plugin entry (apply + locale registration)
│ ├── store.ts # MarketplaceStore (catalogs, install, favorite, publish)
│ ├── api.ts # CORS relay to skill.dualpaw.com + mock fallback
│ ├── MarketplaceController.ts # panel open/close + single-occupant coordination
│ ├── MarketplacePanel.tsx # the three-tab center panel
│ ├── ExpertsTab.tsx # experts grid + hover 召唤 + favorite
│ ├── SkillsTab.tsx # skills list + publish toolbar action
│ ├── ConnectorsTab.tsx # connector catalog + composer chip
│ ├── MarketplaceSettingsDialog.tsx # ⚙ Parameters (token + register link)
│ ├── PublishSkillDialog.tsx # publish-skill dialog (token-gated)
│ ├── invoke.ts # invocation bridge (dsh:invoke-* events)
│ ├── locales.ts # en / zh i18n dictionaries
│ └── styles.module.css # CSS modules
├── lib/ # build output (tsdown) — do not edit by hand
├── tsdown.config.ts
└── package.json
Disclaimer
This plugin is an independent community contribution and is not an official
product of DeepSeek AI. The upstream registry at skill.dualpaw.com is operated
by a third party; your API token is stored only in your local browser. Use at
your own risk and review the source before running it against any production
environment.
MIT License. See LICENSE.
— Experts.
— expert card hover with 召唤 button.
— ⚙ skills
— connectors.