Dingpenghui-good
dsh-plugin-manager
Writable plugin management tab for DeepSeek Harness - toggle, enable/disable, and uninstall user-installed Cordis plugins from Settings
- Stars
- 1
- Language
- TypeScript
- Created
- Aug 16, 2026
- Updated
- Aug 16, 2026
Introduction
dsh-plugin-manager
Writable plugin management tab for DeepSeek Harness.
Shows only user-installed Cordis plugins (filters out @deepseek-ai/ and cordis: built-ins),
with toggle (enable/disable) and uninstall actions.
Features
- Filter built-ins: Shows only non-builtin plugins (22 user plugins visible, 187 total inventory filtered down)
- Toggle: Enable/disable any plugin entry via
loader.update({ disabled }) - Uninstall: Remove plugin entries via
loader.remove(entryId) - Expandable cards: Click to expand showing entryId, Cordis fiber phase, and action buttons
- Search: Filter by module name or entry ID
- Styling: Matches the existing plugin-inventory tab CSS (2-column grid, status dots, chevron animations)
- Tab label: "自安装插件管理" (Self-installed Plugin Manager)
Files
src/
├── host/
│ ├── index.ts # PluginManagerGateway: list/toggle/uninstall RPC
│ ├── types.ts # PluginManagerSnapshot type
│ └── invariant.ts
└── client/
├── index.ts # Settings slot registration
├── locales.ts # zh/en i18n
├── PluginManagerSettingsTab.tsx # Expandable card UI
└── PluginManagerSettingsTab.module.css
Installation in DeepSeek Harness
Add to your agent preset's cordis.yml:
plugins:
host:
- id: plugin-manager
name: '@dsh-plugin/plugin-manager/host'
client:
- id: ui-settings-plugin-manager
name: '@dsh-plugin/plugin-manager/client'
Or add to packages/bundle/web-app/cordis.patch.yml:
host:
- id: plugin-manager
name: '@dsh-plugin/plugin-manager/host'
client:
- id: ui-settings-plugin-manager
name: '@dsh-plugin/plugin-manager/client'
Then rebuild:
npx tsc --build packages/host/plugin-manager
npx tsdown --env.DSH_BUILD_FACE host --filter "@dsh-plugin/plugin-manager"
npx tsdown --env.DSH_BUILD_FACE client --filter "@dsh-plugin/plugin-manager"
Restart the DSH server and open Settings → 插件 → 自安装插件管理.
Host API
pluginManager.list()
Returns { entries: PluginInventoryEntry[] } — user-installed plugins only.
pluginManager.toggle(entryId: string, enabled: boolean)
Toggles the disabled flag on a Loader entry.
pluginManager.uninstall(entryId: string)
Removes a Loader entry from the tree.
License
MIT