dsh-prompt-shelf
Manifest validKeeps frequently used prompts in the DSH composer, with insert, replace, variables and a trash.
dsh-prompt-shelf
中文 | English
把常用提示词存进 DSH:输入框工具行里多一个「常用提示词」按钮,点开是一张列表窗口, 可以存当前草稿、也可以把某条一键送进输入框。
入口在哪
输入框卡片底部工具行里、「完全权限」右边,文字「常用提示词」加条数。新会话的空白页也有这个入口。
怎么用
- 存:「存入当前输入」把输入框现有内容存成一条;空框时按钮灰着,同正文不会重复存。
- 写:「+ 新建」直接在窗口里写一条(标题 + 正文),保存后排在卡片最前。
- 找:顶部搜索框按标题和正文过滤。
- 用:卡片头右侧有「插入」(在光标处追加,不动已写的内容)与「替换」(整框换成这条)。 插入不关窗口,可以连着挑好几条。
- 改:卡片内展开编辑标题与正文;标题留空时自动取正文首行。
- 删:进回收站,默认留 3 天;工具行右侧「回收站」里能看每条还剩几天,并可一键恢复。 保留天数可改(1~365),改完立刻按新天数清理过期条目。
- 关:右上角 ×、点窗口外的暗区、或按 Esc(编辑中按 Esc 先退编辑)。
变量
正文里写 {{名称}} 或 {{名称=默认值}},这张卡片的正文里那个位置就变成一个输入框:
插入时用填的值替换,不填就用默认值,同名变量共用一份值。变量框里打 @ 可以引用工作区文件(见下)。
编辑卡片时看到的是带 {{…}} 的原文——改模板在那里改。新建或编辑时正文框下方有「+ 变量」,
把光标放到要放变量的位置点它就在光标处插入 {{变量}} 并选中「变量」两字,直接打字就是改名。
正文框里按 Alt+V(或 Ctrl+Alt+V)同效,只在这个框里生效,不是全局快捷键。
@ 里选用
- 任务输入框里打
@:菜单里多出「常用提示词」一组,选中一条把正文落到光标处。 - 新建 / 编辑卡片的输入框里打
@:列出工作区文件与文件夹(上下键选、回车或 Tab 选中、Esc 关), 选中插入@路径(目录带尾斜杠,路径含空格时用@"路径")。 - 卡片上的变量框里打
@:同样列出文件、对话、插件(浮层出现在输入框下方,放不下时翻到上方), 选中把@路径填进这个变量的值;插入或替换进任务输入框后,模型按 @ 引用去读这个文件。
数据存哪
真源是宿主侧的 $DSH_HOME/data/dsh-prompt-shelf/state.json(写入先落 .tmp 再改名,旧的留 .bak),
经本插件的本机路由读写;浏览器侧另存一份 localStorage 缓存(键 dsh.prompt-shelf.v1)用于首屏。
为什么不直接用 localStorage:它按 origin 隔离,而桌面端每次启动端口都不同,刷新或重启后条目就读不到了。 与插件包分开存:重装、升级插件都不影响条目。
安装
dsh plugin --profile desktop add github:taoziliyouchong/dsh-prompt-shelf
发布到 npm 之后也可以:
dsh plugin --profile desktop add dsh-prompt-shelf
装完重启 DSH。用别的 profile 就把 desktop 换成你的 profile 名。
要求:DSH 0.2.1 及以上的桌面端或 dsh web(0.2.1-alpha.3、0.2.2-rc.1 验证通过)。要求 DSH >= 0.2.1-alpha.3;实测 0.2.1-alpha.3、0.2.2-rc.1,更高版本未验证。
机制
- 界面挂在 list 槽
conversation.input.left(session 范围,渲染在 permission / plan 之后); 窗口是createPortal到document.body的覆盖层——输入框容器会裁剪,不 portal 就弹不出来。 - 宿主半边注册三条本机路由,只接受回环地址:
GET /dsh-prompt-shelf/api/state、POST同路径(读写条目)GET /dsh-prompt-shelf/api/files(按查询词列工作区文件,递归 3 层、封顶 400 条)GET /dsh-prompt-shelf/api/plugins(插件加载器实时表里的第三方插件)
- 读写输入框只用宿主给的 slot 标准 props:
useInput读草稿,inputActions.captureInsertion()/insertText(text, span)插到光标处,setDraft(text)整框替换。不碰编辑器 DOM。 - 不联网、不上传任何内容;所有数据只在本机。
已知限制
- 条目上限 5000 条、单次写入上限 1MB;超了会被拒并提示。
- 只在本机回环地址下可用:远程访问的 DSH 上,路由会回 403。
- 「替换」是整框覆盖,会盖掉输入框里现有的内容(「插入」不会)。
开发
npm install
npm run build:client # 从 src/entry.jsx 重新生成 lib/client.js
npm run check:client # 已提交产物与源码一致
npm run check # 语法
npm run smoke # 结构 / 组合声明 / 宿主路由 / 鉴权 / 产物 / 伴随插件 六关
lib/client.js 是提交进仓库的构建产物:从 GitHub 安装时不跑构建,缺了它界面不加载。
打包要求:react、react/jsx-runtime、react-dom 保持 external(由 DSH 客户端模块表提供);
产物外壳 window.__ModuleLoader__.load({ id, factory }) 里的 id 必须等于包名。
源码:
src/entry.jsx—— 浏览器半边(按钮、窗口、卡片、变量、@ 源)index.js—— 宿主半边(三条本机路由、状态文件读写)
反馈
插件有问题,按这个顺序:
- 开 Issue:https://github.com/taoziliyouchong/dsh-prompt-shelf/issues —— 能留痕、能搜历史;
- 急着问或不想开 Issue,QQ 号:2171960697(加好友请注明装的是哪个插件)。
反馈时带上:DSH 版本、插件版本、报错原文、截图。
许可
MIT
Comments
Loading…
Similar plugins
by konglong87
dsh 常用内容插件:保存、编辑提示词,点击回填输入框,不自动发送。deepseek harness 插件
★ 3
MIT
JavaScript
Sep 23, 2026
dsh plugin --profile web add dsh-input-listby joao-paulo-santos
Prompt composition manager for DSH: live census of every system-prompt section with suppress and replace, custom system prompts, and a persona library with a picker right in the chat composer
★ 0
MIT
JavaScript
Sep 30, 2026
dsh plugin --profile web add dsh-granular-promptby Stmol
DSH plugin: keep your own prompts in Settings and switch them on per chat
★ 2
↓ 28/wk
MIT
JavaScript
Oct 4, 2026
dsh plugin --profile web add @stmol/dsh-prompt-libby cdredfox
为你的 DSH 增加快捷指令的操作,把常用提示词存成输入框上方的一排快捷按钮,点击即填入。支持置顶、搜索、自动收纳溢出。
★ 0
MIT
JavaScript
Oct 17, 2026
dsh plugin --profile web add @cdredfox/dsh-prompt-shortcutsby LCQ-1024
Adds a prompt-enhancement button to the DSH composer that rewrites drafts into agent-ready prompts.
★ 3
↓ 487/wk
MIT
JavaScript
Aug 18, 2026
dsh plugin --profile web add dsh-prompt-enhancerby Nihao7-L
One-click prompt rewriting in the DSH composer — keep going for up to 5 rounds, diff every change, and jump back to any version.
★ 1
MIT
JavaScript
Oct 20, 2026
dsh plugin --profile web add dsh-prompt-chain