How to use dsh-market
DSH Sidebar Plugin: Injects a Plugin Market entry and 6-tab panel into the DSH sidebar, enabling browsing, search, personalized recommendations, one-click installation, installed plugin management, and GitHub starring.
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
dsh-market / plugin/ui
— source: plugin_wiki.wiki_content
Install & verify
dsh plugin --profile web add @dsh-market/plugin
Run the command above in your DSH Web Profile. Then enable the plugin in the plugin list.
— source: plugins.install
Key points
- 首次打开有冷启动问卷:选你常用的场景与插件类型,立即得到精选 + 猜你喜欢
- 不用记任何命令——卡片上一键安装(skill / cordis 自动路由,失败自动重试、可回滚)
- 零 token 被动运行:不打开面板不消耗任何资源,不参与日常对话
- 画像来自问卷 / 收藏 / GitHub 加星 / 已装插件,全部保存在本机
- 「猜你喜欢」随使用动态更新(EMA 衰减),每个推荐附一句「为什么推荐」
— source: plugin_wiki.readme_en (fallback readme_raw)
FAQ
Where do I open the plugin market panel after installation?
After installation and restarting the harness, a "Plugin Market" icon button will appear at the bottom of the DSH sidebar. Click it (or the "Plugin Market" text in wide mode) to open the full-screen floating panel (plugin/ui/src/client/index.ts:14-53 / panel.tsx:1499-1546).
How many tabs are there in the panel, and what do they do?
6 tabs: Recommendations (猜你喜欢/精选/场景推荐), Search (keyword + semantic search), Bundles (browse packaged plugin collections), Favorites (localStorage star list), Installed (auto-detect + one-click uninstall + update alerts), Settings (GitHub binding / recommendation mode / target profile) (plugin/ui/src/client/panel.tsx:1499-1506).
Will not opening the panel affect daily conversations?
No. The entire implementation is "event-driven + passive reading": browsing/searching/installed management don't participate in agent conversations; only manually clicking "AI Semantic Search" or "AI Agent Installation" will call LLM/sub-agents (plugin/ui/src/index.ts:286-337 / 376-414).
Is GitHub binding required?
No. Binding is only used in the panel to "star/unstar" repositories and feed starred repositories to the profile; you can still browse, search, one-click install, and favorite locally without binding. Device stream tokens don't support starring (API not allowed), you need to switch to PAT in "Settings" (plugin/ui/src/client/panel.tsx:175-179).
Where is installation data stored?
Profile/settings/GitHub binding data is stored in ~/.dsh/plugins/dsh-market/ (profile.json / settings.json / binding.json / snapshots/), which can be overwritten via environment variables like DSH_HOME / DSH_MARKET_DATA_DIR (plugin/core/src/config.ts:28-59 / 75-138).
What's the relationship between this sub-package and the dsh-market root repository?
The root repository is a monorepo (collector scans data + web static site + plugin/core + plugin/ui), plugin/ui is installed into DSH, plugin/core is a pure Node logic layer; the web version (dsh.market) and plugin version only share the same daily refreshed plugins.json data (06:00), they don't depend on each other (README.md:23-39).
How to resolve the self-update EPERM prompt?
The harness process occupies the plugin directory file, pnpm overwrite will be rejected; the UI prompts user to stop harness first, then use the same command to install @latest and restart (plugin/ui/src/index.ts:179-202).
Will AI agent installation run commands on its own?
It won't blindly run commands—it starts a DSH sub-agent to read the plugin README to confirm the installation method, asks you for configuration when needed, then executes the installation and does minimal verification (plugin/ui/src/index.ts:376-414 / 563-598).
— source: plugin_wiki.faq_json
Compatibility
- DSH: 未在 plugin/ui/package.json 声明 peerDependencies;要求宿主 web profile 启用 dsh.client.inject 中列出的 @deepseek-ai/dsh-client-runtime / -locale / -ui-slots 三个平台种子模块(plugin/ui/package.json:24-44 / tsdown.config.ts:13-18)
- Node: plugin/ui 与 plugin/core 子包自身未声明 engines;monorepo 根 package.json 声明 node>=20(package.json:18-20)
— 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