# dsh-prompt-presets > **DeepSeek Harness 提示词预设库** — 在设置页维护自己的提示词模板库,在对话框输入栏一键把任意预设注入到消息开头。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![DeepSeek Harness](https://img.shields.io/badge/DeepSeek%20Harness-Plugin-4C9AFF.svg)](https://github.com/deepseek-ai/deepseek-harness) [![version](https://img.shields.io/badge/version-v1.0.5-success.svg)](https://github.com/zhangdong456/dsh-prompt-presets/releases) [![topic: dsh-plugin](https://img.shields.io/badge/topic-dsh--plugin-7B68EE.svg)](https://github.com/topics/dsh-plugin)
[**English**](README.md) | **中文**
打开 **设置 → 提示词预设** 管理预设(新建 / 编辑 / 删除带确认 / 排序),然后在对话框输入栏点击模型选择旁的「提示词」按钮,选中预设一键插入到草稿开头——不自动发送,内容仍由你掌控。 [功能](#功能) · [截图](#截图) · [兼容性](#兼容性) · [安装 / 卸载](#安装--卸载) · [工作原理](#工作原理) · [数据与隐私](#数据与隐私) · [开发](#开发) ## 截图 | 设置页 | 对话框菜单 | | --- | --- | | 提示词预设设置页 | 对话框预设菜单 | ## 功能 | 功能 | 说明 | | --- | --- | | 📚 预设库 | 每条预设 = 标题(≤50 字)+ 内容(≤10000 字);列表展示标题和首行预览 | | ✏️ 完整管理 | 新建、编辑、删除(行内二次确认)、上移/下移排序——所有修改即时落盘 | | 💬 一键注入 | 输入栏「提示词」按钮弹出底部菜单;选中预设后点「注入到输入框」 | | ✍️ 草稿友好 | 注入语义为 `预设 + 空行 + 原有草稿`;草稿为空时只写入预设。绝不自动发送 | | 💾 持久存储 | 走官方 settings 服务,存进 `$DSH_HOME/settings.yaml` 的 `prompt-presets:` 命名空间——重启不丢,也可手工编辑 | | 🌗 主题与多语言 | 全部使用官方主题变量;内置中英词典,跟随界面语言切换 | | 🔌 零自定义 RPC | 浏览器半区直接走共享的 `settings.describe` / `settings.replace` 通道;Host 半区只注册校验 schema | ## 兼容性 | 项目 | 说明 | | --- | --- | | DSH 版本 | 官方安装器 web profile(Windows 实测) | | 安装机制 | `dsh plugin --profile web add`(bundle 补丁 + 双半区) | | 依赖 | `settings` 服务(Host)、`slots` / `locale` / `remote` / `remote.settings` 服务(Client) | ## 安装 / 卸载 ```sh # 从 GitHub 安装(推荐) dsh plugin --profile web add github:zhangdong456/dsh-prompt-presets#main # 从 npm 安装 dsh plugin --profile web add dsh-prompt-presets # 从本地目录安装 dsh plugin --profile web add file:./dsh-prompt-presets ``` > 安装后请**重启 DeepSeek Harness**,并在网页里按一次 **Ctrl+F5**。 > `lib/` 构建产物直接随仓库提交,从 GitHub 安装无需本地构建。 | 操作 | 命令 | | --- | --- | | 升级 | `dsh plugin --profile web update dsh-prompt-presets`(或重新 `add`),然后重启 DSH | | 卸载 | `dsh plugin --profile web remove dsh-prompt-presets` | 预设数据保存在 `$DSH_HOME/settings.yaml` 的 `prompt-presets:` 键下,安装、升级、卸载都不受影响。 ## 快速上手 1. 安装插件,重启 DSH,网页按 `Ctrl+F5`。 2. 打开 **设置 → 提示词预设** → 「新建预设」→ 填标题和提示词内容 → 保存。 3. 在任意会话中点击输入栏上方的「提示词」→ 选择预设 → 「注入到输入框」。 4. 自由修改注入后的文本,正常发送即可。 ## 工作原理 ``` lib/index.js Host 半区(ESM) 注册 `prompt-presets` settings 命名空间: schema 校验/修正每次写入(id、标题 ≤50、 内容 ≤10000、时间戳),并规范化 order (去重 + 补齐缺失 id);注册本身是 fiber effect, 插件卸载时自动清理 lib/client.js 浏览器半区 经典脚本向 window.__ModuleLoader__ 注册工厂; React 解析自 shell 共享模块表。注册两个槽位: settings.section → 管理页 conversation.input.right → 提示词按钮 + 菜单 数据通过 remote.settings.describe / .replace 携带乐观版本号读写——零自定义 RPC cordis.patch.yml bundle 补丁(插入 prompt-presets 行) ``` 注入语义:`draft === '' ? preset.content : preset.content + '\n\n' + draft`。 ## 数据与隐私 - 预设全部存在本地 `$DSH_HOME/settings.yaml`,插件自身不发起任何网络请求。 - 该命名空间就是普通 YAML——可以备份、同步或手工编辑: ```yaml prompt-presets: presets: - id: p-example title: 代码审查助手 content: 你是一位资深代码审查专家…… createdAt: 1787322246076 updatedAt: 1787322246076 order: - p-example ``` - 若 settings 服务不可用或文档只读,界面会禁用编辑并明确提示,不会静默失败。 ## 开发 ``` dsh-prompt-presets/ ├── package.json dsh.bundle 清单 + client 半区声明 ├── cordis.patch.yml bundle 补丁(插入 prompt-presets 行) ├── lib/ │ ├── index.js Host 半区(ESM,零依赖) │ └── client.js 浏览器半区(module-loader 工厂,纯 JS) └── assets/screenshots/ README 配图 ``` 无需构建:两个半区均为手写纯 JavaScript 直接提交。Fork → 修改 → `dsh plugin --profile web add file:./dsh-prompt-presets` → 重启 DSH。 **参与贡献**:欢迎 Issue 和 PR——请附上 DSH 版本号和完整报错文本。 ## 许可证 MIT — 见 [LICENSE](LICENSE)。