# dsh-plugins-store

> Natively integrate the external DSH plugin marketplace (dshmk.com) into DSH Web: search, install, update, and remove plugins directly from the marketplace. Also provides in-conversation Agent tools.

## Metadata

- Author: [@ZASENJC](https://github.com/ZASENJC)
- Repo: <https://github.com/ZASENJC/dsh-plugins-store.git>
- GitHub: [ZASENJC/dsh-plugins-store](https://github.com/ZASENJC/dsh-plugins-store)
- Stars: 62
- Language: TypeScript
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Homepage: <https://dshmk.com>
- Topics: `agent-tools`, `awesome-list`, `community-project`, `deepseek-harness`, `dsh`, `dsh-plugin`
- Forks: 4
- Open Issues: 0
- Last push: 2026-08-20T23:40:07.000Z
- Added: 2026-08-17T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:ZASENJC/dsh-plugins-store/packages/dsh-plugin-store
```

## Wiki

## One-Line Description

Integrates the third-party DSH plugin registry at [dshmk.com](https://dshmk.com/) into DeepSeek Harness Web, letting you search, browse, install, update, and uninstall DSH plugins directly from the chat dialog without switching to the browser.

## Core Features

- Type `/store` in the chat to open the plugin marketplace, or browse "Settings → Plugins → Plugin Marketplace" for long-term access
- Fetch real-time catalog from dshmk.com, filterable and sortable by category, project type, verification status, and keywords
- One-click install to current Web profile from project cards, with installation commands provided by API and validated
- Enable 6 tools in conversation like `store_search`, `store_install`, `store_remove` for Agent to directly call the marketplace
- Browse installed plugins, detect updatable versions, and perform updates or removal through the Settings panel
- When installation fails, send sanitized error information to a newly created AGENT session for troubleshooting assistance

## Technical Implementation

- **Language**: JavaScript (ESM, esbuild bundled)
- **Key Dependencies**: `@deepseek-ai/dsh-native-command` (host CLI bridge), `@deepseek-ai/dsh-client-ui-*` series (sidebar/dialog/settings panel UI slots), `react` (JSX runtime), `pnpm` (for uninstallation)
- **Architecture Pattern**: Dual-ended plugin—`src/index.js` registers `/store` command, Web API routes `/api/dsh-plugins-store/*`, 6 Agent tools and built-in Skills on the host side; `src/client.jsx` injects "shell.overlay" dialog and "settings.plugins.tab" settings page into the browser; declares itself as `plugin-store` bundle via cordis `insert`
- **Entry Points**: `src/index.js` (host) / `src/client.jsx` (browser), packaged into ESM and CJS respectively by `build.mjs`

## Use Cases

For users already using DSH Web for coding or conversations who want to quickly discover and try third-party plugins without leaving the Web interface or manually copying `dsh plugin add` commands. Also suitable for scenarios where Agent directly searches for, recommends, or even installs DSH plugins in conversation, like "Help me install the XXX plugin for DSH". Note: Inclusion does not imply official review; please assess source trustworthiness yourself.

## Prerequisites and Compatibility

| Dependency | Minimum Version | Notes |
|---|---|---|
| DSH | >= 0.1.0-rc.6 | peerDependencies requires `@deepseek-ai/dsh-native-command ^0.1.0-rc.6` |
| Node.js | >= 22 | `engines.node: ">=22"` |
| Platform | Cross-platform (macOS / Windows / Linux) | Uninstall logic differentiates win32 from *nix commands based on `process.platform`; directory API uses HTTPS only |
| Native Modules | None | No native bindings required |

## Installation

```bash
dsh plugin --profile web add github:ZASENJC/dsh-plugins-store/packages/dsh-plugin-store
```

## Configuration

No additional configuration required. Default catalog source is `https://api.dshmk.com/` (src/catalog.js:3-5); no user-configurable options exposed. Refresh button uses `cache: 'no-store'` to bypass browser cache (src/components.jsx:421, 477).

## FAQ

**Q: How to open the plugin marketplace?**

A: Three entry points: type `/store` in chat to open the popup; find "Plugin Marketplace" in "Settings → Plugins" for long-term browsing; or click "Open in local" button on dshmk.com detail page (URL carries `#dsh-plugin-id=<id>` and this plugin automatically opens the install dialog).

**Q: Do I need to restart after install/update/remove?**

A: Yes. All change paths return `needsRestart: true` (src/installer.js:190, src/plugin-manager.js:246), actually taking effect only after restarting DSH Web.

**Q: What to do when installation fails?**

A: The popup displays sanitized error information with an "Hand over to AGENT for analysis" button—it will automatically create a new DSH session and send the repo name, install command, and sanitized error info to AGENT for troubleshooting (src/agent-analysis.js:75-94).

**Q: Which project types support one-click install?**

A: Only plugin, skill, collection, and channel types are supported (src/catalog.js:32). Other types (application, directory, infrastructure, etc.) only show details without install buttons.

**Q: How to install directly from the web marketplace to local?**

A: Clicking "Open in local" on dshmk.com detail page redirects to DSH Web with `#dsh-plugin-id=<id>`; src/deep-link.js parses the parameters and automatically opens that project's install dialog, reusing the same risk confirmation flow.

**Q: Is the install command strictly validated?**

A: Yes. src/installer.js:6-43 only accepts five-segment parameters in the form `dsh plugin --profile web add <spec>`; GitHub sources in verified status are pinned to specific 40-character SHAs (src/catalog.js:91-94); cross-repo, shell pipes, redirects, and multi-commands are all rejected from the one-click install flow.

**Q: Is this plugin the same as the DSH official plugin marketplace?**

A: No. DSH itself has no official marketplace; this plugin is a client accessing the third-party registry at dshmk.com. The README explicitly states: "Catalog inclusion is not a security review"; please review the repo source and code before installing.

**Q: How to uninstall this plugin itself?**

A: Use `dsh plugin --profile web remove dsh-plugins-store`, or click the remove button in the installed list on the settings panel.

## Learning Curve

Beginner — Install with one command, use with `/store`, all features guided by UI, no manual configuration editing required.

## Known Issues and Limitations

- **Restart required for changes**: All install/update/remove operations must restart DSH Web to take effect (src/installer.js:190, src/plugin-manager.js:246)
- **Catalog strongly depends on network**: All content comes from `https://api.dshmk.com/`; the marketplace is empty when offline or the domain is unreachable; failed refreshes keep the last successfully loaded data with a "Catalog refresh failed" label
- **Disable not supported**: The Skill explicitly states that the store currently has no `store_disable` tool or independent disable API; to disable a plugin, use DSH's own plugin toggle (skills/search-dsh-store/SKILL.md:18)
- **GitHub install requires SHA pinning**: When a repo is in verified status, the install command must pin to a specific 40-character SHA, otherwise it will be rejected (src/catalog.js:91-94)
- **Platform-differentiated uninstall logic**: Windows uses `dsh plugin remove`, *nix uses `pnpm --dir <profileDir> remove` (src/plugin-manager.js:107-115); depends on local `pnpm` executable
- **AGENT failure analysis depends on host capability**: Sending failure info to AGENT requires `sessions.create` or `workspaces.startSession` interface to exist, otherwise it throws "Current DSH does not provide new session capability" (src/agent-analysis.js:62)

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [dsh-plugins-store](https://deepseek-plugin.org/plugins/ZASENJC/dsh-plugins-store/packages/dsh-plugin-store)
Wiki generated by AI (model: `MiniMax-M2.7`)
