# dsh-suite

> DSH 中文 agent 预设场景包：在 Settings 增加「场景包」入口，一键安装 6 个中文写作/学习/翻译预设，无需重启立即出现在 Agent presets 选择器。

## 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-20T00:00:00.000Z

## Install

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

## Wiki

## 一句话定位
在 DSH Web 端设置页里挂一个「场景包」分区，把 6 套中文写作/学习 agent 预设以卡片列出来，支持一键应用到官方 Agent presets 选择器；本身不写业务逻辑，只承担预设文件的搬运与界面注入。

## 核心能力
- 在 Settings 多挂一个「场景包 / Preset Packs」分区，列出全部 6 张预设卡片，并支持「预览 / 一键应用 / 移除」三按钮（packages/preset-center/lib/client.js:82-122, 131-137）。
- 「一键应用」会把对应预设的 `agent.cordis.yml` 与 `preset.yml` 写到官方 user preset root（`~/.agent-presets/<id>/`），写完立即可被官方 agent-presets 插件扫描到，无需重启 DSH（packages/preset-center/lib/index.js:47-56 / README.md:23-29）。
- 提供 6 套中文预设：小红书笔记助手 / 中文文案润色 / 日报周报生成器 / 学习读书笔记助手 / 翻译与双语润色 / 头脑风暴与选题策划，每套都关掉 shell、保留 fs / skill / ask-user / todo，部分按场景开/关联网搜索（packages/preset-center/presets/*/preset.yml）。
- 提供「预览」面板，应用前可看到将写入哪些文件、人设摘要和工具开关，避免盲装（packages/preset-center/lib/client.js:103-108）。
- 客户端内置中英双语文案，跟随 DSH 的 locale 系统切换（packages/preset-center/lib/client.js:13-30, 129）。
- 「移除」调用 `/preset-center/remove` 删除 user root 下对应子目录，可逐个独立移除，不影响其他预设（packages/preset-center/lib/index.js:58-62, 88-96）。

## 技术实现
- **语言**: JavaScript (ESM, `"type": "module"`)
- **关键依赖**: `@deepseek-ai/dsh-client-runtime` / `@deepseek-ai/dsh-client-ui-slots` / `@deepseek-ai/dsh-client-ui-settings` / `@deepseek-ai/dsh-client-locale`（仅前端注入用，见 `packages/preset-center/package.json:17-22`）；host 半区无第三方依赖，仅用 Node 内置 `node:fs` / `node:zlib` / `node:url` / `node:os` / `node:path`（packages/preset-center/lib/index.js:5-9）
- **架构模式**: cordis bundle 双端注入 —— host 端通过 `cordis.patch.yml` 的 `insert` 声明把 `preset-center` 模块挂入 loader；运行时 host 端 `inject: ['webServer']` 注册 3 条 HTTP 路由 `/preset-center/list|apply|remove`，client 端通过 `__ModuleLoader__.load` 注入到 Settings 页面（packages/preset-center/cordis.patch.yml / packages/preset-center/lib/index.js:11-12, 64-99 / packages/preset-center/lib/client.js:5-7, 126-142）
- **入口文件**: host `packages/preset-center/lib/index.js`（注册路由）/ client `packages/preset-center/lib/client.js`（渲染 Settings 分区）

## 适用场景
刚装好 DSH Web 端、想跳过自己写 persona 提示词就拿到可用的中文写作助手（小红书、文案润色、日报周报、翻译、读书笔记、头脑风暴）的普通用户；尤其是中文写作、运营、自媒体等高频场景，希望装一个包就获得「选一下就能开聊」的体验。

## 前置依赖与兼容性
| 依赖 | 最低版本 | 说明 |
|---|---|---|
| DSH | 未声明 | package.json 仅声明 `dsh.bundle.patch` 与 `dsh.client`（platform: web），无 `dsh.engines` 字段；DSH 版本兼容性未由插件声明（packages/preset-center/package.json:12-25） |
| Node | ^22.19 或 >=24 | `packages/preset-center/package.json:32-34` 的 `engines.node` |
| 平台 | 跨平台 | 无 `os` / `cpu` 限制，仅依赖 Node 内置模块 |
| 原生模块 | 无 | host 半区仅用 `node:fs` / `node:zlib` 等内置 API，无 native binding |

## 安装方式
```bash
dsh plugin --profile web add github:whyihaveyou/dsh-suite/packages/preset-center
```

## 配置项
| 配置 | 类型 | 说明 | 默认值 |
|---|---|---|---|
| `DSH_HOME` | 环境变量 | 决定预设文件写入哪个根目录；预设最终位置是 `${DSH_HOME}/.agent-presets/<id>/` | `~/.dsh`（即 `$HOME/.dsh`） |

> 本插件自身无 DSH Schema / ctx 配置项；6 套预设按各自 `agent.cordis.yml` 的硬编码开关工作，无法在 Settings 里逐项开关。

## 常见问题

**Q: 安装后还需要做什么才能让预设生效？**

A: 无需重启 DSH。本插件把预设文件直接写入官方 user preset root（`~/.agent-presets/<id>/`），官方 agent-presets 插件每次调用都会重新扫描该目录，安装完成后到 Settings → Agent presets 选择对应预设即可开始对话。

**Q: 和官方 standard agent preset 是什么关系？是覆盖还是新增？**

A: 是新增。预设被写入官方 user preset root 后以独立 id 出现在 Agent presets 选择器，与官方 standard 并存；不会替换或影响 standard 预设。

**Q: 安装了哪些预设？为什么 README 只写 3 个但界面里看到 6 个？**

A: 实际打包了 6 个预设：小红书笔记助手 / 中文文案润色 / 日报周报生成器 / 学习读书笔记助手 / 翻译与双语润色 / 头脑风暴与选题策划。README 表格只列出前 3 个属于文档未与目录同步，`presets/` 目录与界面均以 6 个为准。

**Q: 这些预设都会执行 shell 命令吗？安全吗？**

A: 不会。6 套预设的 agent.cordis.yml 都把 tool-bash 和 tool-pwsh 显式设为 disabled，关掉 shell 执行；可用工具为 fs / fs-search / skill / ask-user / todo，部分预设（小红书、读书笔记、头脑风暴）额外开启联网搜索。

**Q: 怎么卸载某个预设？**

A: 在 Settings → 场景包 卡片上点「移除」即可。本插件会调用 `/preset-center/remove` 删除 user root 下对应子目录；preset-center 本身不卸载，6 个预设可逐个独立移除。

**Q: 预设装在哪里？换电脑要重新装吗？**

A: 装在 `<DSH_HOME>/.agent-presets/<id>/`（DSH_HOME 默认 `~/.dsh`，可通过环境变量覆盖）；该目录跟随用户 home，不随插件走，所以换电脑或重装 DSH 后需要重新一键应用。

**Q: 界面里的「场景包」入口在哪里？怎么打开？**

A: 重启 dsh web 后，浏览器 Settings 页面会多出一个名为「场景包 / Preset Packs」的分区（label 由 client 注入，order: 70）；展开后可看到 6 张预设卡片，每张卡片支持「预览 / 一键应用 / 移除」。

## 上手难度
入门 — 安装 + 一次重启 `dsh web` 即可在 Settings 看到「场景包」分区，点击卡片即可一键应用；不需要读源码或写配置。

## 已知问题与限制
- 文档与实现不同步：README 表格只列出 3 个预设（小红书笔记助手 / 中文文案润色 / 日报周报生成器），但 `presets/` 目录与 Settings 界面实际包含 6 个预设（另含学习读书笔记助手 / 翻译与双语润色 / 头脑风暴与选题策划），三者顺序按 `preset.yml` 的 `order` 字段排序展示（packages/preset-center/README.md:17-22 / packages/preset-center/presets/*/preset.yml / packages/preset-center/lib/index.js:30, 42）。
- 预设文件写入位置由环境变量 `DSH_HOME` 控制，默认为 `~/.dsh`；但 DSH 自身的 home 与本插件读取的 `DSH_HOME` 是否一致未在源码中校验，写到不一致的目录会导致「看不到预设生效」（packages/preset-center/lib/index.js:17-19, 47-56）。
- 预设内的工具开关（联网搜索开关、shell 是否禁用）全部硬编码在每个预设的 `agent.cordis.yml` 里，插件不提供在 Settings 页面修改这些开关的入口；想调整只能编辑 `~/.agent-presets/<id>/agent.cordis.yml`（packages/preset-center/lib/client.js:97-102 / packages/preset-center/presets/*/agent.cordis.yml）。
- 6 套预设全都禁用了 shell 和 subagent-codex / subagent-claude-code 两个产品化 provider，无法在这些预设里让 agent 跑命令或交由 Codex / Claude Code 子代理执行（packages/preset-center/presets/*/agent.cordis.yml）。

---

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/preset-center)
Wiki generated by AI (model: `MiniMax-M3`)
