How to use plugin-registry
Embed a "Plugin Management" panel and 4 agent tools into the DSH Web settings page, providing unified management of profile plugin installation states via the official mechanism, including bundle layer stack, insert row enable/disable, version check, and CRUD operations.
This article is auto-derived from indexed fields (wiki / faq / compatibility_json), not freshly AI-generated.
This article is derived from the plugin's already-indexed fields (wiki / faq / compatibility_json / readme), not freshly generated by AI. Source field is noted at the end of each section.
Quick start
plugin-registry
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add github:vlln/plugin-registry
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- Plugin type comparison — bundle vs plain cordis plugins: development/distribution/installation/management dimensions + how to choose
- Official 0809 coverage assessment — official mechanism coverage, pivot decision (0811 repository removal: CHANGELOG)
- Thin console design — design of unified installation-state management
- Changelog / Roadmap
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Where can I find the management panel in DSH Web after installation?
After installation, refresh the Web page and go to the settings page. You will see a new tab called 'Plugin Management' (Panel.tsx:300 header / src/client/index.ts:54 label), positioned side by side with the official 'Plugins' tab but independently, avoiding naming conflicts.
Why don't non-bundle plugins require a DSH restart after installation?
The panel writes to the profile cordis.patch.yml insert lines; since DSH 0811, profile-boot mounts a watch-only HMR instance, so line writes/deletions take effect in real time (packages/plugin/console/README.md:29 / src/index.ts:94-145).
Why do bundle plugins require a web restart after installation?
Bundle plugins are installed in the profile package.json dependencies + dsh.profile.bundles layer stack. The layer stack is synthesized at startup and cannot be hot-swapped at runtime (packages/plugin/console/README.md:73 / src/index.ts:340-380).
How do agents use this installation mechanism? Do they need to switch to the panel?
Not necessary. The Node half simultaneously registers 4 defineTool tools (plugin_search / plugin_install / plugin_uninstall / plugin_status), sharing the same installation state with the panel (src/discovery/tools.ts:98-335 / packages/plugin/console/README.md:48-58).
How do I distinguish the three states shown in the panel: Running / Preset Mounted / Disabled?
Running = host enabled; Preset mounted = host disabled but agent preset still mounted (0811 model-side tools go through preset channel, disabling host doesn't mean the tool disappears); Disabled = completely disabled (src/client/Panel.tsx:98-102 / src/index.ts:501-531).
Can I disable or uninstall this management tool from the panel?
No. The Node half hard-bans operations on @dsh-external/plugin-console in toggle/remove routes, returning 409 (src/index.ts:752-754 / src/index.ts:826-829) - to prevent the management entry from self-destructing.
What does 'pnpm add succeeded but X is not in the profile dependencies' mean when installation fails?
Usually means the git source or path source wasn't actually written to disk (pnpm exited 0 but dependencies weren't written to package.json). It won't proceed to write the installation state to avoid false success; retry after using a clear package name or confirming the git/path is reachable (src/index.ts:720-724 / src/discovery/tools.ts:196-199).
How do I update plugins when a new version is available?
Clicking the 'Check for Updates' button in the panel triggers the Node half to query the npm registry via native fetch with 6h cache (30-second minimum debounce interval). Bundles show an 'Update' button, which triggers pnpm update after clicking (restart takes effect); git/link packages are marked as 'Local' with no latest version (src/versions.ts:36-47 / src/client/Panel.tsx:208-226).
— source: plugin_wiki.faq_json
Compatibility
- DSH: ^0.1.0-rc.5(peerDependencies 中 @deepseek-ai/dsh-tools ^0.1.0-rc.5 表明适配 0811 后的 DSH Web,含 webServer/loader/tools/agentPresets 四个 inject 服务;0811 起官方移除 repository-plugins 机制后才有此设计)
- Node: 未在 packages/plugin/console/package.json 声明 engines.node(仅 devDependencies @types/node ^22.0.0;建议 Node ≥ 22,对齐 DSH 0811 host 要求)
— source: plugin_wiki.compatibility_json
Pitfalls
Review the upstream repo before installing. This guide is auto-derived from indexed fields and may lag the latest release. If anything contradicts the official docs, treat the upstream source as authoritative.
— source: general rule