dsh-prompt-shelf: Store common prompts as Markdown, append to input box with one click or @

前言

在 DSH 里开新会话时,身份说明、业务背景、输出偏好往往要重复输入。手打或从别处复制,既慢也容易漏。一些做法是把内容写进系统提示或项目说明,但那是会话级或项目级配置,和「当前这条消息里临时补一段背景」不是同一回事。dsh-prompt-shelf 面向输入框:把反复要说的内容拆成一条条 Markdown 段落,在 Web 输入框里点选或通过 @ 触发,追加到已有文字后面,不覆盖你已经写的内容。

这是什么

dsh-prompt-shelf 由社区维护者 CIBUDAYI3906 发布,仓库为 CIBUDAYI3906/dsh-prompt-shelf,许可证 MIT,当前 package 版本 0.1.0。它是一层「常用提示词」库:数据纯本地 Markdown,无数据库、无账号、无对外网络请求;装好全局库即可零配置使用,项目库按需配置扫描根目录。

核心功能

下面介绍插件在资料中明确列出的能力。

两层库

层 位置 用途
全局 ~/.dsh/prompts/global.md 跨项目通用的身份、行业语汇、输出偏好
项目 <项目>/.dsh-prompts/<项目名>.md 仅对某项目成立的背景、技术栈、验收标准;可提交进 git

两种插入方式

  1. 输入框工具行(回形针 / 工作区内修改旁)打开「常用提示词」面板,点条目。
  2. 在输入框输入 @,从候选里选条目。

两种方式都是追加文本;条目与已有内容之间空一行,不会清空半句需求。

界面内维护

支持新建、编辑、删除、搜索。手改磁盘上的 Markdown 后,在界面点「重新读取磁盘」即可生效,无需重启 DSH。

文件格式约定

  • 每个 ## 标题 对应一条可插入的片段;同一文件内标题须唯一。
  • > 开头的一行作为列表说明;说明中的 #标签 会被识别为标签。
  • 文件顶部的 # 分组名 与 HTML 注释仅便于阅读,插入时不带入输入框。

宿主侧行为

插件在宿主侧注册 6 条本地 HTTP 路由,仅接受同源 JSON;路径穿越对文件名、分组名做了校验。删除条目会直接改磁盘;分组内最后一条被删时,对应 Markdown 文件也会被删除。

安装与启用

Web profile 安装命令(来自 README 原文):

dsh plugin --profile web add dsh-prompt-shelf

安装后重启 dsh web。输入框工具行会出现「常用提示词」按钮。桌面端可在设置 → 插件中安装同名包,或在插件市场上架后一键安装。

卸载(Markdown 文件不会被删):

dsh plugin --profile web remove dsh-prompt-shelf

启用项目库

未配置时面板只显示全局库,不会扫描磁盘上的项目目录。要在 profile 的 cordis.patch.yml 中为插件指定 config.root:

# ~/.dsh/profiles/web/cordis.patch.yml
- id: dsh-prompt-shelf
  config:
    root: /Users/you/code

root 两种用法:

root = /Users/you/code            # 多项目:code 下每个含 .dsh-prompts/ 的一级文件夹是一个分组
  ├─ alpha/.dsh-prompts/alpha.md        → 分组 alpha
  └─ beta/.dsh-prompts/beta.md          → 分组 beta

root = /Users/you/code/alpha      # 单项目:项目自己含 .dsh-prompts/ 就是一个分组
  └─ .dsh-prompts/alpha.md              → 分组 alpha

测试时可用环境变量 DSH_PROMPT_SNIPPETS_ROOT 临时覆盖 root。

兼容性:engines.dsh 为 >=0.2.0-rc.1 <0.3.0,README 写明实测于 DSH 0.2.0-rc.2。

典型用法

1. 编写 global.md

全局库路径为 ~/.dsh/prompts/global.md,装好插件后即可编辑。示例结构:

# 分组名

<!-- 一条 = 一个 `## ` 段落;正文原样进入输入框。 -->

## 我的工作背景
> 一句话说明(列表里显示) #身份 #背景
我在 XX 公司负责 XX,团队 3 人……

## 我的输出偏好
> 标签可以没有
回答用中文,结论先行……

仓库内 examples/ 有更完整样例。

2. 在对话里插入

先写半句具体需求,再点面板条目或 @ 选「我的工作背景」;背景段落会追加在下方,原有半句保留。

3. 项目内共享片段

在仓库中创建 .dsh-prompts/<项目名>.md,配置好 root 后,团队成员拉代码即可共用同一套项目背景条目。

适用场景与注意

适合谁

  • 经常在 DSH Web 里开新线程、又要重复交代角色与输出格式的人。
  • 希望把项目专属背景放进 git、与代码一起版本管理的小团队。

务必知晓的限制

  • 项目库需手动配置 root,不会自动跟随当前会话所在项目目录;README 说明 DSH 0.2 输入槽不向客户端插件暴露 sessionId,宿主无法据此自动绑定项目。
  • 插入的是普通文本,与手打等价,只影响当前这条消息;换会话不会自动带上。
  • 单条建议控制在 300–600 字;插入成本即对应 token,列表会显示字数。
  • 界面文案目前为中文。

安全与权限

插件以当前 DSH 进程权限读写 $DSH_HOME/prompts/ 与 config.root 下的 .dsh-prompts/。安装前建议阅读源码与 MIT 许可证,确认符合你的环境策略。DSH 生态主张「一切皆插件」;SkillHub 目录页 为社区站点,与 DeepSeek / 幻方无官方从属关系。

结尾

dsh-prompt-shelf 把「每次会话都要说一遍的背景」收敛成本地 Markdown 与输入框上的两次操作(点击或 @),全局零配置、项目可进仓库,且明确不做覆盖式替换。若你已在用 DSH 0.2 Web,可按上文命令安装并在 ~/.dsh/prompts/global.md 里先写两条试跑。

  • 目录页:https://www.skillhub.cn/plugins/CIBUDAYI3906/dsh-prompt-shelf
  • GitHub:https://github.com/CIBUDAYI3906/dsh-prompt-shelf
羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye