# dsh-suite

> DSH First-Party Plugin Bundle: One-click installation of 4 sub-plugins—Plugin Store, IM Notifications, Session Export, and Multi-Agent Task Board. No business logic included.

## Metadata

- Author: [@whyihaveyou](https://github.com/whyihaveyou)
- Repo: <https://github.com/whyihaveyou/dsh-suite.git>
- GitHub: [whyihaveyou/dsh-suite](https://github.com/whyihaveyou/dsh-suite)
- Stars: 43
- Language: HTML
- License: [MIT](https://spdx.org/licenses/MIT.html)
- Homepage: <https://whyihaveyou.github.io/dsh-suite/>
- Topics: `agent-framework`, `awesome-list`, `cordis`, `deepseek`, `deepseek-harness`, `developer-tools`, `dsh`, `dsh-plugin`, `plugins`, `scaffold`
- Forks: 8
- Open Issues: 27
- Last push: 2026-08-21T01:59:18.000Z
- Added: 2026-08-17T00:00:00.000Z

## Install

```bash
dsh plugin --profile web add github:whyihaveyou/dsh-suite/packages/all
```

## Wiki

## One-Line Pitch
DSH first-party plugin bundle aggregator: one command installs the plugin store, IM notifications, session export, and multi-agent task board all at once. The host half only handles distribution and patch declarations, providing no independent business capabilities.

## Core Features
- Aggregates 4 first-party sub-packages into a single installation: one declaration brings in `@dsh-suite/plugin-manager` (Web UI plugin store) / `@dsh-suite/plugin-notify` (IM webhook + local notifications) / `@dsh-suite/plugin-session-export` (session log export to Markdown/HTML) / `@dsh-suite/plugin-team-board` (multi-agent shared task board).
- Injects the above sub-plugins into the host loader via 4 lines of `insert` declarations in `cordis.patch.yml`, no manual apply logic needed.
- Sub-plugin version ranges are managed by a single source of truth in `scripts/aggregate.yml`; running `scripts/aggregate.mjs` regenerates patches and syncs `package.json#dependencies`.
- Comes with `name = 'dsh-suite-all'` entry marker, allowing Loader to load this bundle via unified module resolution path.
- Same source as official SDK (member plugins all depend on `@deepseek-ai/cordis` and `@deepseek-ai/dsh-session`), coexists with official plugins in the same registry.

## Technical Implementation
- **Language**: JavaScript (ESM, `"type": "module"`)
- **Key Dependencies**: `@dsh-suite/plugin-manager` / `@dsh-suite/plugin-notify` / `@dsh-suite/plugin-session-export` / `@dsh-suite/plugin-team-board` (4 first-party sub-packages, see `packages/all/package.json:16-21`)
- **Architecture Pattern**: cordis bundle aggregator (meta-package) — the host entry's `apply()` is an empty function (`packages/all/lib/index.js:12-14`), all capabilities are delegated to sub-plugins via 4 lines of `insert` in `cordis.patch.yml`; maintainers use a single declaration in `scripts/aggregate.yml` + zero-dependency script `scripts/aggregate.mjs` to generate patches and sync dependencies (`scripts/aggregate.mjs:51-56`)
- **Entry File**: `packages/all/lib/index.js` (host half, empty apply)

## Use Cases
Users who just installed DSH and want immediate access to 4 commonly-used enhancements maintained by our team (Web UI store, IM notifications, session export, multi-agent task board) without selecting and installing each one individually. Also serves as the official distribution entry point for our team's "first-party bundle," the default recommendation for newcomers.

## Prerequisites & Compatibility
| Dependency | Min Version | Notes |
|---|---|---|
| DSH | >= 0.1.0-rc.6 | The bundle doesn't declare `dsh.engines`; 3 sub-plugins (notify / session-export / team-board) implicitly lock via `@deepseek-ai/dsh-session@^0.1.0-rc.6` as peerDependencies |
| Node | >= 22 | `engines.node` in `packages/all/package.json:36-38`; sub-plugin plugin-manager has stricter requirements (`^22.19 || >=24`) |
| Platform | Cross-platform | Bundle has no `os` / `cpu` restrictions, host half has zero runtime dependencies |
| Native Modules | None | All goes through cordis bundle declaration + sub-plugin implementation, no native binding |

## Installation
```bash
dsh plugin --profile web add github:whyihaveyou/dsh-suite/packages/all
```

## Configuration
This plugin requires no additional configuration (the bundle itself has no independent configuration surface; see respective sub-plugin READMEs and DSH settings page for sub-plugin configurations).

## FAQ

**Q: Is there anything else needed after installation for the plugin to take effect?**

A: Restart DSH. The bundle only declares registration entries for the 4 sub-plugins; the actual apply at runtime is handled by each sub-plugin's entry, which only activates after host restart.

**Q: I only want to install 1-2 plugins, not the whole bundle. What should I do?**

A: Install the corresponding individual sub-package directly (e.g., `dsh plugin --profile web add @dsh-suite/plugin-manager`), no need to go through this bundle; installing this package activates all 4 sub-plugins at once, partial selection is not possible.

**Q: Will there be conflicts if installed alongside a same-named independent plugin package?**

A: Yes. The 4 insert lines in the bundle patch use the same IDs as `plugin-manager` / `plugin-notify` / `plugin-session-export` / `team-board` as independently installed sub-packages with the same names. The loader will reject duplicate registration. Keep only one source.

**Q: How does this bundle upgrade when sub-plugins release new versions?**

A: Maintainers need to bump the member's range in `scripts/aggregate.yml`, then run `node scripts/aggregate.mjs` to regenerate `packages/all/cordis.patch.yml` and sync `packages/all/package.json#dependencies`, finally bump the bundle version number and release.

**Q: What custom logic is in this bundle's code?**

A: Almost none. `lib/index.js` only exports `name = 'dsh-suite-all'` and an empty `apply()`; all capabilities come from the 4 sub-plugins.

**Q: Will this bundle still work after DSH upgrades to a new version?**

A: This bundle doesn't declare `dsh.engines`, but 3 sub-plugins with peerDependencies (notify / session-export / team-board) all require `@deepseek-ai/dsh-session@^0.1.0-rc.6`. Verify sub-plugin SDK compatibility before major version upgrades.

## Getting Started Difficulty
Beginner — one install command takes effect, this package has no independent configuration surface; understanding each sub-plugin's capabilities requires reading their respective READMEs, but daily use requires no intervention.

## Known Issues & Limitations
- Activating the bundle loads all 4 sub-plugins together, partial selection is not possible; for partial installation use the corresponding individual sub-packages (`packages/all/README.md:13-21`).
- The IDs in the aggregator patch are identical to same-named independent sub-packages (`plugin-manager` / `plugin-notify` / `plugin-session-export` / `team-board`), installing alongside same-named independent packages will be rejected by the loader due to duplicate IDs, must choose one (`packages/all/cordis.patch.yml:4-15`).
- This bundle doesn't declare `dsh.engines`, DSH version is implicitly locked by sub-plugin peerDependencies; new DSH versions not supported by sub-plugins cannot be guaranteed to run (`packages/all/package.json:11-21`).
- When sub-plugins release new versions, this bundle doesn't auto-sync; maintainers must manually bump `scripts/aggregate.yml` and run `scripts/aggregate.mjs` (`packages/all/README.md:22-26`).

---

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