# awesome-deepseek-harness-plugins

> Move the 1024 Store curated catalog into the Deep

## Metadata

- Author: [@imsai-sh](https://github.com/imsai-sh)
- Repo: <https://github.com/imsai-sh/awesome-deepseek-harness-plugins.git>
- GitHub: [imsai-sh/awesome-deepseek-harness-plugins](https://github.com/imsai-sh/awesome-deepseek-harness-plugins)
- Stars: 131
- Language: TypeScript
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Homepage: <https://deepseek1024.com/>
- Topics: `awesome-list`, `catalog`, `deepseek`, `deepseek-harness`, `deepseek-harness-plugins`, `deepseek1024`, `dsh`, `dsh-1024store`, `dsh-bundle`, `dsh-plugin`, `dsh-plugin-market`, `dsh-plugin-verify`, `dsh-plugins`, `dsh-skill`, `marketplace`, `plugin-directory`, `plugin-hub`, `plugin-store`, `plugins`, `registry`
- Forks: 66
- Open Issues: 15
- Last push: 2026-08-20T20:23:23.000Z
- Added: 2026-08-20T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:imsai-sh/awesome-deepseek-harness-plugins/packages/dsh1024
```

## Wiki

## One-Line Description

Brings the 1024 Store official curated plugin directory into DeepSeek Harness's settings page, letting you browse, search, and install or uninstall community plugins without leaving the host application, along with a thin wrapper around the official `dsh` command that reports anonymous installation results to the 1024Store statistics API.

## Core Features

- Dynamically loads and validates the 1024Store public directory within the settings page, supporting search, category filtering, popular/latest sorting, and installed status detection
- Provides three entry points: the left navigation row in the settings page, the "1024 Store (N)" tab under Settings → Plugins, and a floating entry at the bottom of the sidebar with a badge showing the total directory count
- Install/uninstall uses same-origin POST, only one operation allowed at a time, with real-time progress feedback
- Installer only accepts GitHub repository URLs validated through the directory, automatically deriving `github:owner/repository` parameters without executing display commands from the directory
- Checks its own version on startup and prompts for updates; directory renders immediately using the last result, then silently validates in the background, so newly added plugins don't require manual refresh
- Includes `dsh1024` command-line tool as a thin wrapper around official `dsh plugin`, passing parameters through verbatim, reusing the official CLI from PATH, and reporting anonymous install/uninstall results

## Technical Implementation

- **Language**: TypeScript (server-side + CLI compiled output); client uses React components injected via the host-provided `__ModuleLoader__`
- **Key Dependencies**: `@deepseek-ai/cordis ^4.0.1` (host-injected peer, optional); `@deepseek-ai/dsh` (target package for CLI passthrough, resolved at runtime via npx or PATH); Node standard library `node:fs/promises`, `node:child_process`, `node:crypto`, `node:path`, `node:os`
- **Architecture Pattern**: Cordis host plugin, injects `dsh1024` into host bundle via `package.json#dsh.bundle.patch`; `apply(ctx, config)` mounts local HTTP routes after `webServer` is ready; client uses `window.__ModuleLoader__.load` to register React components, injecting UI into three slots (sidebar, settings page, plugin tab) via `slots`
- **Entry Files**: Server-side `packages/dsh1024/src/index.ts`; client-side `packages/dsh1024/client/client.js`; CLI `packages/dsh1024/bin/dsh1024.js`

## Use Cases

Suitable for users who want to browse, search, and install third-party plugins directly within DeepSeek Harness without switching to the terminal, as well as developers who want to report each install/uninstall as an anonymous statistics event to 1024Store. The CLI wrapper is also suitable for reusing official `dsh` commands in CI or scripts while logging installation results.

## Prerequisites and Compatibility

| Dependency | Minimum Version | Description |
|---|---|---|
| DSH | Not declared | Plugin loads runtime modules via cordis host injection, DSH's dsh.bundle.patch + client.inject mechanism |
| Node.js | >=22 | `engines.node` field in repo root package.json and sub-package package.json |
| Platform | Cross-platform | Uses `process.platform` at runtime to differentiate; CLI includes Windows-specific `taskkill` / PATH resolution logic |
| Native modules | None | Uses only Node built-in modules, no native extensions like `node-pty` or `node:sqlite` |

## Installation

```bash
dsh plugin --profile web add github:imsai-sh/awesome-deepseek-harness-plugins/packages/dsh1024
```

## Configuration Options

| Config | Type | Description | Default |
|---|---|---|---|
| `profile` | string | Determines which DSH profile on this machine handles plugin add/remove. When not explicitly set, checks if `--profile <name>` is in the startup command, otherwise uses `web` | `web` |
| `registryUrl` | HTTPS URL | Address of the 1024Store directory API endpoint; fetched on plugin startup and every time the panel is opened | `https://deepseek1024.com/api/v1/registry` |
| `updateUrl` | HTTPS URL | API endpoint for checking the latest version number during self-check; falls back to GitHub repository `package.json` on failure | `https://registry.npmjs.org/dsh1024/latest` |
| `DSH_HOME` | path | Overrides the DSH data directory; plugin reads profile list from here and writes local cache | `~/.dsh` |
| `DSH1024_TELEMETRY` | `0` to disable, anything else to enable | Disables anonymous install statistics for the current process | enabled |
| `DSH1024_DSH_PACKAGE` | package name | Package spec when passing through to official `dsh`; useful for pinning versions or testing | `@deepseek-ai/dsh` |
| `DSH1024_DSH_VERSION` | version number | Used as the DSH version in reported events when the package spec itself doesn't include a version | none |
| `DSH1024_TELEMETRY_URL` | HTTPS URL | Overrides the anonymous event reporting endpoint | `https://deepseek1024.com/api/v1/install-events` |
| `DSH1024_TELEMETRY_TIMEOUT_MS` | 100-30000 milliseconds | Timeout for reporting requests | 2500 |

> The top three options (`profile` / `registryUrl` / `updateUrl`) are runtime config passed to the host via `apply(ctx, config)`; the rest are environment variables. The old `DSH_1024STORE_*` spelling is permanently compatible; the new naming takes priority.

## FAQ

**Q: Where do I access this plugin after installing it?**

A: After installing and restarting DeepSeek Harness, there are three entry points: the "1024 Store" navigation row on the left side of the settings page, the "1024 Store (N)" tab under Settings → Plugins, and the download icon at the bottom of the sidebar with a badge showing the total directory count. Removing any one of these entry points will be blocked by `scripts/preflight.mjs`.

**Q: Where does the plugin list in the store come from? Is it a local snapshot?**

A: It comes from the public HTTPS API at `https://deepseek1024.com/api/v1/registry`, dynamically fetched at runtime and strictly validated via `validateRegistry`. No snapshot is bundled. When opening the panel, it immediately renders using the last successful result, then silently validates in the background; concurrent refresh requests are merged into one, and the current list is maintained on failure.

**Q: Can I install multiple plugins at once? Are there restrictions on uninstall?**

A: The install/uninstall route allows only one operation at a time—the second request receives a 409 conflict. Only GitHub repository URLs validated through the directory are accepted; the plugin itself derives `github:owner/repository` or `github:owner/repo#path:sub/dir` format without executing display commands from the directory. dsh1024 itself cannot be uninstalled from the in-panel view (removing it requires using the host CLI to uninstall regular plugins).

**Q: What does the bundled `dsh1024` command-line tool do?**

A: It's a thin wrapper around the official `dsh plugin`: all parameters after `plugin` are passed through verbatim without default values. If the official `dsh` is already in PATH, it reuses it directly to avoid npx resolution overhead; when `DSH1024_DSH_PACKAGE` is set to pin a version, it uses npx instead. After completion, it verifies whether the target profile's dependencies were actually written and reports one anonymous installation result.

**Q: What data does it report, and how do I turn it off?**

A: Each install/uninstall reports one anonymous event (random event UUID, random client UUID, plugin ID, profile, result, duration, CLI/DSH version, OS/CPU architecture, CI flag), with no IP, commands, paths, prompts, or API keys. To permanently disable: `npx dsh1024 telemetry disable`; to temporarily disable: `DO_NOT_TRACK=1` or `DSH1024_TELEMETRY=0`; to get a new anonymous identity: `npx dsh1024 telemetry reset`.

**Q: Can I browse the directory when my network is disconnected?**

A: If the fetch fails and there's a previous successful cache, it will display the cached data directly, allowing offline machines to continue browsing; after reconnecting, the next time the panel is opened it will validate in the background and auto-refresh.

**Q: What about the previously used `@dsh-1024store/cli` and `dsh-1024store` packages?**

A: Both packages are deprecated: replace `npx @dsh-1024store/cli ...` with `npx dsh1024 ...`, and replace `dsh plugin --profile web add dsh-1024store` with `dsh plugin --profile web add dsh1024`. Old local identities, receipts, and `DSH_1024STORE_*` environment variable names continue to work—no migration needed.

## Learning Curve

Beginner — install and use directly in the settings page, no manual commands needed; CLI usage only requires swapping `dsh` for `dsh1024`.

## Known Issues and Limitations

- dsh1024 itself cannot be uninstalled from the in-panel view (route layer intercepts `name === 'dsh1024'`), requiring external removal
- Directory API only accepts GitHub repository URLs in the form `https://github.com/owner/repository`; GitLab, BitBucket, gist, jsr, workspace, catalog, npm aliases, or full git URLs are not supported
- CLI wrapper uses a "rather miss than misattribute" principle for install command attribution: local paths, `file:`/`link:`/`portal:`, URLs, drive letters, and fuzzy command vectors will still install normally but won't be counted in statistics
- Anonymous identity is based on `DSH_HOME` (default `~/.dsh`); multiple DSH homes on the same machine will be treated as multiple anonymous installers; multiple users sharing the same DSH home share one anonymous identity

---

This document is auto-generated by [deepseek-plugin.org](https://deepseek-plugin.org). HTML page: [awesome-deepseek-harness-plugins](https://deepseek-plugin.org/plugins/imsai-sh/awesome-deepseek-harness-plugins/packages/dsh1024)
Wiki generated by AI (model: `MiniMax-M2.7`)
