
PerryLink/dsh-composer-history
40Last commit Aug 15, 2026
dsh-composer-history DSH plugin
dsh-composer-history 为 DeepSeek Harness 的 Web GUI 编辑器带来终端风格的上下箭头历史浏览体验,同时保留草稿内容。当你回顾历史时,草稿和光标位置会被精确暂存,按 Esc 或回到最新条目即可恢复。此外,发送的消息会持久化存储在浏览器本地,跨会话和页面重载仍可访问,并支持 Ctrl+R 反向搜索,所有按键均可自定义。
How to install the dsh-composer-history DSH plugin
dsh plugin addCopying does not run this command. Review the repository and version before installing the dsh-composer-history DSH plugin.
dsh-composer-history DSH plugin data source
dsh-composer-history DSH plugin snapshot date: Aug 16, 2026
discovered
What the dsh-composer-history DSH plugin can do
- 边缘优先箭头:仅在光标位于第一行或最后一行时触发历史回想,否则正常移动光标。
- 草稿暂存:首个历史回想自动暂存当前草稿和光标位置,回到最新条目或按 Esc 时精确恢复。
- 持久化历史:发送的消息自动追加到浏览器本地存储(键名 dsh.composer-history.v1),重载页面后仍可回想。
- 反向搜索:配置 Ctrl+R 打开搜索面板,输入关键词过滤历史,上下箭头选择,回车填充。
- 滑动上下文感知:当 DSH 自动压缩长对话时,检查点摘要会加入历史回想和搜索,并显示临时通知(可一键填充 /compact)。
Where the dsh-composer-history DSH plugin fits
- 快速回溯之前发送的提示词,避免重复输入。
- 在长对话中通过上下箭头或反向搜索定位历史消息。
- 在编辑器中恢复未完成的草稿,确保不丢失半成品输入。
Who the dsh-composer-history DSH plugin is for
- 使用 DeepSeek Harness Web GUI 的开发者与研究人员。
- 需要频繁与 AI 对话并管理输入历史的用户。
dsh-composer-history DSH plugin limitations
- 仅在 composer 的 plain 输入阶段生效,不干扰斜杠菜单、命令弹窗、IME 组合等交互。
- 历史持久化依赖于浏览器本地存储,清除浏览器数据会导致历史丢失。
- 滑动上下文相关功能(检查点摘要、通知)需要 DSH 启用滑动上下文;若禁用则这些功能不可用。
dsh-composer-history DSH plugin: from the repository README
Quoted from the PerryLink/dsh-composer-history README, the upstream source of the dsh-composer-history DSH plugin. Copyright remains with the original authors.
**Terminal-style input history for the DeepSeek Harness Web GUI composer.** [English](README.md) | [简体中文](README.zh-CN.md) | [日本語](README.ja.md) | [한국어](README.ko.md) | [Русский](README.ru.md) <p align="center"> <a href="https://github.com/topics/dsh"><img alt="topic: dsh" src="https://img.shields.io/badge/topic-dsh-8A2BE2"></a> <a href="https://github.com/topics/dsh-plugin"><img alt="topic: dsh-plugin" src="https://img.shields.io/badge/topic-dsh--plugin-8A2BE2"></a> <a href="https://github.com/topics/deepseek-harness"><img alt="topic: deepseek-harness" src="https://img.shields.io/badge/topic-deepseek--harness-8A2BE2"></a> <br> <a href="./LICENSE"><img alt="license" src="https://img.shields.io/badge/license-Apache--2.0-blue"></a> <a href="https://www.npmjs.com/package/dsh-composer-history"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-composer-history"></a> <a href="https://www.npmjs.com/package/dsh-composer-history"><img alt="npm downloads" src="https://img.shields.io/npm/dm/dsh-composer-history"></a> <a href="https://github.com/PerryLink/dsh-composer-history/actions/workflows/ci.yml"><img alt="ci" src="https://github.com/PerryLink/dsh-composer-his
Read the full READMERepository license: Apache-2.0
dsh-composer-history DSH plugin questions
How do I install dsh-composer-history?
Install via npm: `pnpm add dsh-composer-history` (or npm/yarn). Then register it in your DSH profile's cordis.patch.yml as shown in the Installation section of the README. Make sure to build the plugin before launching DSH.
Can I disable the history persistence?
Yes. Set `persistHistory: false` in the plugin's config block in cordis.patch.yml. This stops sending messages to the browser-local store, but the session history (from the current conversation) still works.
How do I clear the stored history?
The history is stored in the browser's localStorage under the key `dsh.composer-history.v1`. You can clear it by opening your browser's developer tools, going to Application > Local Storage, and deleting that key. Alternatively, you can clear all site data for the DSH domain.
Does the plugin work with the slash menu or command popups?
No. The plugin actively gates itself to only intercept keyboard events in the plain input phase. When a slash menu, command popup, IME composition, or text selection is active, the plugin passes through without any side effects.
What happens if I press Ctrl+R while no history is available?
If the search overlay opens but there are no history entries (e.g., first message in a fresh session), the search panel will show an empty list. You can press Esc to cancel the search and return to the composer.