dsh-nonead-prompt-recall:为 DSH 输入框提供 Shell 式提示词历史回溯

前言

在 DeepSeek Harness(DSH)里写提示词,常见做法是反复改一版再发送,或把上一句复制回来微调。终端里可以用 ↑ 翻历史命令;DSH 默认输入框(Composer)没有同等能力,只能靠剪贴板或外部笔记。下面介绍社区插件 dsh-nonead-prompt-recall(维护者 NoneadChina),它在空输入框里用 ↑ / ↓ 浏览本工作区曾发送的人类提示词,历史落盘,重启后仍在。

这是什么

dsh-nonead-prompt-recall 是 DSH 的客户端类插件:在浏览器侧拦截 Composer 的 ↑ / ↓,在宿主侧监听会话事件并持久化「用户亲手输入、已发送」的提示词。当前版本 0.6.3(以 npm / GitHub README 为准)。包名与 npm 注册名均为 dsh-nonead-prompt-recall,许可证 MIT,引擎要求 Node ≥ 22、dsh ≥ 0.2.1-rc.1 且 < 0.3.0-0。

核心功能

键盘行为

在 Composer 为空 时:

  • 按 ↑:载入最近一次发送的提示词;再按 ↑ 向更早的记录移动。
  • 按 ↓:向更新的记录移动,直至回到空白草稿。

一旦你在输入框里打字或编辑,↑ / ↓ 恢复为普通光标移动,不再翻历史。无历史时,按键也不被拦截。

情况 ↑ ↓
空 Composer 载入最新一条历史 不拦截
浏览历史(未编辑) 更旧一条 更新一条 / 回到空草稿
已输入或已编辑草稿 不拦截 不拦截
无历史 不拦截 不拦截

记录范围与限制

  • 历史按工作区隔离,写入磁盘,DSH Desktop 重启后保留。
  • 仅记录 human input(source.kind=user):插件注入、续写 ritual、工具来源消息不会入库。
  • 连续两次完全相同的发送只存一条,避免一直按 ↑ 卡在同一条。
  • 单条提示词上限 32,000 字符;默认每个工作区最多 500 条(可在设置里改为 1–5000)。
  • Composer 可能对草稿做规范化(例如去掉 @reference 目标);翻历史时按有效文本比对,规范化后仍能继续 ↑ / ↓。

设置页与斜杠命令

在 Settings → 提示词历史(英文界面为 Prompt History)可查看采集状态、条目数、当前工作区与存储路径,开关采集、调整上限与保留天数,并导出 / 导入 / 清空;列表展示当前工作区最近五条。

斜杠命令 /prompt-recall 管理同一套配置与历史,设置保存在与历史文件同目录的 settings.json。常用子命令包括:status / help、on / off、max <n>、keep <days>(0 表示永久)、clear confirm、export、import <file>、reset。

数据位置

<DSH_HOME>/plugin-data/dsh-nonead-prompt-recall/
├── history/<workspace-key>.json
├── settings.json
└── exports/<workspace-key>-<ts>.json

workspace-key 为规范化工作区路径 SHA-256 的前 24 位十六进制字符。也可直接打开:

<DSH_HOME>/plugin-data/dsh-nonead-prompt-recall/history/<workspace-key>.json

安装与启用

插件已发布到 npm,最简单的方式是在 DSH Desktop 的 Plugins 页选择 Add plugin,填入包名:

dsh-nonead-prompt-recall

若使用非 Electron 独占的 profile,CLI 等价命令为:

dsh plugin --profile <profile-name> add dsh-nonead-prompt-recall

desktop profile 仅由 Electron 应用管理,不能对其直接 CLI 安装,会出现:

error: profile "desktop" is managed exclusively by the Electron application

本地 checkout 可在 Desktop 的 Add plugin 框填入目录路径,或对其它 profile 使用:

dsh plugin --profile <profile-name> add "file:D:/MyProgram/GitHub/dsh-nonead-prompt-recall"

本地目录安装为链接而非复制;改代码后需刷新页面(客户端)或重启宿主(host 侧)。安装后刷新页面或重启 DSH Desktop,以便加载浏览器 bundle。

典型用法

README 给出的验证步骤可直接复现:

  1. 在当前工作区发送一条提示词,例如 test prompt 1。
  2. 清空 Composer,按 ↑,应出现 test prompt 1。
  3. 再发一条,清空后连按两次 ↑,应按时间顺序看到更早的提示词。
  4. 按 ↓ 逐步回到空草稿。
  5. 退出并重启 DSH Desktop,再按 ↑,历史应仍在。
  6. 打开 Settings → 提示词历史,确认导航图标、页头状态区以及导出 / 导入 / 清空是否可用。

日常使用时,把 Composer 清空后当作「只读 shell history」浏览即可;需要改字时再编辑,此时 ↑ / ↓ 只移动光标。

适用场景与注意

适合:在同一 DSH 工作区里频繁复用或微调提示词、希望行为接近终端 history 的开发者。

注意:

  • 插件在当前 DSH 进程权限下运行,会读写 <DSH_HOME>/plugin-data/...;安装前请自行查看 GitHub 源码 与 MIT 许可证。
  • 设置页导入在浏览器内解析 JSON,有 8MB / 20,000 条 限制;CLI export 写入 exports/,设置页导出为浏览器下载,不写 host 文件。
  • 社区目录 skillhub.cn 插件页 与 GitHub 为独立信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态本身是「一切皆插件」,本文事实以仓库 README 与 package.json 为准。

结尾

dsh-nonead-prompt-recall 把 Shell 式的 ↑ / ↓ 提示词回溯带进 DSH Composer,并按工作区持久化,配合设置页与 /prompt-recall 做容量与备份管理。进一步了解可访问:

  • 目录页:https://www.skillhub.cn/plugins/NoneadChina/dsh-nonead-prompt-recall
  • 仓库:https://github.com/NoneadChina/dsh-nonead-prompt-recall
羽毛球分组比赛记分
小程序二维码

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

小夜