@michengai/dsh-skills-manager 1.2.30 → 1.2.31
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/CHANGELOG.zh-CN.md +14 -0
- package/README.en.md +231 -0
- package/README.md +133 -128
- package/README.zh-CN.md +9 -4
- package/lib/client.js +11 -8
- package/lib/index.js +47 -4
- package/lib/provenance.js +189 -0
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## [1.2.31] - 2026-11-05
|
|
4
|
+
|
|
5
|
+
### Added & Improvements
|
|
6
|
+
|
|
7
|
+
- **Add "Group by source repository" view** (PR #69):
|
|
8
|
+
- Toggle between "Source directory" and "Source repository" directly in the skills management list.
|
|
9
|
+
- Automatically aggregates skills under each source directory into repositories and subdirectories using verified install records, lockfiles, and skill metadata.
|
|
10
|
+
- Automatically identifies platform brand icons (GitHub, GitLab, Gitee, and Git for self-hosted instances) matching native group action button styles.
|
|
11
|
+
- Extends skill search to match against repository names and in-repository category paths.
|
|
12
|
+
- **Auto-approve skill creation in danger-full-access mode** (Issue #77):
|
|
13
|
+
- Skips redundant approval prompts when invoking the skill creation tool inside sessions configured for full file access, avoiding unexpected rejections in unattended mode.
|
|
14
|
+
|
|
15
|
+
[中文文档](CHANGELOG.zh-CN.md)
|
|
16
|
+
|
|
3
17
|
## [1.2.30] - 2026-11-04
|
|
4
18
|
|
|
5
19
|
### Compatibility & Dependencies
|
package/CHANGELOG.zh-CN.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# 更新日志
|
|
2
2
|
|
|
3
|
+
## [1.2.31] - 2026-11-05
|
|
4
|
+
|
|
5
|
+
### 新增功能与体验优化
|
|
6
|
+
|
|
7
|
+
- **新增「按来源仓库」浏览视图**(PR #69):
|
|
8
|
+
- 技能列表支持在「按来源目录」与「按来源仓库」之间一键切换;
|
|
9
|
+
- 依据真实安装记录、目录锁文件及技能元数据自动归集,并在来源目录下分层展示仓库与仓库内目录;
|
|
10
|
+
- 仓库标题行支持自动识别多平台品牌图标(GitHub、GitLab、Gitee 等,其他自建平台显示通用 Git 图标),并对齐原生分组操作按钮外观;
|
|
11
|
+
- 技能搜索全面支持通过仓库全名及仓库内分类目录进行即时匹配筛选。
|
|
12
|
+
- **优化创建技能免审批机制**(Issue #77):
|
|
13
|
+
- 在开启「完全文件访问」的会话环境中,调用创建技能工具时自动免去冗余审批弹窗,解决无人值守模式下自动拒绝请求的问题。
|
|
14
|
+
|
|
15
|
+
[English](CHANGELOG.md)
|
|
16
|
+
|
|
3
17
|
## [1.2.30] - 2026-11-04
|
|
4
18
|
|
|
5
19
|
### 兼容性与依赖升级
|
package/README.en.md
ADDED
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="assets/branding/dsh-banner-en.webp" alt="DSH Skills Manager" width="100%">
|
|
3
|
+
</p>
|
|
4
|
+
|
|
5
|
+
<div align="center">
|
|
6
|
+
|
|
7
|
+
# DSH Skills Manager
|
|
8
|
+
|
|
9
|
+
**Manage local and project skills, install from GitHub, preview updates and restore backups**
|
|
10
|
+
|
|
11
|
+
[简体中文](README.md) · [Changelog](CHANGELOG.md) · [Apache-2.0](LICENSE)
|
|
12
|
+
|
|
13
|
+
[](LICENSE)
|
|
14
|
+
[](https://www.npmjs.com/package/@michengai/dsh-skills-manager)
|
|
15
|
+
[](https://www.npmjs.com/package/@michengai/dsh-skills-manager)
|
|
16
|
+
[](https://github.com/MichengAI/dsh-skills-manager)
|
|
17
|
+
[](#installation)
|
|
18
|
+
</div>
|
|
19
|
+
|
|
20
|
+
> DSH Skills Manager is a community-maintained DeepSeek Harness (DSH) plugin, not an official DeepSeek AI product.
|
|
21
|
+
|
|
22
|
+
## Features
|
|
23
|
+
|
|
24
|
+
Bring skills from your computer and projects into DSH without switching between Agent folders.
|
|
25
|
+
|
|
26
|
+
- **Unified multi-view management**: Browse Global Skills, Project Skills, Discover, and Trash in unified tabs with instant search, status filtering, and collapsible source groups.
|
|
27
|
+
- **Browse by source repository**: Switch between directory and repository views. Sources are identified from install records, lock files, and skill metadata; skills without a reliable source are marked as unknown.
|
|
28
|
+
- **Broad ecosystem support**: Full coverage for 20+ tools and CLI environments including DSH, Shared Agent, Codex, Claude Code, Copilot, Cursor, Google Antigravity, Windsurf, Qoder, and Trae without touching third-party files.
|
|
29
|
+
- **Categorization and drag & drop**: Create category folders inside sources, drag skill rows (`⋮⋮`) to organize and order them, batch assign skills, and toggle entire categories with a single switch. Category metadata is saved without moving files.
|
|
30
|
+
- **Public markets & repositories**: Integrated Discover hub to explore trending skills from ClawHub and skills.sh, or subscribe to public GitHub repositories with incremental diff inspection and backups.
|
|
31
|
+
- **Create and flexible import**: Create skills or import ZIP archives, folders, and `SKILL.md` files directly into your global user root or a registered workspace.
|
|
32
|
+
- **Wide reading experience**: 760px responsive detail modal with monospace syntax styling, vertical resizing, and a one-click "Copy body" action.
|
|
33
|
+
- **Trash & safe rollback**: Soft delete protects skills from accidental loss, allowing complete restoration with provenance and update history preserved.
|
|
34
|
+
- **Custom source folders**: Point an external agent source at another folder from the panel without moving any file. DSH and Shared Agent stay configured by the host.
|
|
35
|
+
|
|
36
|
+
## Screenshots
|
|
37
|
+
|
|
38
|
+
Global skills:
|
|
39
|
+
|
|
40
|
+

|
|
41
|
+
|
|
42
|
+
Project skills:
|
|
43
|
+
|
|
44
|
+

|
|
45
|
+
|
|
46
|
+
Skill repositories & discover:
|
|
47
|
+
|
|
48
|
+

|
|
49
|
+
|
|
50
|
+
*Screenshots show core feature views for global skills, project skills, and skill discovery. Lossless WebP.*
|
|
51
|
+
|
|
52
|
+
## Installation
|
|
53
|
+
|
|
54
|
+
Requires a working DeepSeek Harness installation. The commands below use the `web` profile; replace it with yours if needed.
|
|
55
|
+
|
|
56
|
+
Supported plugin installation sources are the npm registry, a locally built `.tgz` package, and GitHub. GitHub and npm both include a ready-to-run `lib`. After changing source, run the build before committing.
|
|
57
|
+
|
|
58
|
+
### Ask an agent to install it
|
|
59
|
+
|
|
60
|
+
Send this to an agent that can use your local terminal:
|
|
61
|
+
|
|
62
|
+
```text
|
|
63
|
+
Install the latest @michengai/dsh-skills-manager into my DSH web profile using the official npm registry. Confirm installation and explain how to reload DSH.
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Install manually
|
|
67
|
+
|
|
68
|
+
```powershell
|
|
69
|
+
[Console]::OutputEncoding = [System.Text.Encoding]::UTF8
|
|
70
|
+
$OutputEncoding = [System.Text.Encoding]::UTF8
|
|
71
|
+
dsh plugin --profile web add @michengai/dsh-skills-manager@latest --registry=https://registry.npmjs.org/
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
Restart DSH, refresh the page, and open **Settings → Skills**. To update, select **Check for updates** or run the installation command again.
|
|
75
|
+
|
|
76
|
+
- Plugin `1.2.31` is tested with DeepSeek Harness `0.2.0-rc.1`, `0.2.0-rc.2`, `0.2.1-rc.1`, `0.2.1-rc.2`, `0.2.1-rc.3`, `0.2.1-rc.4`, `0.2.1-rc.5`, `0.2.2-rc.1`.
|
|
77
|
+
- Host compatibility: Full DeepSeek Harness `0.2.x` line (`>=0.2.0-rc.1 <0.3.0-0`), forwards-compatible with subsequent `0.2.x` RC releases without requiring routine plugin version bumps. Legacy versions and breaking changes in the `0.3.0` generation are rejected by the version gate. If you still use a `0.1.x` host, install plugin `1.1.23` instead of `@latest`.
|
|
78
|
+
- **Reverse proxy deployment**: Supports hosting DSH behind prefix-stripping reverse proxies (e.g. `/app/dsh/`). API and update endpoints resolve against the page base URI (`document.baseURI`).
|
|
79
|
+
|
|
80
|
+
## Plugin Configuration & Toggles
|
|
81
|
+
|
|
82
|
+
The plugin follows standard DSH bundle configuration conventions. Options are located at:
|
|
83
|
+
> **Sidebar → Plugins → Click `Skills Manager`** (the host's `plugins.bundle.config` slot).
|
|
84
|
+
|
|
85
|
+
Two native switches are available:
|
|
86
|
+
|
|
87
|
+
### 1. Sidebar Entry (`sidebarEntry`)
|
|
88
|
+
- **Default**: Disabled (`false`)
|
|
89
|
+
- **Description**: Displays a persistent **Skills** navigation icon directly under **Plugins** in the host's left primary sidebar.
|
|
90
|
+
- **Effect**:
|
|
91
|
+
- When enabled, clicking the sidebar icon opens the Skills Manager directly in the primary workspace with a **960px centered container** (matching host plugin manager conventions). This eliminates vertical scrolling constraints in narrow settings dialogs;
|
|
92
|
+
- When disabled, unregisters the sidebar entry cleanly;
|
|
93
|
+
- The standard **Settings → Skills** view remains active either way, and state is synchronized live across both entry points.
|
|
94
|
+
|
|
95
|
+
### 2. Online Updates (`onlineUpdate` / `updater`)
|
|
96
|
+
- **Default**: Enabled (`true`)
|
|
97
|
+
- **Description**: Controls whether the plugin checks for and installs updates from npm.
|
|
98
|
+
- **Effect**:
|
|
99
|
+
- **Dynamic UI Sync**: Disabling the toggle hides the **Check for updates** button in the header immediately without requiring a full page reload;
|
|
100
|
+
- **Endpoint Guard**: When disabled, the update API route returns `HTTP 403` for all check and install requests, preventing unreviewed updates;
|
|
101
|
+
- **Host / Platform Lock**: For curated plugin indexes (such as VibeDev) or restricted enterprise environments, this can be locked directly via Cordis configuration (bundle patch) without needing UI interaction:
|
|
102
|
+
```yaml
|
|
103
|
+
updater: false # or onlineUpdate: false
|
|
104
|
+
```
|
|
105
|
+
Once configured, the built-in updater is disabled at startup and the update action stays hidden.
|
|
106
|
+
|
|
107
|
+
## Usage Guide
|
|
108
|
+
|
|
109
|
+
| Action | How to do it |
|
|
110
|
+
| --- | --- |
|
|
111
|
+
| **Find skills** | Switch between Global Skills and Project Skills tabs, expand/collapse source groups, or use the search bar and status filters. |
|
|
112
|
+
| **Inspect content** | Click **View details** on any skill row to read `SKILL.md` content and diagnostics in a 760px wide resizable dialog, with one-click **Copy body**. |
|
|
113
|
+
| **Toggle invocation** | Toggle the switch on the right side of a skill row to enable or disable it for DSH without editing third-party files. |
|
|
114
|
+
| **Change an external source folder** | Click **Source folders…** in the header or select **Change skills folder** on the source row, type or browse to a folder, and save. **Restore default** returns to the configured default. Only where this plugin reads changes; no files move and external sources stay read-only. |
|
|
115
|
+
| **Organize categories** | Click **New category** within a source, then drag the grab handle (`⋮⋮`) to reorder or move skills across categories. Toggling a category turns all its member skills on or off. |
|
|
116
|
+
| **Create & import** | Click **Create skill** or **Import skill** in the header. Select destination scope (User directory or a registered workspace project) and path. |
|
|
117
|
+
| **Discover & install** | Open the **Discover** tab to browse trending ClawHub skills or search the skills.sh catalog, or click **Add repository** to subscribe to a public GitHub repo. |
|
|
118
|
+
| **Update repository skills** | Click **Refresh**, inspect file diffs with **Review update**, and confirm to update with an automated backup. |
|
|
119
|
+
| **Roll back updates** | Click **Restore previous version** on skills with backup history, preview changes, and confirm rollback. |
|
|
120
|
+
| **Recover deletions** | Open **Trash** to restore accidentally deleted DSH skills with their original locations preserved. |
|
|
121
|
+
|
|
122
|
+
### Browse by source repository
|
|
123
|
+
|
|
124
|
+
Switch between the default directory view and the repository view to browse skills by source directory, repository and in-repository directory. Skills without a known source are marked as unknown. Sources come from install records, directory lock files and skill metadata, not guessed directory names.
|
|
125
|
+
|
|
126
|
+
The repository view does not move skill files; individual skill controls remain available. Switch back to the directory view to create categories, assign skills or reorder them by dragging.
|
|
127
|
+
|
|
128
|
+
### Four Main Tabs
|
|
129
|
+
|
|
130
|
+
1. **Global Skills**
|
|
131
|
+
- Manage cross-project skills stored across all detected agent home directories on your machine.
|
|
132
|
+
- Categorize and toggle skills by source; same-name precedence automatically highlights shadowed copies.
|
|
133
|
+
2. **Project Skills**
|
|
134
|
+
- Select any registered workspace from the dropdown to manage its project-level skills (`<project>/.dsh/skills`, etc.).
|
|
135
|
+
- Scans and searches only the selected workspace; project copies take precedence over global counterparts.
|
|
136
|
+
3. **Discover**
|
|
137
|
+
- **Public Catalogs**: Direct integration with ClawHub and skills.sh to find and install popular community skills;
|
|
138
|
+
- **GitHub Repositories**: Subscribe to public repositories, scan skill lists, preview diffs, and install copies with local edit protections.
|
|
139
|
+
4. **Trash**
|
|
140
|
+
- Soft-delete buffer for DSH and Shared Agent skills, preserving provenance and install destinations.
|
|
141
|
+
- Deleted skills can be restored anytime with a single click.
|
|
142
|
+
|
|
143
|
+
### Skill Naming & Frontmatter Requirements
|
|
144
|
+
|
|
145
|
+
The DeepSeek Harness loader enforces strict identifier policies:
|
|
146
|
+
- **Format constraint**: Host loaders require skill names to strictly match lowercase ASCII alphanumeric characters and hyphens (kebab-case, e.g. `my-tool`).
|
|
147
|
+
- **Non-ASCII & Chinese skill folders**: Your skill directory name can remain in Chinese (e.g. `文案排版/`), provided you specify a valid English `name` in `SKILL.md` frontmatter:
|
|
148
|
+
```markdown
|
|
149
|
+
---
|
|
150
|
+
name: copy-formatting-helper
|
|
151
|
+
description: Helper for multi-platform article formatting
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
# Skill instructions...
|
|
155
|
+
```
|
|
156
|
+
- **Diagnostics**: Skills lacking an English name are flagged with clear in-app diagnostics explaining that the host loader cannot invoke them, with options to safely disable or clean up records.
|
|
157
|
+
|
|
158
|
+
### Repository & Installation Boundaries
|
|
159
|
+
|
|
160
|
+
- The header **Check for updates** updates the plugin itself; repository **Refresh** checks subscribed skill contents without replacing local files.
|
|
161
|
+
- Repository installation can target user DSH skills, Shared Agent (`~/.agents/skills`, overridable via `DSH_AGENTS_HOME`), or `<project>/.dsh/skills` for registered workspaces. Unsafe paths and external agent roots (Codex, Claude) are locked against writes.
|
|
162
|
+
- 32 MiB archive limit; downloading subdirectories still fetches the full archive.
|
|
163
|
+
- Local edits are detected and require explicit confirmation before overwriting; backup history is preserved for rollback.
|
|
164
|
+
|
|
165
|
+
## Supported Agent directories
|
|
166
|
+
|
|
167
|
+
`~` means your home directory; `<project>` is the project root of a registered workspace. These are default paths; configured environment variables take precedence. An environment variable overrides the agent's main home root directory, and the plugin scans the `skills` folder under it (i.e., `<ENV_PATH>/skills`).
|
|
168
|
+
|
|
169
|
+
| Source | Global directory | Environment variable | Project directory |
|
|
170
|
+
| --- | --- | --- | --- |
|
|
171
|
+
| <img src="assets/brands/dsh.png" width="16" height="16" alt="DSH" valign="middle"> DSH | `~/.dsh/skills` | `DSH_HOME` | `<project>/.dsh/skills` |
|
|
172
|
+
| <img src="assets/brands/agents.svg" width="16" height="16" alt="Shared Agent" valign="middle"> Shared Agent | `~/.agents/skills` | `DSH_AGENTS_HOME` | `<project>/.agents/skills` |
|
|
173
|
+
| <img src="assets/brands/cc-switch.png" width="16" height="16" alt="CC Switch" valign="middle"> CC Switch | `~/.cc-switch/skills` | — | — |
|
|
174
|
+
| <img src="assets/brands/codex.svg" width="16" height="16" alt="Codex" valign="middle"> Codex | `~/.codex/skills` | `DSH_CODEX_HOME` | `<project>/.codex/skills` |
|
|
175
|
+
| <img src="assets/brands/claude.svg" width="16" height="16" alt="Claude Code" valign="middle"> Claude Code | `~/.claude/skills` | `DSH_CLAUDE_HOME` | `<project>/.claude/skills` |
|
|
176
|
+
| <img src="assets/brands/gemini.svg" width="16" height="16" alt="Gemini" valign="middle"> Gemini | `~/.gemini/skills` | `DSH_GEMINI_HOME` | `<project>/.gemini/skills` |
|
|
177
|
+
| <img src="assets/brands/opencode.svg" width="16" height="16" alt="OpenCode" valign="middle"> OpenCode | `~/.config/opencode/skills` | `DSH_OPENCODE_HOME` | `<project>/.opencode/skills` |
|
|
178
|
+
| <img src="assets/brands/cursor.svg" width="16" height="16" alt="Cursor" valign="middle"> Cursor | `~/.cursor/skills` | `DSH_CURSOR_HOME` | `<project>/.cursor/skills` |
|
|
179
|
+
| <img src="assets/brands/copilot.svg" width="16" height="16" alt="Copilot" valign="middle"> Copilot | `~/.copilot/skills` | `DSH_COPILOT_HOME` | `<project>/.github/skills` |
|
|
180
|
+
| <img src="assets/brands/windsurf.svg" width="16" height="16" alt="Windsurf" valign="middle"> Windsurf | `~/.codeium/windsurf/skills`<br>`~/.windsurf/skills` | `DSH_WINDSURF_HOME`<br>`DSH_WINDSURF_USER_HOME` | `<project>/.windsurf/skills` |
|
|
181
|
+
| <img src="assets/brands/trae.svg" width="16" height="16" alt="Trae" valign="middle"> Trae | `~/.trae/skills` | `DSH_TRAE_HOME` | `<project>/.trae/skills` |
|
|
182
|
+
| <img src="assets/brands/trae.svg" width="16" height="16" alt="Trae CN" valign="middle"> Trae CN | `~/.trae-cn/skills` | `DSH_TRAE_CN_HOME` | `<project>/.trae-cn/skills` |
|
|
183
|
+
| <img src="assets/brands/openclaw.svg" width="16" height="16" alt="OpenClaw" valign="middle"> OpenClaw / Clawdbot | `~/.openclaw/skills`<br>`~/.clawdbot/skills` | `DSH_OPENCLAW_HOME`<br>`DSH_CLAWDBOT_HOME` | — |
|
|
184
|
+
| <img src="assets/brands/roo.svg" width="16" height="16" alt="Roo" valign="middle"> Roo | `~/.roo/skills` | `DSH_ROO_HOME` | `<project>/.roo/skills` |
|
|
185
|
+
| <img src="assets/brands/codebuddy.svg" width="16" height="16" alt="CodeBuddy" valign="middle"> CodeBuddy | `~/.codebuddy/skills` | `DSH_CODEBUDDY_HOME` | `<project>/.codebuddy/skills` |
|
|
186
|
+
| <img src="assets/brands/workbuddy.png" width="16" height="16" alt="WorkBuddy" valign="middle"> WorkBuddy | `~/.workbuddy/skills` | `DSH_WORKBUDDY_HOME` | `<project>/.workbuddy/skills` |
|
|
187
|
+
| <img src="assets/brands/qoder.svg" width="16" height="16" alt="Qoder" valign="middle"> Qoder | `~/.qoder/skills` | `DSH_QODER_HOME` | `<project>/.qoder/skills` |
|
|
188
|
+
| <img src="assets/brands/qoder.svg" width="16" height="16" alt="Qoder CN CLI" valign="middle"> Qoder CN CLI | `~/.qoder-cn/skills` | `DSH_QODER_CN_HOME` | — |
|
|
189
|
+
| <img src="assets/brands/qoder.svg" width="16" height="16" alt="Qoder CN" valign="middle"> Qoder CN | `~/.lingma/skills` | `DSH_LINGMA_HOME` | `<project>/.lingma/skills` |
|
|
190
|
+
| <img src="assets/brands/gemini.svg" width="16" height="16" alt="Google Antigravity" valign="middle"> Google Antigravity | `~/.gemini/config/skills` | `DSH_ANTIGRAVITY_HOME` | `<project>/.agents/skills` |
|
|
191
|
+
|
|
192
|
+
Ordinary project-root `<project>/skills` directories are not scanned, so repository release resources are not exposed as Agent skills. OpenClaw / Clawdbot support is limited to the user-level sources above. Qoder CN CLI project skills use `<project>/.qoder/skills` and appear as Qoder. Qoder CN IDE uses the Lingma directories. Missing external source directories are not shown.
|
|
193
|
+
External agent sources (CC Switch, Codex, Claude Code and others) can be pointed at another folder from the source row; the change takes effect immediately. Overrides are stored in `~/.dsh/skills-manager/roots.json` and take precedence over `DSH_<AGENT>_HOME`; editing that file by hand requires restarting DSH. DSH and Shared Agent are the host's scan paths and are not offered here — use `DSH_HOME` / `DSH_AGENTS_HOME` to relocate them. The folder must already exist and must not overlap another source; when a custom folder disappears, the source stays listed so you can restore the default.
|
|
194
|
+
|
|
195
|
+
### Custom sources (agents outside the list)
|
|
196
|
+
|
|
197
|
+
An agent that is not in the table above does not need to wait for a release: open **Source folders**, choose **Add source** and point it at the agent's skills folder. Custom sources behave like built-in external sources — read-only, nothing moved or modified — and support grouping, drag-and-drop organisation, and source-level plus category-level toggles. The display name defaults to the folder name and can be overridden.
|
|
198
|
+
|
|
199
|
+
When an agent keeps a separate skills folder per sub-profile (multiple accounts or workspaces), point at the **product folder** and choose **Scan subfolders**: the plugin looks two levels down for every `skills` folder containing `SKILL.md` and lists them as candidates named `product / subfolder`, each with its skill count, so you can register them in one go. Scanning only produces candidates and never registers anything by itself; candidates overlapping an existing source are flagged and cannot be added.
|
|
200
|
+
|
|
201
|
+
Registrations live in the `customSources` section of `roots.json`, alongside the folder overrides. Removing a registration only deletes that record — the skill files on disk are left untouched. Up to 32 custom sources are supported.
|
|
202
|
+
|
|
203
|
+
## DSH product ecosystem
|
|
204
|
+
|
|
205
|
+
For a desktop workbench, download [DSH Codex Desktop](https://github.com/MichengAI/dsh-codex-desktop/releases). Existing [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) installations can add plugins as needed by following each project's README. Below are 11 first-party plugins; consult the corresponding desktop release notes and bundled catalog for what that version includes.
|
|
206
|
+
|
|
207
|
+
| Plugin | What you can do |
|
|
208
|
+
| --- | --- |
|
|
209
|
+
| [Codex UI](https://github.com/MichengAI/dsh-codex-ui) | Organize projects and conversations, search tasks, and navigate chat turns |
|
|
210
|
+
| [Agency Agents](https://github.com/MichengAI/dsh-agency-agents) | Choose and summon specialists for your task |
|
|
211
|
+
| [Skills Manager](https://github.com/MichengAI/dsh-skills-manager) | Manage local and project skills; install, update and roll back repository skills |
|
|
212
|
+
| [Archive Manager](https://github.com/MichengAI/dsh-archive-manager) | Search, restore, or clean up archived conversations |
|
|
213
|
+
| [IM Connect](https://github.com/MichengAI/dsh-im-connect) | Send tasks and receive replies through messaging platforms |
|
|
214
|
+
| [Automation](https://github.com/MichengAI/dsh-automation) | Schedule tasks and review each run |
|
|
215
|
+
| [BTW](https://github.com/MichengAI/dsh-btw) | Ask side questions without interrupting the main task |
|
|
216
|
+
| [Simplify](https://github.com/MichengAI/dsh-simplify) | Use `/simplify` to improve code within your Git changes |
|
|
217
|
+
| [PUA](https://github.com/MichengAI/dsh-pua) | Guide the Agent to try new approaches after failures, investigate causes, and verify results before completion |
|
|
218
|
+
| [Code Review](https://github.com/MichengAI/dsh-code-review) | Use `/review` to request an independent Agent code review and receive the report in the current conversation |
|
|
219
|
+
| [Codex Pet](https://github.com/MichengAI/dsh-codex-pet) | View conversation notifications and respond to tool approvals and questions through a desktop pet |
|
|
220
|
+
|
|
221
|
+
## Feedback and contributions
|
|
222
|
+
|
|
223
|
+
[Open an issue](https://github.com/MichengAI/dsh-skills-manager/issues) for bugs or suggestions. Include your DSH and plugin versions, reproduction steps, and a full screenshot for UI issues.
|
|
224
|
+
|
|
225
|
+
Source code lives in `src` and uses strict TypeScript while retaining the existing plugin architecture. Run `npm run typecheck` for type checks, `npm run build` to generate runtime files, and `npm run verify` for the full regression and package checks. GitHub and npm both include a ready-to-run `lib`. After changing source, run the build before committing. Packing still checks types and builds the JavaScript files required by the npm package. CI runs full verification on Node.js 22.19.0 and 24, and code changes also trigger the supported-host compatibility matrix. Contributions are welcome.
|
|
226
|
+
|
|
227
|
+
To test a source checkout, install dependencies using the pinned pnpm version, run `npm run verify`, then run `npm pack`. Install the resulting `.tgz` with `dsh plugin --profile web add <package.tgz>`, restart DSH and refresh the page. Do not use `--ignore-scripts` when packing: it skips the build hook.
|
|
228
|
+
|
|
229
|
+
## License
|
|
230
|
+
|
|
231
|
+
[Apache License 2.0](LICENSE)
|